AWS CLI через MFA

Далі буде інструкція з налаштування AWS MFA, а також наступна установка та налаштування AWS CLI.

На жаль, у мене на цю обов'язкову процедуру пішла половина робочого дня. Щоб іншим невпевненим користувачам AWS 😉 як і я сам, не витрачати дорогоцінний час на банальний, вирішив скласти інструкцію.

Навіть для sandbox облікового запису налаштування МЗС - це, як правило, обов'язкова вимога. В нас це так.

Налаштування MFA

  1. Встановіть сумісний мобільний додаток
  2. Зайдіть в AWS консоль
  3. My Security Credentials -> Assign MFA Device
    AWS CLI через MFA
  4. Virtual MFA Device
    AWS CLI через MFA
  5. Дотримуйтесь інструкцій на екрані
    AWS CLI через MFA
    AWS CLI через MFA
  6. Віртуальний пристрій готовий
    AWS CLI через MFA

Встановлення AWS CLI

https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html

Налаштування іменованого профілю

https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html

  1. My Security Credentials -> Create access key
    AWS CLI через MFA
  2. Скопіюйте ключ у буфер обміну. Він знадобиться на наступному кроці
  3. $ aws configure --profile <your profile name>

AWS CLI через MFA

  1. Скопіюйте ARN віртуального пристрою
    AWS CLI через MFA
  2. aws sts get-session-token --profile <имя профиля> --serial-number <ARN виртуального устройства> --token-code <одноразовый пароль>
    Одноразовий пароль необхідно взяти з мобільного додатка налаштованого раніше.
  3. Команда виведе JSON, окремі поля якого необхідно підставити у відповідні змінні налаштування AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN

Я вирішив автоматизувати через ~/.bash_profile
Для аналізу JSON цей скрипт вимагає jq.

#!/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

Додати коментар або відгук