如果我运行$ aws iam get-user --user-name anthony
,我会得到这样的结果
{
"User": {
"Path": "/",
"UserName": "anthony",
"UserId": "E2S4XZIL9NRNSBIDBI5U6",
"Arn": "arn:aws:iam::123456:user/anthony",
"CreateDate": "2015-04-03T01:22:11Z",
"PasswordLastUsed": "2019-04-10T01:38:14Z"
}
}
如果我想获取role
此登录的列表,我该怎么做aws iam
?
答案1
IAM 用户没有IAM 角色,因此您无法列出它们。
IAM 用户可以有IAM 策略(直接连接或通过IAM 集团会员资格)承担其他角色。
您可以列出直接附加的策略:
aws iam list-attached-user-policies --user-name ...
团体成员:
aws iam list-groups-for-user --user-name ...
然后从那里分组政策:
aws iam list-attached-group-policies --group-name ... # group names from previous step
希望有帮助:)
答案2
遗憾的是,AWS cli 工具无法列出用户可以承担的所有角色。作为一种解决方法,您可以列出与相关用户相关的所有角色,并在此输出中搜索您的用户。
以下命令列出角色名称和相关用户的所有角色和过滤器(通过 jq 工具):
aws iam list-roles --output=json | jq '.Roles[] | {role: .RoleName, user: .AssumeRolePolicyDocument.Statement[].Principal.AWS} | select(.user != null)'
示例输出:
{
"role": "dev-ops-rw",
"user": "arn:aws:iam::123456789012:user/user1"
}
{
"role": "finance",
"user": "arn:aws:iam::123456789012:user/user2"
}
{
"role": "service",
"user": "arn:aws:iam::123456789012:user/user1"
}
此输出表明用户1可以承担角色开发运维和服务。 用户用户2可以担任角色金融。
答案3
首先要做的事情:
aws iam 列表用户策略 --用户名 用户
然后做:
aws iam get-user-policy --用户名 USER --policy-name POLICY-NAME-FOUND-ABOVE