Что хороший путь состоит в том, чтобы использовать учетные данные, возвращенные 'aws sts принимать-роль' в текущей сессии оболочки?

aws sts assume-role учетные данные возвратов в Json-формате. Есть ли простой способ (как помещение их в переменных среды) так, чтобы последующие вызовы к aws может использовать их?

В основном я хочу что-то как sudo -i для AWS.

Примечание: Я в настоящее время делаю это на своем ноутбуке с текущими учетными данными в огибающих переменных, но было бы хорошо, если бы решение также работало над экземплярами EC2, куда исходные ролевые учетные данные прибывают из метаданных экземпляра.

2
задан 30 October 2015 в 17:40
1 ответ

Вместо явного вызова команды sts accept-role можно настроить профиль , который принимает на себя определенную роль, которая затем кэшируется в CLI . Это хорошо документировано , но вы в основном просто настраиваете его как обычный профиль в своем файле ~ / aws / config , например:

[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadmin
source_profile = default

Если вы применяете MFA при использовании роль (что я настоятельно рекомендую вам сделать), она будет выглядеть примерно так:

[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadmin
source_profile = default
mfa_serial = arn:aws:iam::123456789012:mfa/jonsmith

Для использования роли, которую вы настроили, вы либо указываете опцию CLI - profile , либо обязательно установите Переменная среды AWS_PROFILE с именем профиля.

Вы, конечно, также можете явно вызвать команду sts accept-role , тогда вам нужно будет проанализировать соответствующие значения и поместить их в следующие переменные среды: AWS_ACCESS_KEY_ID , AWS_SECRET_ACCESS_KEY и AWS_SESSION_TOKEN .

1
ответ дан 3 December 2019 в 12:43

Теги

Похожие вопросы