AWS CLI tramite MFA

Successivamente verranno fornite le istruzioni per impostare AWS MFA, quindi installare e configurare AWS CLI.

Sfortunatamente, questa procedura obbligatoria mi ha richiesto metà della mia giornata lavorativa. Affinché altri utenti AWS insicuri 😉, come me, non perdano tempo prezioso in cose banali, ho deciso di compilare delle istruzioni.

Anche per l'impostazione dell'account sandbox AMF Questo di solito è un requisito obbligatorio. Da noi è così.

Impostazione dell'AMF

  1. Set applicazione mobile compatibile
  2. Vai a Console AWS
  3. Le mie credenziali di sicurezza -> Assegna dispositivo MFA
    AWS CLI tramite MFA
  4. Dispositivo MFA virtuale
    AWS CLI tramite MFA
  5. Seguire le istruzioni sullo schermo
    AWS CLI tramite MFA
    AWS CLI tramite MFA
  6. Il dispositivo virtuale è pronto
    AWS CLI tramite MFA

Installazione dell'AWS CLI

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

Impostazione di un profilo denominato

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

  1. Le mie credenziali di sicurezza -> Crea chiave di accesso
    AWS CLI tramite MFA
  2. Copia la chiave negli appunti. Ne avrai bisogno nel passaggio successivo
  3. $ aws configure --profile <your profile name>

AWS CLI tramite MFA

  1. Copia l'ARN del dispositivo virtuale
    AWS CLI tramite MFA
  2. aws sts get-session-token --profile <имя профиля> --serial-number <ARN виртуального устройства> --token-code <одноразовый пароль>
    La password monouso deve essere presa dall'applicazione mobile configurata in precedenza.
  3. Il comando restituirà JSON, i cui singoli campi devono essere sostituiti nelle variabili di ambiente corrispondenti AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN

Ho deciso di automatizzare ~/.bash_profile
Per analizzare JSON, questo script richiede 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 <одноразовый пароль>

Spero che queste istruzioni ti aiutino a evitare lunghe divagazioni nella documentazione ufficiale 😉

Fonte: habr.com

Aggiungi un commento