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

Lesedauer: 3 Minute
0

Ich möchte von anderen Benutzern verlangen, dass sie ein Multi-Faktor-Authentifizierungsgerät (MFA) verwenden, um Zugriff auf meine Amazon Simple Storage Service (Amazon S3)-Buckets zu erhalten. Wie kann ich das machen?

Behebung

Fügen Sie Ihrer Bucket-Richtlinie MFA-bezogene Bedingungen hinzu, nach denen sich Benutzer anderer AWS-Konten mit einem MFA-Gerät authentifizieren müssen.

Bevor Sie beginnen, müssen die Benutzer anderer AWS-Konten die folgenden Anforderungen erfüllen:

  • Sie müssen über Berechtigungen für den Zugriff auf Amazon S3 verfügen. Benutzer erfüllen diese Anforderung beispielsweise, wenn die Amazons3FullAccess AWS Managed Policy in ihren AWS Identity and Access Management (IAM)-Richtlinien enthalten ist.
  • Sie müssen über eine angehängte IAM-Richtlinie verfügen, die es ihnen ermöglicht, GetSessionToken aufzurufen.
  • Sie müssen über ein MFA-Gerät verfügen, das für die Verwendung mit ihrer IAM-Identität konfiguriert ist.

Erstellen Sie als Nächstes eine Bucket-Richtlinie, die die Bedingungen aws:MultifactorAuthPresent oder aws:MultifactorAuthHage verwendet. Diese Bedingungen bestimmen, ob sich der Benutzer mit einem MFA-Gerät authentifiziert hat.

Angenommen, Sie möchten einem Benutzer die Ausführung bestimmter Aktionen verweigern, es sei denn, er authentifiziert sich mit einem MFA-Gerät. Sie können eineBucket-Richtlinie in zwei Teilen schreiben:

1.Der erste Teil kann diese Aktionen explizit verweigern, wenn sich der Benutzer nicht mit MFA authentifiziert (die Bedingung „aws:MultifactorAuthPresent“: „false“ ist erfüllt), ähnlich wie im Folgenden:

{
    "Version": "2012-10-17",
    "Id": "Policy201612130001aa",
    "Statement": [
        {
            "Sid": "Stmt201612130001ab",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::example.accounta.bucket/*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        },
...

In diesem Beispiel verweigern wir dem Benutzer die Ausführung der Aktionen s3:putObject, s3:putObjectACL und s3:deleteObject.

2.Der zweite Teil der Richtlinie kann diese Aktionen explizit zulassen, wenn sich der Benutzer mit MFA authentifiziert (die Bedingung „aws:MultifactorAuthPresent“: „false“ ist nicht erfüllt):

...
        {
            "Sid": "Stmt201612130001ac",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::example.accounta.bucket",
                "arn:aws:s3:::example.accounta.bucket/*"
            ]
        }
    ]
}

Nachdem Sie Ihrem Bucket eine ähnliche Bucket-Richtlinie hinzugefügt haben, können Benutzer den Befehl get-session-token von AWS Command Line Interface (AWS CLI) ausführen. Der Befehl get-session-token ruft die Anmeldeinformationen ab, die für den Zugriff auf die Ressourcen in Ihrem Bucket erforderlich sind. Für diesen Befehl muss der Benutzer Folgendes angeben:

  • Der vom MFA-Gerät generierte temporäre Code
  • Die Seriennummer des Geräts für ein Hardware-MFA-Gerät oder der Amazon-Ressourcenname (ARN) für ein Software-MFA-Gerät

**Hinweis:**Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS-CLI verwenden.

Als weitere Option zum Abrufen von Anmeldeinformationen können Benutzer die temporären Anmeldeinformationen als Umgebungsvariablen exportieren.


Verwandte Informationen

Beispiele für Bucket-Richtlinien

Konfiguration der AWS-CLI

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren