Управление доступом через aws:Referer
небезопасно. Это можно преодолеть довольно легко. простой веб-поиск предоставит множество инструментов, которые могут выполнить sh this.
Более безопасный метод будет:
- Храните все объекты в вашем Amazon S3 bucket private (не «Make Publi c»)
- Do not используйте политику Bucket
- Пользователи должны пройти аутентификацию в вашем приложении
- Когда пользователь желает получить доступ к одному из видео, или когда ваше приложение создает страницу HTML, которая ссылается на / вставляет видео, приложение должно определить, имеет ли пользователь право на доступ к объекту.
- Если пользователь имеет право доступа к объекту, приложение создает предварительно подписанный URL-адрес Amazon S3 , который обеспечивает ограниченный по времени доступ к частному объекту. .
- Когда браузер пользователя запрашивает получение объекта по предварительно подписанному URL-адресу, Amazon S3 проверит содержимое URL-адреса. Если URL-адрес действителен, а срок не истек, Amazon S3 вернет объект (например, видео). Если время истекло, будет предоставлено содержимое , а не .
Предварительно подписанный URL-адрес может быть создан в несколько строк кода и не требует вызова API. вернуться к Amazon S3.
Преимущество использования предварительно подписанных URL-адресов заключается в том, что ваше приложение определяет, кто имеет право на просмотр объектов . Например, пользователь может выбрать поделиться видео с другим пользователем. Ваше приложение позволит другому пользователю просматривать это видео. Это не потребует каких-либо изменений в IAM или политиках сегмента.
См .: Предварительно подписанные URL-адреса Amazon S3
Кроме того, если вы используете sh - Предоставив доступ к корзине Amazon S3 определенным c пользователям IAM (т. е. пользователям в вашей организации, а не пользователям приложений), лучше предоставить доступ пользователю IAM, а не через корзину Amazon S3. Если пользователей много, вы можете создать IAM Group , которая содержит несколько пользователей IAM, а затем поместить политику в группу IAM. Bucket Policies, как правило, следует использовать для предоставления доступа «каждому», а не указывать c пользователей IAM.
Как правило, рекомендуется избегать использования Deny
policy , поскольку они могут Трудно писать правильно и может непреднамеренно лишить вас доступа к вашему администратору. Лучше ограничить то, что разрешено, чем комбинировать Allow и Deny.