跳至内容

如何解决当我尝试在 Amazon Cognito 中创建用户池时出现的“Access Denied”错误?

1 分钟阅读
0

我在尝试创建 Amazon Cognito 用户池时收到“Access Denied”错误消息。

解决方法

当您的 AWS Identity and Access Management (IAM) 用户或角色没有创建和管理 Amazon Cognito 资源所需的权限时,就会出现“Access Denied”错误。要解决此问题,请将 AmazonCognitoPowerUser IAM 策略附加到您的 IAM 用户或角色。

完成以下步骤:

  1. 打开 IAM 控制台
  2. 在导航窗格中,选择 Users(用户)向 IAM 用户授予权限。或者,选择 Roles(角色)向 IAM 角色授予权限。
  3. 选择 IAM 用户或角色。
  4. Permissions(权限)选项卡上,展开 Add permissions(添加权限)部分,然后选择Attach existing policies directly(直接附加现有策略)。
  5. 在搜索框中,输入 AmazonCognitoPowerUser
  6. 选中 AmazonCognitoPowerUser 策略的复选框。
  7. 选择 Next: Review(下一步:查看)。
  8. 查看策略,然后选择 Add permissions(添加权限)。

**注意:**AmazonCognitoPowerUser 托管策略提供对 Amazon Cognito 资源的完全访问权限。要限制访问权限,请创建仅具有所需权限的自定义 IAM 策略。有关详细信息,请参阅 Amazon Cognito 的 Amazon 托管策略

如果您使用短信服务 (SMS) 配置创建 Amazon Cognito 用户池,则还要将以下示例策略附加到您的 IAM 用户或角色:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "CognitoServiceRoleManagement",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole",
                "iam:CreateRole",
                "iam:AttachRolePolicy"
            ],
            "Resource": "arn:aws:iam:444455556666:role/service-role/CognitoIdpSNSServiceRole"
        },
        {
            "Sid": "CognitoServiceRolePolicyCreation",
            "Effect": "Allow",
            "Action": [
                "iam:CreatePolicy"
            ],
            "Resource": "arn:aws:iam:444455556666:policy/service-role/Cognito-*"
        }
    ]
}

**注意:**请将 444455556666 替换为您的 AWS 账户 ID。

相关信息

Amazon Cognito 用户池

注册并确认用户账户

AWS 官方已更新 2 个月前