为何我的AWS扮演角色无权执行cognito-idp:AdminGetUser操作?
问题原因
本地环境使用的AWS访问凭证已配置对应权限,因此可以正常调用接口。部署到Laravel Vapor后,运行时默认使用laravel-vapor-role这一IAM角色作为权限凭据,该角色默认没有授予Cognito用户池的cognito-idp:AdminGetUser操作权限,因此触发权限拒绝错误。
修复方案
- 登录AWS控制台进入IAM服务,在角色列表中找到
laravel-vapor-role进入详情页 - 依次点击「添加权限」→「创建内联策略」,切换到JSON编辑视图,粘贴如下内容(请将Resource字段替换为你实际的Cognito用户池ARN):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cognito-idp:AdminGetUser", "Resource": "arn:aws:cognito-idp:us-east-1:xxxx:userpool/us-east-1_xxxx" } ] }
- 保存策略后等待1-2分钟权限生效,即可正常请求接口。如果后续需要调用其他Cognito管理类接口,只需在策略的Action数组中添加对应操作名即可。
内容的提问来源于stack exchange,提问作者Tharaka Dilshan
相关产品推荐
相关产品推荐

