是否存在CLI命令可获取用户的所有关联策略及组继承的托管策略?
关于AWS CLI获取用户所有策略的问题解答
没错,目前AWS CLI确实没有单一命令能直接列出一个用户的所有策略(包括内联、直接关联的托管策略,以及通过所属组继承的托管策略),你需要组合几个命令来获取完整信息。下面分两部分给你说明具体操作:
一、获取用户直接关联的所有策略(内联+托管)
你可以用这两个命令分别获取:
- 获取用户直接关联的托管策略:
aws iam list-attached-user-policies --user-name <你的用户名> - 获取用户的内联策略:
aws iam list-user-policies --user-name <你的用户名> # 如果要查看内联策略的具体内容,再加这个命令: aws iam get-user-policy --user-name <你的用户名> --policy-name <策略名>
二、获取用户通过组继承的托管策略
要拿到这部分策略,需要先找到用户所属的所有组,再逐个查询组关联的托管策略:
- 先列出用户所属的组:
aws iam list-groups-for-user --user-name <你的用户名> - 对每个组,查询其关联的托管策略:
aws iam list-attached-group-policies --group-name <组名>
小技巧:用脚本整合所有信息
如果不想手动逐个执行,可以写个简单的shell脚本自动整合所有结果,比如:
USER_NAME="你的用户名" echo "=== 用户 $USER_NAME 直接关联的托管策略 ===" aws iam list-attached-user-policies --user-name $USER_NAME echo -e "\n=== 用户 $USER_NAME 的内联策略 ===" aws iam list-user-policies --user-name $USER_NAME echo -e "\n=== 用户 $USER_NAME 通过组继承的托管策略 ===" GROUPS=$(aws iam list-groups-for-user --user-name $USER_NAME --query 'Groups[].GroupName' --output text) for GROUP in $GROUPS; do echo "--- 来自组 $GROUP 的策略 ---" aws iam list-attached-group-policies --group-name $GROUP done
这样就能一次性拿到用户的所有策略信息了。
内容的提问来源于stack exchange,提问作者R Syed
相关产品推荐
相关产品推荐

