Обслуживайте частные загруженные пользователем медиафайлы из облачного хранилища Google - PullRequest
0 голосов
/ 28 сентября 2018

Я оцениваю использование GCP для моего нового проекта, однако я все еще пытаюсь выяснить, как реализовать следующую функцию и какие у нее будут затраты.

TL; DR

Какова лучшая стратегия обслуживания загруженных пользователями мультимедиа из GCP при предоставлении пользователям полного контроля на том, кто будет иметь к ним доступ?

Описание функций

Как пользователь, я хочу загружать некоторые виды мультимедиа (например, изображения, видео и т. Д.) Конфиденциально и безопасно.
Мультимедиа должна быть видна мне и определенной подгруппе пользователей, которымЯ предоставил доступ к.
Никто другой не должен иметь доступ к мультимедиа, даже если он получил URL.

Мультимедийный контент будет отображаться на веб-сайте.

Дилемма

Я хотел бы использовать облачное хранилище для хранения всех носителей, однако я изо всех сил пытаюсь найти подходящее решение для части авторизации.

Насколько я могу судить,функции, связанные с «контролем доступа»На уровне проекта и организации.

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

ДорогоРешение?

Одно решение, которое пришло мне в голову, состоит в том, что я мог бы обслуживать его через экземпляр GCE, поместив туда приложение, которое проверяет пользователя, возможно, через JWT, и затем направить его обратно во время использования соответствующегозаголовки кеша.

Это должно удовлетворить все требования, но я боюсь, что расходы на выход будут стремительно расти: (


Спасибо всем, кто поможет!

1 Ответ

0 голосов
/ 28 сентября 2018

Подписанные URL-адреса - это решение, которое вам нужно.

Создайте учетную запись службы, которая представляет ваше приложение.Когда пользователь вашего приложения хочет загрузить объект, продайте ему подписанный URL-адрес для выполнения загрузки.Новый объект будет доступен для чтения только вашей учетной записи службы (и другим участникам вашего проекта).

Когда пользователь хочет просмотреть объект, выполните любые проверки, которые вам нравятся, и продайте им подписанный URL-адрес для чтения.объект.Установите короткое время истечения, если вы беспокоитесь о том, что URL-адреса являются общими.

Я бы не советовал подход, основанный на GCE, если вы не получите от него каких-либо дополнительных преимуществ.Я не вижу, как это добавляет дополнительную безопасность для обслуживания данных напрямую, а не через подписанный URL.

...