У меня есть 2 аккаунта AWS, и я настроил аутентификацию между аккаунтами с использованием ролей IAM.
Я создал именованный профиль интерфейса командной строки AWS для второй учетной записи, который использует role_arn и указывает мой профиль по умолчанию как source_profile.
Для своего профиля по умолчанию я использую KEY и SECRET как переменные среды, а не как статические строки в файле ~ / .aws / credentials.
Однако, когда я переключаюсь на именованный профиль и запрашиваю API, я получаю следующую ошибку:
The source_profile "default" must specify either static credentials or an assume role configuration
Есть ли способ получить именованный профиль для ссылки на мои учетные данные переменной среды, а не на статические учетные данные в ~ / .aws / credentials?
Оказывается, это довольно просто (это не очень очевидно в документации). Вместо использования source_profile вы используете credential_source:
[profile dev]
credential_source = Environment
role_arn = arn:aws:iam::<account_id>:role/Admin
Примечание: в данном случае роль «Администратор» является примером. Вам необходимо обновить это до любой роли кросс-аккаунта, которую вы создали. Точно так же "dev" - это пример профиля в моей конфигурации.
Источник: https://docs.aws.amazon.com/cli/latest/topic/config-vars.html