У меня была проблема, когда роль SMS была случайно удалена. Возможно, он никогда не был создан. В нижней части раздела MFA вы увидите поле ввода с возможностью присвоения имени роли, а затем нажмите кнопку «Создать роль».
Если у вас уже есть серое имя роли. Ищите это в IAM. Если он не существует, вам нужно будет создать его заново. К сожалению, в IAM нет способа сделать это и заставить его работать на Cognito, поскольку для него требуется префикс пути для роли службы (service-role
). Я пытался воссоздать через CLI, и хотя он выполнял соответствующую роль, он все равно не работал.
Поэтому лучше всего создать новый (фиктивный) пул и создать там роль SMS, которая совпадает с именем той, которая используется другим пулом, в котором вы видите это сообщение об ошибке.
Затем вам необходимо обновить роль, чтобы обеспечить совпадение ExternalId
(это UUID). Единственный способ найти этот UUID - через CLI, поэтому вам нужно найти его с помощью команды: aws cognito-idp get-user-pool-mfa-config --user-pool-id=xxxx
Он должен вернуть текущее имя роли, и оно ExternalId
, чтобы вы могли затем вернуться в IAM и найти вновь созданную AWS роль SMS и обновить ее политику JSON, чтобы включить правильный UUID.
Наконец, избавьтесь от фиктивного пула, который вы создали, потому что теперь он также будет затронут "ваши роли еще создаются". ошибка.
По сути, он просто застрял и нуждается в настройке, указывающей на правильную роль (используя его ExternalId), и, к сожалению, на панели управления недостаточно средств для решения проблемы. Вы должны немного взломать его, пока они не смогут это исправить.