AWS CLI tramite MFA

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

Sfortunatamente, per me questa procedura obbligatoria ha richiesto metà della mia giornata lavorativa. Per evitare che altri utenti insicuri di AWS 😉 come me perdano tempo prezioso su cose banali, ho deciso di redigere questa guida.

Anche per un account sandbox, la configurazione MFA è, in genere, un requisito obbligatorio. Per noi è così.

Configurazione MFA

  1. Installa app mobile compatibile
  2. Accedi al 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 sullo 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 passo 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, e i singoli campi devono essere inseriti nelle corrispondenti variabili ambientali AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN

Ho deciso di automatizzare tramite ˜/.bash_profile
Per analizzare il 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 '

Uso:

$ aws-login-dev

Spero che questa guida ti aiuti a evitare di vagare per la documentazione ufficiale 😉

Fonte: habr.com

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