Wie verwende ich die AWS CLI, um den Zugriff auf AWS-Ressourcen mit einem MFA-Token zu authentifizieren?
Ich möchte ein Multi-Faktor-Authentifizierungs (MFA)-Token mit der AWS Command Line Interface (AWS CLI) verwenden, um den Zugriff auf meine AWS-Ressourcen zu authentifizieren.
Kurzbeschreibung
Sie können bis zu acht MFA-Geräte für jeden AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Benutzer aktivieren.
Hinweis: Die MFA-Aktivierung für den Root-Benutzer wirkt sich nur auf die Anmeldeinformationen des Root-Benutzers aus. Jede IAM-Identität in Ihrem AWS-Konto hat ihre eigene MFA-Konfiguration.
Informationen zur MFA-Aktivierung finden Sie unter Sichern der Root-Benutzeranmeldung mit MFA und MFA in IAM.
Lösung
Um die AWS CLI zur Authentifizierung bei AWS-Ressourcen zu verwenden, verwenden Sie die API-Aktion GetSessionToken, um temporäre Anmeldeinformationen abzurufen.
Hinweis: Wenn Sie beim Ausführen von AWS CLI-Befehlen Fehlermeldungen erhalten, finden Sie weitere Informationen unter Problembehandlung bei der AWS CLI. Stellen Sie außerdem sicher, dass Sie die neueste Version der AWS CLI verwenden.
ARN des MFA-Geräts
Gehen Sie wie folgt vor, um den ARN des MFA-Geräts abzurufen:
- Öffnen Sie die IAM-Konsole.
- Wählen Sie im Navigationsbereich Benutzer und dann den IAM-Benutzer aus.
- Wählen Sie auf der Seite Zusammenfassung die Registerkarte Sicherheitsanmeldeinformationen aus.
- Kopieren Sie unter Assigned MFA device (Zugewiesenes MFA-Gerät) den ARN des MFA-Geräts.
Verwendung der AWS CLI, um temporäre Anmeldeinformationen abzurufen
Führen Sie den Befehl get-session-token aus:
aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token
Beispielausgabe:
{ "Credentials": { "SecretAccessKey": "secret-access-key", "SessionToken": "temporary-session-token", "Expiration": "expiration-date-time", "AccessKeyId": "access-key-id" } }
Wichtig: Stellen Sie sicher, dass die Seriennummer, das Token und der ARN des MFA-Geräts korrekt sind. Andernfalls erhalten Sie möglicherweise eine Fehlermeldung, die der folgenden ähnelt:
„An error occurred (AccessDenied) when calling the GetSessionToken operation: MultiFactorAuthentication failed, unable to validate MFA code. Please verify your MFA serial number is valid and associated with this user.“
Um das MFA-Hardwaregerät zu authentifizieren, befindet sich die Seriennummer normalerweise auf der Rückseite des Geräts, und der Wert ähnelt GAHT12345678. Um Ihr virtuelles MFA-Gerät zu authentifizieren, ähnelt der Wert arn:aws:iam::123456789012:mfa/user.
Hinweis: Die AWS CLI unterstützt die MFA-Authentifizierung nur bei einem virtuellen oder Hardware-MFA-Gerät. Die AWS CLI unterstützt keine MFA-Authentifizierung beim FIDO-Sicherheitsschlüssel.
Weitere Informationen finden Sie unter Zuweisen von MFA-Geräten in der AWS CLI oder AWS-API.
Verwendung temporärer Anmeldeinformationen, um ihre Werte in Umgebungsvariablen zu exportieren
Führen Sie die folgenden Befehle für das Betriebssystem (OS) aus:
Linux
export AWS_ACCESS_KEY_ID=example-access-key-as-in-previous-output export AWS_SECRET_ACCESS_KEY=example-secret-access-key-as-in-previous-output export AWS_SESSION_TOKEN=example-session-token-as-in-previous-output
Windows
set AWS_ACCESS_KEY_ID=example-access-key-as-in-previous-output set AWS_SECRET_ACCESS_KEY=example-secret-access-key-as-in-previous-output set AWS_SESSION_TOKEN=example-session-Token-as-in-previous-output
Bevor Sie den Befehl get-session-token erneut ausführen, führen Sie die folgenden Befehle aus, um die Umgebungsvariablen aufzuheben:
Linux
unset AWS_ACCESS_KEY_ID unset AWS_SECRET_ACCESS_KEY unset AWS_SESSION_TOKEN
Windows
set AWS_ACCESS_KEY_ID= set AWS_SECRET_ACCESS_KEY= set AWS_SESSION_TOKEN=
Verwendung temporärer Anmeldeinformationen bei benannten Profilen
Sie können auch benannte Profile verwenden, um die Befehle anzugeben, für die eine MFA-Authentifizierung erforderlich ist. Fügen Sie in der Datei mit den Anmeldeinformationen, die sich im Ordner .aws des Stammverzeichnisses des Benutzers befindet, eine neue Profilkonfiguration hinzu, um MFA-authentifizierte Befehle auszugeben.
Beispiel für eine Profilkonfiguration:
[mfa]aws_access_key_id = example-access-key-as-in-returned-output aws_secret_access_key = example-secret-access-key-as-in-returned-output aws_session_token = example-session-token-as-in-returned-output
Nachdem die Anmeldeinformationen abgelaufen sind, führen Sie den Befehl get-session-token erneut aus, und exportieren Sie dann die zurückgegebenen Werte in die Umgebungsvariablen oder die Profilkonfiguration.
Es hat sich bewährt, im Hintergrund ein Skript oder einen Cron Job auszuführen, der in der Ausgabe des Befehls get-session-token nach dem Ablauf sucht. Wenn das MFA-Token abgelaufen ist, stellen Sie sicher, dass das Skript oder der Cron Job zur erneuten Authentifizierung auffordert.
Wenn Sie benannte Profile zur Authentifizierung verwenden, geben Sie die Option —profile gefolgt vom Profilnamen an, um zu überprüfen, ob die API-Aufrufe MFA zur Authentifizierung verwenden.
Ähnliche Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr