0

次のように、S3 に多数のユーザーのファイルを含むバケットがあります。

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

S3 REST API を使用して、S3 バケット内のサブフォルダーに POST する権限をユーザーに付与しています。投稿するパス (「user1/」など) が署名に含まれているため、ユーザーは別のユーザーのサブフォルダーに投稿できません。

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 のサブディレクトリの内容 (!?!?) を見ることができることを意味します。

リストされるファイルの内容を制限する方法はありますか? または、ユーザーごとに個別のバケットを作成する必要がありますか?

ありがとう

4

1 に答える 1

0

異なる IAM ユーザーの資格情報を使用して GET URL に署名し、各ユーザーに表示したいパスのみに対する権限を付与できます。

于 2013-03-08T02:38:12.113 に答える