Далее последует инструкция по настройке AWS MFA, и последющей установке и настройке AWS CLI.
К сожалению, у меня на эту обязательную процедуру ушла половина рабочего дня. Чтобы другим неуверенным пользователям AWS 😉 как и я сам, не тратить драгоценное время на банальное, решил составить инструкцию.
Даже для sandbox аккаунта настройка — это, как правило, обязательное требование. У нас это так.
Настройка MFA
- Установите
- Зайдите в
- -> Assign MFA Device

- Virtual MFA Device

- Следуйте инструкциям на экране


- Виртуальное устройство готово

Установка AWS CLI
Настройка именованного профиля
- -> Create access key

- Скопируйте ключ в буфер обмена. Он понадобится на следующем шаге
$ aws configure --profile <your profile name>
AWS CLI через MFA
- Скопируйте ARN виртуального устройства

aws sts get-session-token --profile <имя профиля> --serial-number <ARN виртуального устройства> --token-code <одноразовый пароль>
Одноразовый пароль необходимо взять из мобильного приложения настроенного ранее.- Команда выведет JSON, отдельные поля которго необходимо подставить в соответствующие переменные окржуения AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN
Я решил автоматизировать через ~/.bash_profile
Для разбора JSON данный скрипт требует .
#!/usr/bin/env bash
aws_login() {
session=$(aws sts get-session-token "$@")
echo "${session}"
AWS_ACCESS_KEY_ID=$(echo "${session}" | jq -r '.Credentials.AccessKeyId')
export AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY=$(echo "${session}" | jq -r '.Credentials.SecretAccessKey')
export AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN=$(echo "${session}" | jq -r '.Credentials.SessionToken')
export AWS_SESSION_TOKEN
}
alias aws-login-dev='aws_login --profile <имя dev профиля> --serial-number <ARN виртуального устройства> --token-code '
alias aws-login-prod='aws_login --profile <имя prod профиля> --serial-number <ARN виртуального устройства> --token-code 'Использование:
$ aws-login-dev <одноразовый пароль>Надеюсь данная инструкция поможет вам избежать пространных блужданий по официальной документации 😉
Источник: habr.com







