2016-03-05 7 views
5

Ich versuche, alle Dateien in meinem S3-Bucket aufzulisten. Aber immer den Fehler bekommen Zugriff verweigert. Ich glaube, ich habe die notwendigen Berechtigungen in meinem IAM Benutzer:Kann Dateien hochladen, aber S3-Bucket-Objekte nicht auflisten. Zugriff verweigert Fehler

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "SID", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:AbortMultipartUpload", 
       "s3:DeleteObject", 
       "s3:DeleteObjectVersion", 
       "s3:GetBucketAcl", 
       "s3:GetBucketCORS", 
       "s3:GetBucketLocation", 
       "s3:GetBucketLogging", 
       "s3:GetBucketNotification", 
       "s3:GetBucketPolicy", 
       "s3:GetBucketRequestPayment", 
       "s3:GetBucketTagging", 
       "s3:GetBucketVersioning", 
       "s3:GetBucketWebsite", 
       "s3:GetLifecycleConfiguration", 
       "s3:GetObject", 
       "s3:GetObjectAcl", 
       "s3:GetObjectTorrent", 
       "s3:GetObjectVersion", 
       "s3:GetObjectVersionAcl", 
       "s3:GetObjectVersionTorrent", 
       "s3:ListAllMyBuckets", 
       "s3:ListBucket", 
       "s3:ListBucketMultipartUploads", 
       "s3:ListBucketVersions", 
       "s3:ListMultipartUploadParts", 
       "s3:PutBucketAcl", 
       "s3:PutBucketCORS", 
       "s3:PutBucketLogging", 
       "s3:PutBucketNotification", 
       "s3:PutBucketPolicy", 
       "s3:PutBucketRequestPayment", 
       "s3:PutBucketTagging", 
       "s3:PutBucketVersioning", 
       "s3:PutBucketWebsite", 
       "s3:PutLifecycleConfiguration", 
       "s3:PutObject", 
       "s3:PutObjectAcl", 
       "s3:PutObjectVersionAcl", 
       "s3:RestoreObject" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::bucket/*" 
      ] 
     } 
    ] 
} 

Ist ich vollen Zugriff auf S3 gewähren, (AmazonS3FullAccess Politik), kann ich die Objekte aufzulisten. Was könnte das Problem sein? Ich glaube, ich habe nur Berechtigungen zum Löschen und Erstellen von Buckets in der benutzerdefinierten Richtlinie entfernt.

Als ich hinzufügen vollen Zugriff auf die gleiche Politik:

 "Action": [ 
      "s3:*" 
     ], 

ich noch nicht Objekte auflisten kann. Aber mit den aktuellen Berechtigungen kann ich Objekte hochladen und löschen.

Antwort

5

Nur die Antwort gefunden! Die in der Richtlinie zulässigen Aktionen sind korrekt. Das Problem ist mit der Resource. Ich benutzte das:

"Resource": [ 
    "arn:aws:s3:::bucket/*" 
] 

Aber es sieht aus wie es keine Erlaubnis für die Wurzel des Eimers gibt. Kein vollständiger Zugriff. Also, damit es funktioniert, müssen wir / wie folgt entfernen:

"Resource": [ 
    "arn:aws:s3:::bucket*" 
] 

Jetzt ist es wie ein Zauber funktioniert.

+2

Ja, die Auflistung des Bucket-Inhalts erfordert eine Berechtigung für den Bucket. Dasselbe gilt für das Hochladen, daher ist es seltsam, dass du es hochladen kannst. BTW, du brauchst das '*' nach dem Bucket-Namen nicht. –

+0

@JohnRotenstein Ah danke für die Erklärung! Ich werde versuchen, ohne das "*" :-) – THpubs

+0

Beachten Sie, dass "arn: aws: s3 ::: bucket *" alle Buckets, die mit Bucket (done bucketABC) beginnen, übereinstimmen wird. – LukaszQr

0

Ich hatte das gleiche Problem. Ich benutzte zwei Maschinen, eine hatte ein Profil erstellt und ich konnte s3 Bucket auflisten, aber auf der zweiten Maschine, wo mein Profil nicht erstellt wurde und ich Set-AWSCredential Befehl war ich nicht in der Lage, s3 Eimer zu listen. Moment habe ich ein Profil erstellt, das ich auf s3 ls zugreifen konnte.

Verwandte Themen