Ограничить доступ к облачным хранилищам Google по доменному имени

Ограничить доступ к облачным хранилищам Google по доменному имени

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

Это, очевидно, большой риск для безопасности, потому что даже если я назову файлы с uid в пути к файлу (например... "attachments/user_id/some_other_id/individual_file_uid/NameOfFile"), злоумышленник может просто перейти к нему, https://www.googleapis.com/storage/v1/b/my_bucket/o/attachmentsи он выведет список всех каталогов и файлов, которые у меня есть в этом общедоступном контейнере. Но чтобы включить эти файлы в мое веб-приложение с помощью <img/>тегов, я не знаю другого способа ограничить доступ к этим файлам, не мешая img src.

Единственное, что я смог придумать, это ограничить GETting этих файлов по отдельному доменному имени. То есть... если мои веб-приложения размещены на application.example.com, я бы ограничил файлы, чтобы они были доступны только по application.example.com. Я нашел кое-что здесь:https://cloud.google.com/resource-manager/docs/organization-policy/restricting-domainsно я думаю, что речь идет не об ограничении доступа по доменному имени, а по домену организации.

Так что, полагаю, мой вопрос на самом деле состоит из двух частей:

  1. Я неправильно понимаю? Есть ли лучший способ безопасно хранить эти изображения, при этом оставаясь доступными для моего веб-приложения?
  2. Как ограничить доступ к этим файлам по доменному имени?

решение1

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

Да, вы неверно смотрите на это в отношении предоставленной вами ссылки на документ.

Вы не можете ограничить или предоставить доступ к Cloud Storage по имени домена DNS. Вы можете сделать контейнер Cloud Storage общедоступным, использовать Signed-URL для разрешения доступа, использовать API Cloud SDK или использовать Identity Based Access Control.

Подписанные URL-адреса

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

Вы не можете. Эта функция не является частью Cloud Storage. Смотрите мои предыдущие комментарии для получения дополнительной информации.

Единственный вариант (с точки зрения безопасности) — использовать подписанные URL-адреса.

Связанный контент