Wie fordere ich Benutzer anderer AWS-Konten auf, MFA für den Zugriff auf meine Amazon S3-Buckets zu verwenden?
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
Ähnliche Videos
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Monaten
- AWS OFFICIALAktualisiert vor 3 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Monaten