Wie kann ich eine MFA-Authentifizierung für IAM-Benutzer verlangen, die mit der AWS CLI arbeiten?
Ich habe eine Bedingungsrichtlinie für die Multi-Faktor-Authentifizierung (MFA) erstellt, um den Zugriff auf AWS-Services für AWS Identity and Access Management (IAM)-Benutzer zu beschränken. Die Richtlinie funktioniert mit der AWS-Managementkonsole, aber nicht mit der AWS-Befehlszeilenschnittstelle (AWS CLI).
Kurzbeschreibung
Die folgende Beispiel-IAM-Richtlinie verlangt von IAM-Benutzern die Verwendung von MFA für den Zugriff auf bestimmte AWS-Services:
{ "Sid": "BlockMostAccessUnlessSignedInWithMFA", "Effect": "Deny", "NotAction": [ "iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice", "iam:ListVirtualMFADevices", "iam:EnableMFADevice", "iam:ResyncMFADevice", "iam:ListAccountAliases", "iam:ListUsers", "iam:ListSSHPublicKeys", "iam:ListAccessKeys", "iam:ListServiceSpecificCredentials", "iam:ListMFADevices", "iam:GetAccountSummary", "sts:GetSessionToken" ], "Resource": "*", "Condition": { "Bool": { "aws:MultiFactorAuthPresent": "false", "aws:ViaAWSService": "false" } } }
IAM-Benutzer mit der AWS Management Console werden zur Eingabe von MFA-Authentifizierungsdaten aufgefordert und können dann auf AWS-Services zugreifen. IAM-Benutzer mit der AWS CLI werden jedoch nicht zur Eingabe von MFA-Authentifizierungsdaten aufgefordert und können auf AWS-Services zugreifen.
Behebung
**Hinweis:**Wenn Sie beim Ausführen von Befehlen in AWS CLI Fehlermeldungen erhalten, finden Sie weitere Informationen unter Beheben von AWS CLI-Fehlern. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.
Der Schlüssel aws:MultiFactorAuthPresent existiert nicht in Anfragen, die mit Langzeit-Anmeldeinformationen gestellt werden. Mit demBooleschen Bedingungsoperator stimmen die Werte nicht überein, wenn der Schlüssel in der Richtlinie nicht vorhanden ist. Der Schlüssel MultiFactorAuthPresent verweigert nicht den Zugriff auf Anfragen, die mit Langzeit-Anmeldeinformationen gestellt werden.
IAM-Benutzer, die mit der AWS Management Console arbeiten, generieren temporäre Anmeldeinformationen und erlauben den Zugriff nur, wenn MFA verwendet wird.
Mit der booleschen Bedingung können Sie den Zugriff auf einen Schlüsselwert beschränken, der auf „Richtig“ oder „Falsch“ gesetzt ist. Sie können den BedingungsoperatorIfExists hinzufügen, um zu prüfen, ob der Schlüssel MultiFactorAuthPresent in der Anfrage vorhanden ist. Wenn der Schlüssel MultiFactorAuthPresent nicht vorhanden ist, wertet IfExists das Bedingungselement als „Richtig“ aus, ähnlich wie nachfolgend beschrieben:
"Effect" : "Deny", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false", "aws:ViaAWSService":"false"} }
Hinweis: IAM-Benutzern, die mit langfristigen Anmeldeinformationen die AWS CLI verwenden, wird der Zugriff verweigert und sie müssen MFA zur Authentifizierung verwenden. Stellen Sie daher sicher, dass Sie ein MFA-Token zur Authentifizierung Ihrer CLI-Sitzung verwenden.
Weitere Informationen
Verwendung der Multi-Faktor-Authentifizierung
Aktivieren und Verwalten von virtuellen MFA-Geräten (AWS CLI oder AWS API)
Ähnliche Videos
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Monaten
- AWS OFFICIALAktualisiert vor 3 Jahren