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

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

4 ответа

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

Я знаю, что это поздно, но, может быть, это кому-нибудь пригодится.

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

Я каким-то образом удалил роль 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, и пул пользователей перестал показывать эту кровь 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, и мне показалось, что роли не существует. Для меня сработало сочетание разных ответов.

  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

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

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

Другие вопросы по тегам