3

Я храню некоторые файлы для веб-сайта на S3. В настоящее время, когда пользователю нужен файл, я создаю подписанный url (аутентификация строки запроса), который истекает и отправляет это в свой браузер. Однако они могут поделиться этим URL-адресом с другими людьми до истечения срока действия.Есть ли способ обслуживать файлы s3 непосредственно пользователю, с URL-адресом, который нельзя использовать?

Что я хочу - это какая-то аутентификация, которая гарантирует, что URL-адрес будет работать только от браузера, прошедшего проверку подлинности.

Я реализовал способ сделать это, используя мой сервер в качестве ретранслятора между амазоном и пользователем, но предпочел бы указать пользователям прямо на амазонку.

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

+0

Я не уверен, как работает s3, но я думаю, что вы можете создать URL-адрес для билета, отправить номер билета клиенту, сохранить ключ в браузере клиента и заставить его вызывать по запросу – memosdp

+0

Не нашел что-нибудь на google по этим строкам ... ссылки? –

ответ

4

Это невозможно с S3, но CloudFront предоставляет эту функцию. Взгляните на эту главу в документации: Using a Signed URL to Serve Private Content.

+1

CloudFront, похоже, больше относится к службе типа CDN. Это не совсем то, что нам нужно, поскольку мы не хотим, чтобы наш контент распространялся на пограничные серверы. Также я вижу, что он может подписать URL-адреса с IP-адресом, что приятно, но все же не очень безопасно. Я думаю, что вы правы, заявляя, что это не может быть достигнуто только s3. –

+1

Тогда единственным другим решением, которое будет работать, является маршрутизация данных trafic через экземпляр EC2, который обрабатывает аспекты безопасности, о которых вы упомянули ... Но, честно говоря, я считаю, что CloudFront + пользовательский политический оператор является самым простым и наиболее экономичным способом выполнить свой план. – dom

+0

Большое спасибо за совет. Я не уверен, что понимаю основы ... Мы предоставляем облачный доступ к ведру, а затем подписываем все URL-адреса облачных ограничений, ограничивающие ip? Или есть более надежная защита от облачного? Можете ли вы связать меня с чем-либо о настройке в том виде, который вы предлагаете? Спасибо, T –

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