如何通过AWS CLI查看托管策略的策略主体内容?
查看AWS托管策略内容的正确CLI方法
你说得没错,aws iam get-policy确实只能返回托管策略的基础元数据(比如名称、ARN、创建时间、描述这些),没办法直接拿到具体的权限语句内容——这不是你漏了操作步骤,而是这个命令的设计就是只返回策略的基本信息。
要获取托管策略的主体内容,你需要用另一个专门的命令:aws iam get-policy-version。因为AWS托管策略是按版本管理的,每个策略最多可以有5个版本,你需要指定对应版本的ID才能查看具体内容。具体操作步骤如下:
先获取策略的版本列表,定位默认版本ID
默认版本是当前生效的策略版本,你可以用以下命令列出该策略的所有版本信息:aws iam list-policy-versions --policy-arn <你的策略ARN>输出结果里会包含每个版本的
VersionId和IsDefaultVersion标记,找到带有IsDefaultVersion: true的那条记录,对应的VersionId(比如v1、v2)就是你需要的。用版本ID获取完整策略内容
把上一步拿到的版本ID代入下面的命令,就能获取到包含权限语句的完整策略内容了:aws iam get-policy-version --policy-arn <你的策略ARN> --version-id <版本ID>
快捷技巧:一步获取默认版本内容
如果不想手动复制版本ID,可以结合AWS CLI的--query参数和shell变量,直接一步获取当前生效的默认版本策略内容:
# 自动获取默认版本ID DEFAULT_VERSION=$(aws iam list-policy-versions --policy-arn <你的策略ARN> --query 'Versions[?IsDefaultVersion].VersionId' --output text) # 直接拉取该版本的策略内容 aws iam get-policy-version --policy-arn <你的策略ARN> --version-id $DEFAULT_VERSION
需要注意的是,如果你查看的是非默认版本,拿到的是历史版本的策略内容,并非当前生效的权限配置,所以一定要确认版本的IsDefaultVersion标记哦。
内容的提问来源于stack exchange,提问作者Mazzy
相关产品推荐
相关产品推荐

