Мы используем пользовательский пул cognito для аутентификации, и я включил проверку электронной почты в разделе MFA и проверка, поэтому через некоторое время я пытаюсь удалить эту проверку, сняв флажок электронной почты, и всегда получаю сообщение об ошибке Ваши роли все еще создаются. Подождите и повторите попытку . Ждал неделю, проблема осталась. Мне просто нужно отключить подтверждение электронной почты. Заранее спасибо.
Cognito сохраняет изменения в пуле пользователей не работает
Ответы (4)
У меня была проблема, когда роль SMS была случайно удалена. Возможно, он также никогда не был создан. В нижней части раздела MFA вы увидите поле ввода с возможностью назвать роль, а затем нажмите кнопку «Создать роль».
Если у вас уже есть серое имя роли. Ищите в IAM. Если он не существует, вам нужно будет создать его заново. К сожалению, нет способа сделать это в IAM и заставить его работать для Cognito, потому что для роли службы (из service-role
) требуется префикс пути. Я попытался воссоздать через CLI, и хотя он создал соответствующую роль, он все еще не работал.
Поэтому лучше всего создать новый (фиктивный) пул и создать там роль SMS, которая соответствует имени той, которая используется другим пулом, в котором вы видите это сообщение об ошибке.
Затем вам нужно будет обновить роль, чтобы убедиться, что ExternalId
совпадает (это UUID). Единственный способ найти этот UUID — через интерфейс командной строки, поэтому вам нужно будет найти его с помощью команды: aws cognito-idp get-user-pool-mfa-config --user-pool-id=xxxx
Он должен вернуть текущее имя роли, и это ExternalId
, чтобы вы могли вернуться к IAM и найти недавно созданную роль SMS, созданную AWS, и обновить ее политику JSON, чтобы включить правильный UUID.
Наконец, избавьтесь от фиктивного пула, который вы создали, потому что теперь он тоже будет страдать от «Ваши роли все еще создаются». ошибка.
По сути, он просто застрял и нуждается в том, чтобы его конфигурация указывала на правильную роль (используя его ExternalId), и, к сожалению, для решения проблемы недостаточно элементов управления на панели инструментов. Вы должны немного взломать это, пока они не смогут это исправить.
Trust relationships
нажмите Edit trust relationship
и замените существующий sts:ExternalId
на тот, который вы получили от aws cli
- person Marius B; 29.11.2019
Я знаю, что это поздно, но, возможно, кому-то это может быть полезно.
Ниже может быть решение, в зависимости от сценария.
Я каким-то образом удалил SNS-роль, используемую пулом пользователей. И когда был создан новый, он не соответствовал тому, что показывалось при запуске:
$ aws cognito-idp get-user-pool-mfa-config --user-pool-id=us-west-2_xxxxxxxxx
{
"SmsMfaConfiguration": {
"SmsConfiguration": {
"SnsCallerArn": "arn:aws:iam::123456789098:role/sns12345-dev",
"ExternalId": "myproj02605eb4_role_external_id"
}
},
"MfaConfiguration": "OFF"
}
Новая роль выглядела так:
arn:aws:iam:123456789098:role/sns23456-dev
Следующая команда позволила мне обновить snsRole, и пул пользователей перестал показывать эту ошибку blood Your roles are still being created. Please wait and try again
.
aws cognito-idp update-user-pool \
--user-pool-id us-west-2_xxxxxxxxx \
--sms-configuration \
SnsCallerArn=arn:aws:iam::123456789098:role/sns23456-dev,ExternalId=myproj02605eb4_role_external_id
У меня была такая же проблема. Я попытался добавить несколько триггеров в свой пользовательский пул, но он продолжал говорить, что роли создаются. Я посмотрел на AIM, и роли как будто не существовало. Что сработало для меня, так это сочетание разных ответов.
- Получите внешний идентификатор для вашего пула пользователей.
aws cognito-idp get-user-pool-mfa-config --user-pool-id=XXXXX
{
"SmsMfaConfiguration": {
"SmsConfiguration": {
"SnsCallerArn": "arn:aws:iam::XXXX",
"ExternalId": "XXXX"
}
},
"MfaConfiguration": "OFF"
}
Создайте новую роль в AIM для SNS.
После создания нажмите «Доверительные отношения», затем нажмите «Изменить доверительные отношения» и добавьте следующий json (не забудьте заменить внешний идентификатор на свой)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "cognito-idp.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "YOUR_EXTERNAL_ID_HERE"
}
}
}
]
}
- С помощью интерфейса командной строки обновите роль пула, указав ARN новой роли:
aws cognito-idp update-user-pool --user-pool-id YOUR_USER_POOL_ID --sms-configuration SnsCallerArn=ROLE_ARN_HERE,ExternalId=YOUR_EXTERNAL_ROLE_HERE
После этого я смог сохранить изменения в пуле пользователей.
Если кто-то еще сталкивается с той же проблемой, вот как я ее решил: я пошел в IAM и удалил роль, а затем вернулся в Cognito и снова создал роль для SMS MFA (после обновления страницы), и это сработало.