2013-10-22 316 views
0

我想要做的是列出存储桶的所有内容,除了特定文件夹(存档)的内容。问题是当我“取消”存储桶时,我也从“存档”文件夹中获取文件。这是我当前的设置:AWS S3存储桶策略

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Action": [ 
     "s3:ListBucket" 
     ], 
     "Sid": "Stmt1382452205000", 
     "Resource": [ 
     "arn:aws:s3:::mybucket" 
     ], 
     "Condition":{ 
      "StringNotLike":{"s3:prefix":["archive/"]} 
     }, 
     "Effect": "Allow" 
    }, 
    { 
     "Sid": "ExplictDenyAccessToArchive", 
     "Action": ["s3:*"], 
     "Effect": "Deny", 
     "Resource":["arn:aws:s3:::mybucket/archive/*"] 
    }, 
    { 
     "Sid": "DenyListBucketOnArchive", 
     "Action": ["s3:ListBucket"], 
     "Effect": "Deny", 
     "Resource": ["arn:aws:s3:::*"], 
     "Condition":{ 
      "StringLike":{"s3:prefix":["archive/"]} 
     } 
    } 
    ] 
} 
+0

这是一个IAM用户策略或一组策略或水桶政策?您是否试图限制自己访问您拥有的部分存储空间? –

+0

这是一项组策略。我想排除列出子文件夹的一组用户 – Vame

回答

2

IAM策略中的ListBucket操作适用于存储桶级别。您无法将其授予存储分区的子集。

这听起来像你的目标是从文件列表中排除文件,而不是限制对用户的访问。不幸的是,S3 api不允许你指定要排除的前缀。但是,您可以使用API​​的定界符选项来获取所有顶级路径的顶级列表,然后使用前缀和标记参数跟踪调用,以仅列出您感兴趣的路径。

更多细节在: http://docs.aws.amazon.com/AmazonS3/latest/API/SOAPListBucket.html

+0

是的,这是我迄今为止所做的,我认为如果我消除了某些列表请求会很好。 – Vame

相关问题