Amazon EC2: Erfordert MFA (GetSessionToken) für bestimmte EC2-Operationen - AWS Identitäts- und Zugriffsverwaltung

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon EC2: Erfordert MFA (GetSessionToken) für bestimmte EC2-Operationen

Dieses Beispiel zeigt, wie Sie eine identitätsbasierte Richtlinie erstellen könnten, die vollen Zugriff auf alle AWS API-Operationen in Amazon EC2 ermöglicht. Dabei wird jedoch explizit der Zugriff auf die API-Operationen StopInstances und TerminateInstances verweigert, wenn der Benutzer nicht über die Multi-Factor Authentication (MFA) authentifiziert wurde. Um dies programmgesteuert durchzuführen, muss der Benutzer optionale SerialNumber- und TokenCode-Werte beim Aufruf der GetSessionToken-Operation einschließen. Diese Operation gibt temporäre Anmeldeinformationen zurück, die per MFA authentifiziert wurden. Weitere Informationen GetSessionToken dazu finden Sie unter. GetSessionToken - vorläufige Anmeldedaten für Benutzer in nicht vertrauenswürdigen Umgebungen

Was macht diese Richtlinie?

  • Durch die AllowAllActionsForEC2-Anweisung werden alle Amazon EC2-Aktionen gewährt.

  • Die DenyStopAndTerminateWhenMFAIsNotPresent-Anweisung verweigert die Aktionen TerminateInstances und StopInstances, wenn der MFA-Kontext fehlt. Das bedeutet, dass die Aktionen verweigert werden, wenn der MFA-Kontext fehlt (also keine MFA stattgefunden hat). Eine Verweigerung überschreibt mögliche Berechtigungen.

Anmerkung

Für die Bedingungsprüfung für MultiFactorAuthPresent in der Deny-Anwendung sollte nicht {"Bool":{"aws:MultiFactorAuthPresent":false}} verwendet werden, da der Schlüssel nicht vorhanden ist und auch nicht ausgewertet werden kann, wenn keine MFA verwendet wird. Verwenden Sie stattdessen die Prüfung BoolIfExists, um zu sehen, ob der Schlüssel vorhanden ist, bevor Sie den Wert prüfen. Weitere Informationen finden Sie unter ... IfExists Bedingungsoperatoren.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllActionsForEC2", "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Sid": "DenyStopAndTerminateWhenMFAIsNotPresent", "Effect": "Deny", "Action": [ "ec2:StopInstances", "ec2:TerminateInstances" ], "Resource": "*", "Condition": { "BoolIfExists": {"aws:MultiFactorAuthPresent": false} } } ] }