我在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的子目录内容(!?!?)。
有没有办法限制列出的文件内容,还是我必须为每个用户创建一个单独的存储桶?
由于
答案 0 :(得分:0)
您可以使用不同IAM用户的凭据对GET URL进行签名,每个用户只拥有您希望他们看到的路径的权限。