2013-03-08 3 views
0

У меня есть ведро в S3, который содержит файлы для ряда пользователей, как так:Предоставление разрешений LIST на подмножестве ведро S3

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

Я использую S3 REST API для предоставления пользователю прав пользователей к POST в свою подпапку в ведро S3. Путь к сообщению (например, «user1 /») включен в подпись, поэтому пользователь не может POST в подпапку другого пользователя.

Я хочу использовать API REST S3, чтобы предоставить пользователям права предоставлять содержимое файла в своей подпапке. Однако, в соответствии с документацией здесь:

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/ 

Это означает, что пользователь1 может изменить URL-адрес и посмотреть содержимое другого подкаталога user2 (!?!?).

Есть ли способ ограничить содержимое файла, или мне нужно создать отдельное ведро для каждого пользователя?

Благодаря

ответ

0

Вы можете подписать ГЭТ URL-адресов с учетными данными для различных IAM пользователей, каждый из которых имеет привилегию для всего пути вы хотите их видеть.

Смежные вопросы