AWS CLI tramite MFA

Di seguito troverai le istruzioni per configurare AWS MFA e successivamente installare e configurare AWS CLI.

Sfortunatamente, ho impiegato metà della mia giornata lavorativa per completare questa procedura obbligatoria. Per evitare che altri utenti insicuri di AWS 😉, come me, perdano tempo prezioso su qualcosa di banale, ho deciso di redigere un manuale.

Anche per un account sandbox la configurazione MFA è di solito un requisito obbligatorio. Per noi è così.

Configurazione MFA

  1. Installare un'app mobile compatibile
  2. Accedi alla console AWS
  3. Le mie credenziali di sicurezza -> Assegna dispositivo MFA
    AWS CLI tramite MFA
  4. Dispositivo MFA virtuale
    AWS CLI tramite MFA
  5. Segui le istruzioni a schermo
    AWS CLI tramite MFA
    AWS CLI tramite MFA
  6. Il dispositivo virtuale è pronto
    AWS CLI tramite MFA

Installazione di AWS CLI

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

Configurazione di un profilo nominato

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. Ti servirà nel passaggio successivo
  3. $ aws configure --profile

AWS CLI tramite MFA

  1. Copia l'ARN del dispositivo virtuale
    AWS CLI tramite MFA
  2. aws sts get-session-token --profile --serial-number --token-code
    La password usa e getta deve essere presa dall'app mobile configurata in precedenza.
  3. Il comando restituirà un JSON, i singoli campi devono essere inseriti nelle variabili di ambiente AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN

Ho deciso di automatizzarlo tramite ~/.bash_profile
Questo script richiede per analizzare il 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 '

Utilizzo:

$ aws-login-dev

Spero che queste istruzioni ti aiutino a evitare vagabondaggi nell'officiale documentazione 😉

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster