AWS CLI přes MFA

Dále budou pokyny pro nastavení AWS MFA a poté instalace a konfigurace AWS CLI.

Bohužel mi tato povinná procedura zabrala polovinu pracovního dne. Aby ostatní nejistí uživatelé AWS 😉, jako jsem já, neztráceli drahocenný čas triviálností, rozhodl jsem se sestavit návod.

I pro nastavení účtu v sandboxu MFA To je obvykle povinný požadavek. Takhle je to u nás.

Nastavení MFA

  1. Sada kompatibilní mobilní aplikace
  2. Přejít na konzole AWS
  3. Moje bezpečnostní pověření -> Přiřadit zařízení MFA
    AWS CLI přes MFA
  4. Virtuální zařízení MFA
    AWS CLI přes MFA
  5. Postupujte podle pokynů na obrazovce
    AWS CLI přes MFA
    AWS CLI přes MFA
  6. Virtuální zařízení je připraveno
    AWS CLI přes MFA

Instalace AWS CLI

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

Nastavení pojmenovaného profilu

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

  1. Moje bezpečnostní pověření -> Vytvořit přístupový klíč
    AWS CLI přes MFA
  2. Zkopírujte klíč do schránky. Budete jej potřebovat v dalším kroku
  3. $ aws configure --profile <your profile name>

AWS CLI přes MFA

  1. Zkopírujte ARN virtuálního zařízení
    AWS CLI přes MFA
  2. aws sts get-session-token --profile <имя профиля> --serial-number <ARN виртуального устройства> --token-code <одноразовый пароль>
    Jednorázové heslo je nutné získat z dříve nakonfigurované mobilní aplikace.
  3. Příkaz vygeneruje JSON, jehož jednotlivá pole je třeba dosadit do odpovídajících proměnných prostředí AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN

Rozhodl jsem se pro automatizaci ~/.bash_profile
K analýze JSON tento skript vyžaduje 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 <одноразовый пароль>

Doufám, že vám tento návod pomůže vyhnout se zdlouhavému bloudění oficiální dokumentací 😉

Zdroj: www.habr.com

Přidat komentář