次のように、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 のサブディレクトリの内容 (!?!?) を見ることができることを意味します。
リストされるファイルの内容を制限する方法はありますか? または、ユーザーごとに個別のバケットを作成する必要がありますか?
ありがとう