已授予IAM CreateRole权限仍被拒绝,CloudFormation栈创建失败
问题分析
你配置的IAM策略虽然允许iam:CreateRole操作且资源范围设为*,但错误信息明确指出存在身份型策略中的显式拒绝。在IAM权限逻辑里,显式拒绝会优先于所有允许权限,哪怕有允许策略,只要存在任何一条显式拒绝该操作的策略,请求就会失败。
排查与解决步骤
- 检查用户直接绑定的所有身份策略:确认是否有其他策略包含
Effect: Deny且涉及iam:CreateRole操作的语句,无论资源匹配规则如何,显式拒绝都会生效。 - 检查用户所属IAM组的关联策略:用户会继承组的权限配置,组策略里的显式拒绝同样会限制用户操作。
- 检查附加的AWS托管策略:确认是否给用户添加了带有显式拒绝的托管策略,比如部分合规类托管策略会限制IAM角色创建权限。
- 检查IAM权限边界:如果用户或其所属组设置了权限边界,边界策略中的显式拒绝也会覆盖允许权限,需要验证边界策略内容。
- 检查AWS组织SCP:若账号属于AWS Organizations,组织层面的服务控制策略(SCP)可能存在对
iam:CreateRole的显式拒绝,这会作用于账号内所有身份。
快速定位方法
使用IAM Access Analyzer的权限模拟功能,输入用户ARN、目标操作iam:CreateRole和待创建角色的ARN,工具会明确指出是哪条策略触发了显式拒绝,定位后修改或移除对应的拒绝语句即可解决问题。
内容的提问来源于stack exchange,提问作者java_doctor_101
相关产品推荐
相关产品推荐

