После долгих чтений, проб и ошибок я обнаружил, что ответ Маноя правильный, но хитрая часть - это аргумент, который нужно передать как xyz
в своем ответе. Вот что мне нужно было для того, чтобы пройти роль:
Мне пришлось настроить роль, которую я хотел передать в файле конфигурации интерфейса командной строки AWS, в качестве профиля. Параметр --profile
, о котором упоминал Маной, работает только с профилями, настроенными в этом файле (насколько мне известно). Способ настроить роль в качестве профиля с помощью команды:
aws configure --profile arbitraryName
То, что следует после профиля, это просто метка или переменная, которую вы будете использовать для ссылки на свою роль, когда хотите передать ее, вы можете дать ей любое имя, но в идеале вы должны называть ее так же, как и роль, которую он будет выполнять. Выполнение этой команды предложит вам ввести несколько полей. Насколько я знаю, у ролей нет access_key или secret_access_key, поэтому просто нажмите enter, чтобы пропустить их, а также регион и выходные данные, они вам не нужны для вашей роли. Затем вы установите поля, которые действительно нужны ролям, используя следующие команды:
aws configure set profile.arbitraryName.role_arn roleArn
aws configure set profile.arbitraryName.source_profile cliProfile
roleArn
- это ароним роли, которую вы настраиваете в CLI, cliProfile
- это пользователь, уже настроенный в CLI, у которого есть права для принятия роли. Как только это будет сделано, всякий раз, когда вы захотите передать сконфигурированную роль в команде, вам просто нужно добавить --profile arbitraryName
в качестве последнего параметра вашей команды, и команда будет использовать разрешения для роли, которая была передана.
* Интересно знать, что передача роли таким образом делает неявным aws sts assume-role
. Если вы знаете, где находится ваша папка .aws, вы можете зайти в нее и увидеть папку с именем cli, которая содержит файл json с временными учетными данными, которые создаются, когда предполагается роль.
Мне пришлось много читать, чтобы понять это, надеюсь, этот ответ спасет кого-то еще.