AWS CLI via MFA

Voici les instructions pour configurer AWS MFA, ainsi que pour l'installation et la configuration de l'AWS CLI.

Malheureusement, cette procédure obligatoire m'a pris la moitié d'une journée de travail. Pour éviter que d'autres utilisateurs AWS hésitants 😉 comme moi ne perdent un temps précieux sur des choses banales, j'ai décidé de rédiger un guide.

Même pour un compte sandbox, la configuration MFA est généralement une exigence obligatoire. C'est le cas ici.

Configuration de MFA

  1. Installez une application mobile compatible
  2. Connectez-vous à console AWS
  3. Mes identifiants de sécurité -> Attribuer un appareil MFA
    AWS CLI via MFA
  4. Appareil MFA virtuel
    AWS CLI via MFA
  5. Suivez les instructions à l'écran
    AWS CLI via MFA
    AWS CLI via MFA
  6. L'appareil virtuel est prêt
    AWS CLI via MFA

Installation de l'AWS CLI

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

Configuration d'un profil nommé

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

  1. Mes identifiants de sécurité -> Créer une clé d'accès
    AWS CLI via MFA
  2. Copiez la clé dans le presse-papiers. Elle sera nécessaire à l'étape suivante.
  3. $ aws configure --profile

AWS CLI via MFA

  1. Copiez l'ARN de l'appareil virtuel
    AWS CLI via MFA
  2. aws sts get-session-token --profile --serial-number --token-code
    Le code à usage unique doit être obtenu à partir de l'application mobile configurée précédemment.
  3. La commande renverra du JSON, dont les champs individuels doivent être insérés dans les variables d'environnement AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN

J'ai décidé d'automatiser cela avec ~/ .bash_profile
Pour interpréter le JSON, ce script nécessite 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 '

Utilisation :

$ aws-login-dev 

J'espère que ce guide vous aidera à éviter de longues errances dans la documentation officielle 😉

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster