如何使用“aws iam”显示 IAM 用户的角色?

如何使用“aws iam”显示 IAM 用户的角色?

如果我运行$ 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

相关内容