2016-03-05 15 views
5

S3バケット内のすべてのファイルを一覧表示しようとしています。しかし、常にアクセス拒否エラーを取得します。ファイルはアップロードできますが、S3バケットオブジェクトはリストできません。アクセス拒否エラーを取得する

{ 
    "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/*" 
      ] 
     } 
    ] 
} 

は、私はS3、(AmazonS3FullAccess政策)へのフルアクセスを許可し、私はオブジェクトを一覧表示することができますです:私は私のIAMユーザーに必要な権限を持っていると思います。何が問題なのでしょうか?私は、カスタムポリシーでバケットを削除して作成する権限しか削除していないと思います。

私は同じポリシーへのフルアクセスを追加:

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

まだ私はオブジェクトを一覧表示することはできませんが。しかし、現在の権限では、オブジェクトをアップロードしたり削除したりすることができます。

答えて

5

ちょうど答えが見つかりました!ポリシーで許可されるアクションは正しいです。問題はResourceです。私はこれを使用していました:

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

しかし、それはバケツのルートに許可を与えていないようです。完全なアクセス権はありません。今、それは魅力のように働いている

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

を:だから、それを動作させるために、我々はこのよう/を削除する必要があります。

+2

はい、バケットのコンテンツを一覧表示するには、バケット自体の許可が必要です。アップロードの場合と同じですので、アップロードできるのは奇妙です。ところで、バケット名の後に '*'は必要ありません。 –

+0

@JohnRotensteinああ説明に感謝! – THpubs

+0

「arn:aws:s3 ::: bucket *」は、バケット(つまりbucketABC)で始まるすべてのバケットに一致することに注意してください。 – LukaszQr

0

私は同じ問題を抱えていました。私は2台のマシンを使用していましたが、1台はawsプロファイルを作成していましたが、s3バケットをリストできましたが、2台目のマシンでプロファイルが作成されず、Set-AWSCredentialコマンドを使用していました。瞬間私はプロフィールを作成しましたが、私はs3 lsにアクセスできました。

関連する問題