Direkt zum Inhalt

Wie erzwinge ich die MFA-Authentifizierung für IAM-Benutzer, die die AWS-Managementkonsole und das AWS CLI verwenden?

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 dem AWS Command Line Interface (AWS CLI).

Kurzbeschreibung

Die folgende Beispiel-IAM-Richtlinie erzwingt bei 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"
    }
  }
}

In der vorstehenden Richtlinie werden IAM-Benutzer, die die AWS-Managementkonsole verwenden, aufgefordert, MFA-Authentifizierungsdaten einzugeben, um auf AWS-Services zuzugreifen. IAM-Benutzer, die die AWS CLI verwenden, 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.

Da der Schlüssel aws:MultiFactorAuthPresent in Aufforderungen für langfristige Anmeldeinformationen nicht existiert, verweigert der Schlüssel den Zugriff auf die Anfragen nicht. Wenn der Schlüssel in der Richtlinie keinen booleschen Bedingungsoperator hat, stimmen die Werte nicht überein.

IAM-Benutzer, die die AWS-Managementkonsole verwenden, generieren temporäre Anmeldeinformationen und erhalten Zugriff nur, wenn sie MFA verwenden.

Um die MFA-Authentifizierung mit der AWS CLI zu erzwingen, fügen Sie den Bedingungsoperator ifExists hinzu, um zu überprüfen, ob der MultiFactorAuthPresent-Schlüssel in der Anfrage enthalten ist. Mit der booleschen Bedingung können Sie den Zugriff auf einen Schlüsselwert beschränken, der auf Richtig oder Falsch gesetzt ist. Wenn der MultiFactorAuthPresent-Schlüssel nicht in der Anforderung enthalten ist, wertet IfExists das Bedingungselement als wahr aus.

Beispiel für eine IAM-Richtlinie:

{
    "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": {
        "BoolIfExists": {
            "aws:MultiFactorAuthPresent": "false",
            "aws:ViaAWSService": "false"
        }
    }
}

**Hinweis:**IAM-Benutzern, die AWS CLI mit langfristigen Anmeldeinformationen 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.

Ähnliche Informationen

Wie fordere ich Benutzer anderer AWS-Konten auf, MFA für den Zugriff auf meine Amazon S3 Buckets zu verwenden?

Verwendung der Multi-Faktor-Authentifizierung

MFA-Geräte in AWS CLI oder AWS API zuweisen