AWS CLI чрез MFA

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

За съжаление, за тази задължителна процедура ми отне половината работен ден. За да не губят време други неуверени потребители на AWS 😉 като мен, реших да съставя инструкция.

Дори за sandbox акаунт настройката MFA е обикновено задължително изискване. При нас е така.

Настройка на MFA

  1. Установете съвместимо мобилно приложение
  2. Отидете в конзолата на AWS
  3. Моите сигурностни данни -> Назначаване на устройството MFA
    AWS CLI чрез MFA
  4. Виртуално устройство MFA
    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. Моите сигурностни данни -> Създайте ключ за достъп
    AWS CLI чрез MFA
  2. Копирайте ключа в буфера за обмен. Той ще е необходим на следващата стъпка
  3. $ aws configure --profile

AWS CLI чрез MFA

  1. Копирайте ARN на виртуалното устройство
    AWS CLI чрез MFA
  2. aws sts get-session-token --profile --serial-number --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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster