Amazon S3 обеспечивает контроль доступа - PullRequest
2 голосов
/ 11 мая 2010

У меня есть несколько файлов PDF, хранящихся в Amazon S3. Каждый файл связан с пользователем, и только владелец файла может получить к нему доступ. Я применил это на моей странице загрузки. Но фактическая ссылка PDF указывает на URL-адрес Amazon S3, который доступен каждому.

Как применить правила контроля доступа для этого URL-адреса? (Не делая мой сервер прокси-сервером для всех ссылок на скачивание PDF)

Ответы [ 2 ]

8 голосов
/ 11 мая 2010

Я бы предложил использовать аутентифицированные REST URL-адреса Amazon S3 с датой окончания срока действия. Они допускают временный, истекающий доступ к непубличному объекту S3.

Тем не менее, если они собираются поделиться URL-адресом, что мешает им предоставить общий доступ к файлу?

6 голосов
/ 11 мая 2010

Каждый файл в вашей учетной записи S3 может иметь специальные права доступа (ACL). Вы должны установить все свои PDF-списки ACL на private. Тогда никто не сможет получить к ним доступ.

S3 имеет API, который позволяет вам «временно» предоставлять доступ для чтения. Например, Библиотека Amazon S3 PHP имеет функцию getAuthenticatedURL (string $bucket, string $uri, integer $lifetime, [boolean $hostBucket = false], [boolean $https = false]).

Это позволит вам разрешить доступ к PDF в течение определенного времени (например, 5 минут) - этого более чем достаточно, если вы немедленно перенаправите пользователя на S3.

...