Назад | Перейти на главную страницу

Как «сменить роль» в aws-cli?

Я заключаю контракт с компанией, у которой есть несколько учетных записей AWS. Они предоставили мне доступ к учетной записи для входа, и я «сменил роль» в веб-консоли на учетную запись Project, над которой я работаю. В веб-интерфейсе это работает.

Как мне сделать то же самое с aws-cli?? У меня есть ключи доступа только для учетной записи входа, и у меня нет разрешений на создание пользователя и ключи доступа в учетной записи Project. Это вообще возможно?

Конечно возможно!

Предположим, у вас есть Вход в аккаунт полномочия в ~/.aws/credentials, наверное, примерно так:

~ $ cat ~/.aws/credentials
[customer-login]
aws_access_key_id = AKIABCDEFGHJKLMNOPQR
aws_secret_access_key = ZxCvBnMaSdFgHjKlQwErTyUiOp

Все, что вам нужно сделать, это добавить еще один профиль в ~/.aws/credentials который будет использовать указанный выше профиль для сменить аккаунт в роль учетной записи вашего проекта. Вам также понадобится учетная запись Project Роль ARN - вы можете найти это в веб-консоли в Я -> Роли после того, как вы переключитесь на Учетная запись проекта. Допустим, номер учетной записи проекта - 123456789012 ...

[customer-project]
role_arn = arn:aws:iam::123456789012:role/your-project-role-name   # << Change this
source_profile = customer-login

Имея это на месте, вы можете проверить, работает ли оно:

~ $ aws --profile customer-project sts get-caller-identity
{
    "Account": "123456789012",
    "UserId": "AROA1B2C3D4E5F6G7H8I:botocore-session-1538120713",
    "Arn": "arn:aws:sts::123456789012:assumed-role/your-project-role-name/botocore-session-1538120713"
}

Как вы можете видеть, теперь вы находитесь в учетной записи Project, что подтверждается идентификатором учетной записи 123456789012.

Если вы хотите всегда использовать этот профиль с aws-cli вы можете сделать так:

~ $ export AWS_DEFAULT_PROFILE=customer-project
~ $ aws sts get-caller-identity
... will be the same output as above, even without specifying --profile ...

Для получения дополнительной информации ознакомьтесь с этим сообщением: https://aws.nz/best-practice/cross-account-access-with-aws-cli/

Также проверьте: