Warum erhalte ich die Fehlermeldung „Zugriff verweigert“ 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 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:

  1. Amazon S3 listet die Quelle und das Ziel auf, um zu überprüfen, ob das Objekt existiert.

  2. 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

Bucket-Richtlinien und Benutzerrichtlinien

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren