AWS CLI执行get-role-policy报NoSuchEntity错误但策略已挂载到角色
报错原因
核心是aws iam get-role-policy命令仅支持查询角色的内联策略,你场景中用到的MyPolicy是独立创建的客户托管策略,二者匹配逻辑不对应。
- AWS IAM策略分为两种完全独立的类型:
- 内联策略:直接写在角色/用户/用户组内部的策略,和所属实体生命周期绑定,只能通过
get-role-policy、get-user-policy这类针对身份实体的内嵌策略查询命令获取 - 托管策略:独立创建的策略资源,可以挂载到任意数量的身份实体上,分为AWS官方提供的托管策略和用户自建的客户托管策略,你场景中的
MyPolicy就属于客户托管策略
- 内联策略:直接写在角色/用户/用户组内部的策略,和所属实体生命周期绑定,只能通过
- 你用到的
aws iam list-attached-role-policies返回的是所有挂载到该角色的托管策略列表,这类策略无法通过get-role-policy查询,需要用下面两条命令获取完整信息:- 查询策略基础元数据:
aws iam get-policy --policy-arn arn:aws:iam::123456789:policy/MyPolicy - 用第一步返回的默认版本号查询策略的具体权限内容:
aws iam get-policy-version --policy-arn arn:aws:iam::123456789:policy/MyPolicy --version-id <策略版本号>
- 查询策略基础元数据:
内容的提问来源于stack exchange,提问作者pkaramol
相关产品推荐
相关产品推荐

