ASP.NET Core集成AWS Cognito遇权限错误,求IAM配置方案
解决ASP.NET Core + AWS Cognito集成时的IAM权限错误
嘿,我刚看完你的问题,这个AmazonCognitoIdentityProviderException报错其实是典型的IAM权限不足问题。你当前用的AmazonCognitoDeveloperAuthenticatedIdentities策略根本覆盖不了Cognito用户池的管理操作,咱们一步步来解决:
为什么会报错?
当你调用_userManager.CreateAsync时,AWS SDK会先调用cognito-idp:DescribeUserPool接口去验证你的用户池信息,而你给IAM用户附加的策略里完全没有这个权限。除此之外,创建用户还需要cognito-idp:SignUp权限,这俩都是现在缺失的核心权限。
具体修复步骤
1. 新建一个自定义IAM策略
登录AWS控制台,打开IAM服务:
- 左边菜单点「策略」,然后点「创建策略」
- 切换到「JSON」标签,把下面的代码粘进去(记得替换成你自己的用户池ARN):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cognito-idp:DescribeUserPool", "cognito-idp:SignUp" ], "Resource": "arn:aws:cognito-idp:us-east-2:777844316068:userpool/us-east-2_115WHTcaH" } ] }
如果之后你需要后台管理员创建用户的功能,可以再加上cognito-idp:AdminCreateUser这个Action。
2. 把自定义策略附加到你的IAM用户
- 回到IAM的「用户」页面,找到你之前创建的那个用户
- 切换到「权限」标签,点「添加权限」→「附加现有策略直接关联」
- 搜索你刚创建的自定义策略,勾选后完成关联
3. 测试验证
重启你的ASP.NET Core应用,再试一次注册流程,应该就能成功创建用户了。
额外提醒
- 记得遵循最小权限原则,只给用户分配必要的权限,别过度授权
- 如果之后要做用户邮箱验证、登录这些功能,可能还需要补充
cognito-idp:ConfirmSignUp、cognito-idp:InitiateAuth这类权限,按需添加就行
内容的提问来源于stack exchange,提问作者devanalyst
相关产品推荐
相关产品推荐

