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

Дадаць каментар