Warum erhalte ich die Fehlermeldung „Access Denied“ 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 den Fehler „Access Denied“, wenn ich den API-Aufruf ListObjectsV2 tätige.
Kurzbeschreibung
Wenn Sie den Befehl sync ausführen, gibt Amazon S3 den API-Aufruf ListObjectsV2 aus, um zu überprüfen, ob das Objekt im Quell- oder Ziel-Bucket vorhanden ist. Wenn das Objekt in keinem der Buckets existiert, führt Amazon S3 die folgenden API-Aufrufe durch:
- CopyObject-Aufruf für einen Bucket-zu-Bucket-Vorgang
- GetObject für einen Bucket-zu-lokal-Vorgang
- PutObject für einen lokal-zu-Bucket-Vorgang
Behebung
**Anmerkung:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste Version der AWS CLI verwenden.
Konfigurieren der IAM-Richtlinie
Anmerkung: Bei dieser Lösung wird davon ausgegangen, dass die Aktionen GetObject und PutObject bereits dem AWS Identity Access Management (IAM)-Benutzer oder bzw der IAM-Rolle gewährt wurden. Diese Auflösung befasst sich mit dem Beheben des Fehlers „Access Denied“, der durch unsachgemäße ListBucket-Berechtigungen oder die Verwendung einer falschen Sync-Befehlssyntax mit Requester Pays verursacht wurde.
Stellen Sie sicher, dass Sie über die Berechtigung 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-API-Aufrufe ausführen zu können.
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 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 eine der Richtlinien, um die Aktion s3:ListBucket 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.
Die folgende Beispiel-IAM-Richtlinie gewährt die Berechtigung s3:ListBucket:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "Stmt1546506260896", "Action": "s3:ListBucket", "Effect": "Allow", "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET" }] }
Die folgende Beispiel-Bucket-Richtlinie gewährt dem Benutzer arn:aws:iam::123456789012:user/testuser Berechtigungen für s3:ListBucket:
{ "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 Konto gehört und Requester Pays aktiviert ist, überprüfen Sie, ob Ihre Bucket-Richtlinie und Ihre IAM-Richtlinie beide ListObjectsV2-Berechtigungen gewähren. Wenn die ListObjectsV2-Berechtigungen ordnungsgemäß erteilt wurden, überprüfen Sie die sync-Befehlssyntax. Wenn Sie die Option --request-payer requester nicht angeben, wenn Sie den Befehl sync ausführen, erhalten Sie die Fehlermeldung „Access Denied“.
Führen Sie beispielsweise den folgenden sync-Befehl aus, ersetzen Sie aber requester-pays-bucket durch den Namen Ihres Buckets:
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 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 6 Monaten