Warum erhalte ich die Fehlermeldung „Zugriff verweigert“ für ListObjectsV2, wenn ich den Sync-Befehl in meinem Amazon S3-Bucket ausführe?
Ich führe den Befehl „aws s3 sync“ aus, um Objekte in oder aus einem Amazon Simple Storage Service (Amazon S3)-Bucket zu kopieren. Ich erhalte jedoch die Fehlermeldung „Zugriff verweigert“, wenn ich den ListObjectsV2-Vorgang aufrufe. Wie löse ich das?
Kurzbeschreibung
Wenn Sie den Befehl aws s3 sync ausführen, gibt Amazon S3 die folgenden API-Aufrufe aus: ListObjectsV2, CopyObject, GetObject und PutObject.
Genauer gesagt passiert Folgendes:
-
Amazon S3 listet die Quelle und das Ziel auf, um zu überprüfen, ob das Objekt existiert.
-
Amazon S3 führt dann die folgenden API-Aufrufe aus:
CopyObject-Aufruf für einen Bucket-zu-Bucket-Vorgang
getObject für einen Bucket für einen lokalen Vorgang
putObject für einen lokalen zu-Bucket-Vorgang
Hinweis: Bei dieser Lösung wird davon ausgegangen, dass die Aufrufe getObject und putObject bereits dem Benutzer oder der Rolle von AWS Identity Access Management (IAM) gewährt wurden. Diese Auflösung befasst sich mit dem Beheben des Fehlers „Zugriff verweigert“, der durch unsachgemäße ListBucket-Berechtigungen oder die Verwendung einer falschen Sync-Befehlssyntax mit Requester Pays verursacht wurde.
Auflösung
Konfigurieren der IAM-Richtlinie
Stellen Sie sicher, dass Sie über die Berechtigungen für s3:ListBucket für die Amazon S3-Buckets verfügen, in die oder aus denen Sie Objekte kopieren. Sie müssen über diese Berechtigung verfügen, um ListObjectsV2-Aktionen ausführen zu können.
Hinweis: s3:ListBucket ist der Name der Berechtigung, die es einem Benutzer ermöglicht, die Objekte in einem Bucket aufzulisten. ListObjectsV2 ist der Name des API-Aufrufs, der die Objekte in einem Bucket auflistet.
Wenn Ihr IAM-Benutzer oder Ihre IAM-Rolle zu einem anderen AWS-Konto gehört, überprüfen Sie, ob Ihre IAM- und Bucket-Richtlinien die Aktion s3:ListBucket zulassen. Sie müssen sowohl in Ihrer IAM-Richtlinie als auch in Ihrer Bucket-Richtlinie über die Berechtigung für s3:ListBucket verfügen.
Wenn Ihr Benutzer oder Ihre Rolle zum Konto des Bucket-Besitzers gehört, benötigen Sie nicht sowohl die IAM- als auch die Bucket-Richtlinien, um s3:ListBucket zuzulassen. Sie benötigen nur einen von ihnen, um die Aktion zuzulassen.
Wichtig: Wenn entweder die IAM-Richtlinie oder die Bucket-Richtlinie die Aktion s3:ListBucket bereits zulassen, überprüfen Sie die andere Richtlinie auf Anweisungen, die die Aktion ausdrücklich ablehnen. Eine explizite Deny-Anweisung hat Vorrang vor einer Allow-Anweisung.
Im Folgenden finden Sie ein Beispiel für eine IAM-Richtlinie, die Zugriff auf s3:ListBucket gewährt:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "Stmt1546506260896", "Action": "s3:ListBucket", "Effect": "Allow", "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET" }] }
Im Folgenden finden Sie ein Beispiel für eine Bucket-Richtlinie, die dem Benutzer arn:aws:iam::123456789012:user/testuser Zugriff auf s3:ListBucket gewährt:
{ "Id": "Policy1546414473940", "Version": "2012-10-17", "Statement": [{ "Sid": "Stmt1546414471931", "Action": "s3:ListBucket", "Effect": "Allow", "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/testuser" ] } }] }
Verwenden des Sync-Befehls mit Requester Pays
Wenn Ihr Bucket zu einem anderen AWS-Konto gehört und Requester Pays aktiviert ist, überprüfen Sie, ob Ihre Bucket-Richtlinie und Ihre IAM-Berechtigungen beide ListObjectsV2-Berechtigungen gewähren. Wenn die ListObjectsV2-Berechtigungen ordnungsgemäß erteilt wurden, überprüfen Sie die Sync-Befehlssyntax. Wenn Sie den Befehl sync verwenden, müssen Sie die Option**\ --request-payer requester** angeben. Andernfalls erhalten Sie die Fehlermeldung „Zugriff verweigert“.
Beispiel:
aws s3 sync ./ s3://requester-pays-bucket/ --request-payer requester
Ähnliche Informationen
Bucket-Besitzer gewährt kontoübergreifende Bucket-Berechtigungen
Ähnliche Videos
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 7 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr