我在尝试创建 Amazon Cognito 用户池时收到“Access Denied”错误消息。
解决方法
当您的 AWS Identity and Access Management (IAM) 用户或角色没有创建和管理 Amazon Cognito 资源所需的权限时,就会出现“Access Denied”错误。要解决此问题,请将 AmazonCognitoPowerUser IAM 策略附加到您的 IAM 用户或角色。
完成以下步骤:
- 打开 IAM 控制台。
- 在导航窗格中,选择 Users(用户)向 IAM 用户授予权限。或者,选择 Roles(角色)向 IAM 角色授予权限。
- 选择 IAM 用户或角色。
- 在 Permissions(权限)选项卡上,展开 Add permissions(添加权限)部分,然后选择Attach existing policies directly(直接附加现有策略)。
- 在搜索框中,输入 AmazonCognitoPowerUser。
- 选中 AmazonCognitoPowerUser 策略的复选框。
- 选择 Next: Review(下一步:查看)。
- 查看策略,然后选择 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 用户池
注册并确认用户账户