AWS CLI über MFA

Hier folgt eine Anleitung zur Einrichtung von AWS MFA sowie zur anschließenden Installation und Konfiguration der AWS CLI.

Leider hat mich dieses zwingende Verfahren einen halben Arbeitstag gekostet. Um anderen unsicheren AWS-Nutzern 😉 wie mir selbst, keine wertvolle Zeit mit Banalitäten zu stehlen, habe ich beschlossen, eine Anleitung zu erstellen.

Selbst für ein Sandbox-Konto ist die Einrichtung MFA in der Regel eine Pflichtanforderung. Bei uns ist das so.

Einrichtung von MFA

  1. Installieren Sie kompatible mobile Anwendung
  2. Gehen Sie zu AWS-Konsole
  3. Meine Sicherheitsanmeldeinformationen -> MFA-Gerät zuweisen
    AWS CLI über MFA
  4. Virtuelles MFA-Gerät
    AWS CLI über MFA
  5. Befolgen Sie die Anweisungen auf dem Bildschirm
    AWS CLI über MFA
    AWS CLI über MFA
  6. Das virtuelle Gerät ist bereit
    AWS CLI über MFA

Installation der AWS CLI

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

Einrichtung eines benannten Profils

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

  1. Meine Sicherheitsanmeldeinformationen -> Zugangsschlüssel erstellen
    AWS CLI über MFA
  2. Kopieren Sie den Schlüssel in die Zwischenablage. Er wird im nächsten Schritt benötigt.
  3. $ aws configure --profile

AWS CLI über MFA

  1. Kopieren Sie die ARN des virtuellen Geräts
    AWS CLI über MFA
  2. aws sts get-session-token --profile --serial-number --token-code
    Das Einmalpasswort muss aus der zuvor konfigurierten mobilen Anwendung entnommen werden.
  3. Der Befehl gibt JSON zurück, deren separate Felder in die entsprechenden Umgebungsvariablen AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN eingefügt werden müssen.

Ich habe beschlossen, das über ~/.bash_profile
Für die Analyse von JSON benötigt dieses Skript 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 '

Wenn wir einen Kommentar zu einem Commit schreiben (unabhängig davon, welches Tool wir dabei für die Arbeit mit Git verwenden), können wir den Namen der Aufgaben textuell (ohne Anführungszeichen oder spezielle Symbole wie @) hinzufügen.

$ aws-login-dev

Ich hoffe, diese Anleitung hilft Ihnen, umständliches Durchsuchen der offiziellen Dokumentation zu vermeiden 😉

Quelle: habr.com

60GB SSD 8Gb DDR4