Warum erhalte ich die Fehlermeldung „Access Denied“ für ListObjectsV2, wenn ich den Sync-Befehl in meinem Amazon-S3-Bucket ausführe?

Lesedauer: 3 Minute
0

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

Identitätsbasierte Richtlinien für Amazon S3

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Monaten