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

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

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

В принципе, я хочу что-то вроде sudo -i для AWS.

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

Вместо того, чтобы позвонить sts assume-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

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

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