CloudC
@CloudC
Меня не существует.

Как организовать и реализовать ограниченный доступ к файлам s3?

Есть приложение состоящее из сервисов:
  • S3 хранилище с изображениями и видео
  • backend реализующий пользователей (авторизация, роли и т.п.)
  • ...


Требования:
  1. open source решение
  2. конечный пользователь не должен видеть оригинальную ссылку на хранилище
  3. ссылка должна быть одноразовая
  4. некоторые файлы могут быть видны только некоторым ролям пользователей


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

UPD:
В ожидании ответа, нашел что-то похожее на то, что нужно https://www.nginx.com/blog/securing-urls-secure-li...
  • Вопрос задан
  • 373 просмотра
Решения вопроса 1
CloudC
@CloudC Автор вопроса
Меня не существует.
Оказывается мне был нужен модуль secure link в nginx. В оф блоге есть статья с конкретными примера и, пример для генерации ссылки на node.js.
https://www.nginx.com/blog/securing-urls-secure-li...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
2ord
@2ord
1. open source решение

Ну так напиши backend, реализуй доступ к S3 и открой код. В чем проблема?

Генерация ссылки с доступом: S3 presigned URL
Права доступа управляются самим приложением. В интернете есть куча статей как это делать.
Для генерации одноразовой ссылки
Хранилище может быть видно всем, а доступ к файлам - только для кого сгенерирована ссылка.
Допустим, нужно раздать 1 файл 10 людям. У 10 человек будет 10 разных ссылок, ссылающихся на один и тот же файл в хранилище S3.

Если не хотите дорогой AWS S3, то возьмите совместимое решение MinIO, которое можно установить на своих мощностях и управлять самому.
Ответ написан
open source решение
Это может быть написанная тобой Лямбда.

конечный пользователь не должен видеть оригинальную ссылку на хранилище
CloudFront обязателен, тем более тебе много и большой статики отдавать. Настраивается и женится с бакетом в касание.

ссылка должна быть одноразовая
Это может быть написанная тобой Лямбда плюс сервис Edge.

некоторые файлы могут быть видны только некоторым ролям пользователей
S3 поддерживает ролевую (если можно так сказать) модель доступа к данным, только тут ты уморишься всё это разруливать даже с Лямдбой на пару.

Если всё обобщить и расширить на грядущие возможные хотелки, то вырисовывается небольшой проект на wordpress. Там и авторизация, и аутентификация, и ещё что до кучи вылезет. WP искаробки работает с S3 и CloudFront. Думаю, плагинов для генерации одноразовых ссылок для быть не в единичном экземпляре.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы