СІМ арқылы AWS CLI

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

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

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

Настройка MFA

  1. Орнату совместимое мобильное приложение
  2. Өту AWS консоль
  3. My Security Credentials -> Assign MFA Device
    СІМ арқылы AWS CLI
  4. Virtual MFA Device
    СІМ арқылы AWS CLI
  5. Экрандағы нұсқауларды орындаңыз
    СІМ арқылы AWS CLI
    СІМ арқылы AWS CLI
  6. Виртуальное устройство готово
    СІМ арқылы AWS CLI

Установка 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
  2. Скопируйте ключ в буфер обмена. Он понадобится на следующем шаге
  3. $ aws configure --profile <your profile name>

СІМ арқылы AWS CLI

  1. Скопируйте ARN виртуального устройства
    СІМ арқылы AWS CLI
  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 <одноразовый пароль>

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

Ақпарат көзі: www.habr.com

пікір қалдыру