Если я запустил $ 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"
}
}
Если я хочу получить список роли
, который имеет этот логин, как я могу это сделать с aws iam
]?
Пользователь IAM не имеет ролей IAM , поэтому вы не можете их перечислить.
Пользователь IAM может иметь Политики IAM (присоединенные напрямую или через членство в IAM Group ), которые позволяют ему брать на себя другие роли .
] Вы можете перечислить непосредственно прикрепленные политики:
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
Надеюсь, что это поможет :)
К сожалению, с помощью инструмента 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"
}
В этом выводе показано, что user1 может принимать роли dev-ops-rw и service. Пользователь user2 может взять на себя роль finance.