Wie kann ich eine MFA-Authentifizierung für IAM-Benutzer verlangen, die mit der AWS CLI arbeiten?

Lesedauer: 2 Minute
0

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). Wie kann ich MFA mit der AWS-CLI verwenden?

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 AWS-CLI-Befehlen Fehler erhalten,stellen Sie sicher, dass Sie die neueste Version der AWS-CLI verwenden.

Der Schlüssel 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

AssumeRole

Aktivieren und Verwalten von virtuellen MFA-Geräten (AWS CLI oder AWS API)

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren