授予S3存储桶子集的LIST权限

时间:2013-03-08 00:24:23

标签: security rest amazon-web-services amazon-s3

我在S3中有一个包含多个用户文件的存储桶,如下所示:

mybucket
  /user1/file1.jpg
  /user1/file2.jpg
  /user2/doc1.jpg
  /user2/doc2.jpg

我正在使用S3 REST API授予用户在S3存储桶中对其子文件夹进行POST的权限。发布的路径(例如,“user1 /”)包含在签名中,因此用户无法POST到其他用户的子文件夹。

我想使用S3 REST API授予用户权限,以便在其子文件夹中获取文件内容。但是,根据这里的文档:

http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html

URL可以过滤桶的内容,如下所示:

GET /?prefix=user1 HTTP/1.1

但要签名的字符串没有前缀:

GET\n
\n
\n
Tue, 27 Mar 2007 19:42:41 +0000\n
/bucket/

这意味着user1可以修改URL并查看其他user2的子目录内容(!?!?)。

有没有办法限制列出的文件内容,还是我必须为每个用户创建一个单独的存储桶?

由于

1 个答案:

答案 0 :(得分:0)

您可以使用不同IAM用户的凭据对GET URL进行签名,每个用户只拥有您希望他们看到的路径的权限。