2012-09-06 51 views
1

以下AWS IAM示例,我有如下conf。 但是,當我使用附帶此IAM策略的用戶憑據時,會導致「訪問被拒絕」。瀏覽/下載S3與BOTO和IAM

刪除Stringlike條件工作正常。

{ 
    "Statement": [ 
    { 
    "Action": [ 
    "s3:ListBucket" 
    ], 
    "Effect": "Allow", 
    "Resource": [ 
    "arn:aws:s3:::BUCKET" 
    ], 
    "Condition": { 
    "StringLike": { 
     "s3:prefix": "STRING/*" 
    } 
    } 
} 
]} 


conn = S3Connection(key, secret); 
buck = conn.get_bucket(BUCKET); 
for key in buck.list(prefix = STRING): 
    print key.name 

此外,爲了得到一斗 「子文件夾」 的對象,

... 「行動」: 「S3:GetObject的」 ...... 「資源」:「阿爾恩:aws:s3 ::: BUCKET/STRING/*「 ...

只有這個受限制的getObject權限是不夠的(再次拒絕),而如果我將ListBucket策略添加到整個存儲區,則它工作正常。當您需要在目錄上設置READ(列表)位以訪問(讀取)包含在相同目錄中的777文件時,AWS是否像* nix一樣工作?

你能幫忙嗎?我不確定我對IAM政策的理解。 感謝

回答

2

固定取出get_bucket(),這可能需要更多的權限(ListAllMyBuckets?)

conn = S3Connection(key, secret); 
mBucket = Bucket(conn, bucket); 
for key in mBucket.list(prefix = prefix): 
    print key.name 
return