2015-06-25 307 views
0

我想給單個S3存儲桶訪問不同的用戶而不列出所有的存儲桶,因此我沒有使用列出我所有的存儲桶策略。該桶裏麪包含的文件夾不同的文件夾,當我試圖通過它說明不了什麼列出文件夾中的內容S3存儲桶訪問

政策我使用s3cmd LS的

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "ListBucket", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "arn:aws:iam::abcd」 
      }, 
      "Action": "s3:ListBucket", 
      "Resource": "arn:aws:s3:::abcd」 
     }, 
     { 
      "Sid": "AddDeleteFiles", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "arn:aws:iam::abcd」 
      }, 
      "Action": [ 
       "s3:DeleteObject", 
       "s3:GetObject", 
       "s3:PutObject" 
      ], 
      "Resource": "arn:aws:s3:::abcd/*」 
     } 
    ] 

} 

輸出[S3:// ABCD/aa] - 加入否

+0

請參閱http://blogs.aws.amazon.com/security/post/Tx1P2T3LFXXCNB5/Writing-IAM-policies-Grant-access-to-user-specific-folders-in-an-Amazon-S3-bucke。 – jarmod

+0

我有超過10個文件夾裏面,每個文件夾都有子文件夾,s3路徑主要是這樣s3://abcd/aa/bb/date/00/fb/xvz.gz文件,並有那麼多.gz文件在fb中,我想我無法訪問它們全部 – user3456

回答

0

您是否使用正確的aws_access_key_id和aws_secret_access_key配置了您的s3cmd?

s3cmd --configure 

基本上使用正確的參數創建〜/ .s3cfg命令。

同樣在委託人上,您需要指定您的賬戶ID。例如:

{ 
    "Version":"2012-10-17", 
    "Statement":[ 
    { 
     "Sid":"AddCannedAcl", 
     "Effect":"Allow", 
     "Principal": {"AWS": ["arn:aws:iam::111122223333:root","arn:aws:iam::444455556666:root"]}, 
     "Action":["s3:PutObject","s3:PutObjectAcl"], 
     "Resource":["arn:aws:s3:::examplebucket/*"], 
     "Condition":{"StringEquals":{"s3:x-amz-acl":["public-read"]}} 
    } 
    ] 
} 

您必須確定自己放入存儲桶策略或IAM策略,因爲它們不可互換。你可以有兩個,但你必須確保每一個是正確的政策類型

希望它有幫助。

+0

雅的細節是正確的,基本上我使用s3cmd ls s3:// abcd/aa它打開爲DIR s3:// abcd/aa/ – user3456

+0

abcd是存儲桶名稱,aa是存儲桶中的文件夾 – user3456

+0

@cvasired委託人和帳戶ID如何?檢查我的編輯 – Rico