Cognito сохраняет изменения в пуле пользователей не работает

Мы используем пользовательский пул cognito для аутентификации, и я включил проверку электронной почты в разделе MFA и проверка, поэтому через некоторое время я пытаюсь удалить эту проверку, сняв флажок электронной почты, и всегда получаю сообщение об ошибке Ваши роли все еще создаются. Подождите и повторите попытку . Ждал неделю, проблема осталась. Мне просто нужно отключить подтверждение электронной почты. Заранее спасибо.


person punith bp    schedule 04.07.2018    source источник


Ответы (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), и, к сожалению, для решения проблемы недостаточно элементов управления на панели инструментов. Вы должны немного взломать это, пока они не смогут это исправить.

person Tom    schedule 21.03.2019
comment
Я не уверен, куда поместить этот внешний идентификатор из консоли. - person Žilvinas; 31.07.2019
comment
@Žilvinas переходите к этой роли, на вкладке Trust relationships нажмите Edit trust relationship и замените существующий sts:ExternalId на тот, который вы получили от aws cli - person Marius B; 29.11.2019
comment
Я столкнулся с этим после того, как каким-то образом потерял роль SNS. К сожалению, теперь, год спустя, при создании роли в фиктивном пуле в arn есть :role/service-role/, а не просто :role/, что приводит к тому, что ошибка остается. Думаю удалить пул и воссоздать его, но я боюсь этой мысли. - person Kim; 08.04.2020
comment
почти попал туда с помощью aws iam create-role, что позволило добиться идеального совпадения имени и arn. Затем я заполнил политику разрешений и доверительные отношения, но все то же самое. :( - person Kim; 08.04.2020

Я знаю, что это поздно, но, возможно, кому-то это может быть полезно.

Ниже может быть решение, в зависимости от сценария.

Я каким-то образом удалил 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
person Kim    schedule 21.04.2020
comment
Это сработало для меня, добавив мои собственные значения для SnsCallerArn и ExternalId. Спасибо! - person Mitch Conquer; 09.03.2021

У меня была такая же проблема. Я попытался добавить несколько триггеров в свой пользовательский пул, но он продолжал говорить, что роли создаются. Я посмотрел на AIM, и роли как будто не существовало. Что сработало для меня, так это сочетание разных ответов.

  1. Получите внешний идентификатор для вашего пула пользователей.
aws cognito-idp get-user-pool-mfa-config --user-pool-id=XXXXX
{
    "SmsMfaConfiguration": {
        "SmsConfiguration": {
            "SnsCallerArn": "arn:aws:iam::XXXX",
            "ExternalId": "XXXX"
        }
    },
    "MfaConfiguration": "OFF"
}

  1. Создайте новую роль в AIM для SNS.

  2. После создания нажмите «Доверительные отношения», затем нажмите «Изменить доверительные отношения» и добавьте следующий 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"
        }
      }
    }
  ]
}
  1. С помощью интерфейса командной строки обновите роль пула, указав 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

После этого я смог сохранить изменения в пуле пользователей.

person Agey    schedule 04.08.2020

Если кто-то еще сталкивается с той же проблемой, вот как я ее решил: я пошел в IAM и удалил роль, а затем вернулся в Cognito и снова создал роль для SMS MFA (после обновления страницы), и это сработало.

person Mostafa Darezereshki    schedule 21.01.2021