2016-11-30 5 views
0

Hier ist, was ich getan habe:AWS IAM ermöglicht nicht PutObject

1) Hinzugefügt wurde die folgende Richtlinie auf eine IAM-Benutzer:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:*" 
      ], 
      "Resource": "arn:aws:s3:::bucket-name" 
     } 
    ] } 

2) Ich als dieser Benutzer angemeldet mit den aws-cli

3) Ran den folgenden Befehl ein:

aws s3 sync ./dist s3://bucket-name/ --delete 

ich ein paar diese:

ist ein Fehler aufgetreten (AccessDenied), wenn die PutObject Betrieb Aufruf: Zugriff verweigert

Das Merkwürdige ist, dass das funktioniert gut:

aws s3api list-objects --bucket bucket-name 

was bedeutet, dass meine Politik arbeitet an etwas Niveau ...

Dank im Voraus

Antwort

0

Ok, das habe ich herausgefunden. Die Richtlinie muss lauten:

[ 
    { 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:*" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::bucket-name", 
       "arn:aws:s3:::bucket-name/*" 
      ] 
     } 
    ] 
    } 
] 

beachten Sie den Unterschied in den Ressourcen. Grundsätzlich wird der Bucket selbst als eine andere Ressource betrachtet als die darin enthaltenen Objekte.

+0

Sie können auch die Ressourcen in einer Liste innerhalb derselben Anweisung setzen, so "Ressource": [ "arn: aws: s3 ::: Eimer", "arn: aws: s3 ::: bucket/*"] – NHol

Verwandte Themen