AWS CLI via MFA

Hierna volgen instructies voor het instellen van AWS MFA en vervolgens het installeren en configureren van AWS CLI.

Helaas kostte deze verplichte procedure mij de helft van mijn werkdag. Zodat andere onzekere AWS-gebruikers 😉, zoals ik, geen kostbare tijd verspillen aan triviale zaken, besloot ik instructies samen te stellen.

Zelfs voor het instellen van een sandbox-account MFA Dit is meestal een verplichte vereiste. Zo is het bij ons.

MFA instellen

  1. Ingesteld compatibele mobiele app
  2. Ga naar AWS-console
  3. Mijn beveiligingsgegevens -> MFA-apparaat toewijzen
    AWS CLI via MFA
  4. Virtueel MFA-apparaat
    AWS CLI via MFA
  5. Volg de instructies op het scherm
    AWS CLI via MFA
    AWS CLI via MFA
  6. Virtueel apparaat is gereed
    AWS CLI via MFA

AWS CLI installeren

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

Een benoemd profiel instellen

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

  1. Mijn beveiligingsgegevens -> Toegangssleutel maken
    AWS CLI via MFA
  2. Kopieer de sleutel naar uw klembord. Je hebt het nodig bij de volgende stap
  3. $ aws configure --profile <your profile name>

AWS CLI via MFA

  1. Kopieer het virtuele apparaat ARN
    AWS CLI via MFA
  2. aws sts get-session-token --profile <имя профиля> --serial-number <ARN виртуального устройства> --token-code <одноразовый пароль>
    Het eenmalige wachtwoord moet worden overgenomen uit de eerder geconfigureerde mobiele applicatie.
  3. De opdracht zal JSON uitvoeren, waarvan de afzonderlijke velden moeten worden vervangen door de overeenkomstige omgevingsvariabelen AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN

Ik besloot om door te automatiseren ~/.bash_profile
Voor het parseren van JSON heeft dit script het volgende nodig 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 <одноразовый пароль>

Ik hoop dat deze instructie je zal helpen langdurige omzwervingen door de officiële documentatie te voorkomen 😉

Bron: www.habr.com

Voeg een reactie