AWS用户组用户无法Assume Role:Access Denied问题排查
AWS STS AssumeRole 访问被拒问题排查
核心问题:AssumeRole 需要双向授权
你遇到的错误并非用户权限不足,而是目标角色的信任策略未明确允许该用户/用户组执行 AssumeRole 操作。即使用户拥有AdministratorAccess全权限,也需要目标角色主动开放信任权限才能完成角色切换。
具体排查与修复步骤:
检查目标角色的信任关系
登录AWS IAM控制台,找到service-myservice角色,切换到「信任关系」标签:- 确认策略中包含允许你的用户或其所在用户组的授权语句,示例如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{ACCOUNT_ID}:user/me" }, "Action": "sts:AssumeRole" } ] } - 如果用户属于某个组,也可以直接授权用户组ARN:
"AWS": "arn:aws:iam::{ACCOUNT_ID}:group/你的用户组名"
- 确认策略中包含允许你的用户或其所在用户组的授权语句,示例如下:
检查权限边界限制
若用户或用户组附加了「权限边界(Permission Boundary)」,即使拥有AdministratorAccess,边界策略也可能限制sts:AssumeRole操作:- 查看用户/用户组的权限边界配置,确认是否允许
sts:AssumeRole动作,或存在相关拒绝规则。
- 查看用户/用户组的权限边界配置,确认是否允许
清理本地CLI凭证缓存
本地AWS CLI可能缓存了旧凭证,导致实际使用的权限与预期不符:- 执行
aws configure list查看当前生效的凭证信息,确认是用户me的凭证 - 清理缓存:删除
~/.aws/credentials和~/.aws/config中无关配置,或重新执行aws configure指定正确凭证
- 执行
内容的提问来源于stack exchange,提问作者Woody1193
相关产品推荐
相关产品推荐

