AWS CLI iyada oo loo marayo MFA

Далее последует инструкция по настройке AWS MFA, и последющей установке и настройке AWS CLI.

К сожалению, у меня на эту обязательную процедуру ушла половина рабочего дня. Чтобы другим неуверенным пользователям AWS 😉 как и я сам, не тратить драгоценное время на банальное, решил составить инструкцию.

Даже для sandbox аккаунта настройка Laamaha — это, как правило, обязательное требование. У нас это так.

Настройка MFA

  1. Deji совместимое мобильное приложение
  2. Tag AWS консоль
  3. My Security Credentials -> Assign MFA Device
    AWS CLI iyada oo loo marayo MFA
  4. Virtual MFA Device
    AWS CLI iyada oo loo marayo MFA
  5. Raac tilmaamaha shaashadda
    AWS CLI iyada oo loo marayo MFA
    AWS CLI iyada oo loo marayo MFA
  6. Виртуальное устройство готово
    AWS CLI iyada oo loo marayo 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 iyada oo loo marayo MFA
  2. Скопируйте ключ в буфер обмена. Он понадобится на следующем шаге
  3. $ aws configure --profile <your profile name>

AWS CLI iyada oo loo marayo MFA

  1. Скопируйте ARN виртуального устройства
    AWS CLI iyada oo loo marayo 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 '

Isticmaal:

$ aws-login-dev <одноразовый пароль>

Надеюсь данная инструкция поможет вам избежать пространных блужданий по официальной документации 😉

Source: www.habr.com

Add a comment