Как отключить список сегментов облачного хранилища Google из управления контроля доступа?

Мы используем облачное хранилище Google в качестве CDN.

Однако любой посетитель может просмотреть список всех файлов, введя: http://ourcdn.storage.googleapis.com/

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

Ранее мы установили acl, используя

gsutil defacl ch -g AllUsers:READ 

person Tom Fishman    schedule 01.10.2013    source источник


Ответы (4)


На панели управления GCP:

  1. садись в свое ведро
  2. нажмите вкладку "Разрешения" и войдите.
  3. в списке участников найдите «allUsers», измените роль с Storage Object Viewer на Storage Legacy Object Reader.

затем листинг должен быть отключен.

Обновление:

как комментарий @Devy, просто проверьте примечание ниже здесь

Примечание: roles/storage.objectViewer включает разрешение на перечисление объектов в корзине. Если вы не хотите публиковать список, используйте роли. /storage.legacyObjectReader.

person Hao Xu    schedule 29.05.2019
comment
Это официально рекомендуемый способ в документации GCP: cloud. google.com/storage/docs/access-control/, поскольку пакет ролей разрешений GCP Storage Legacy Object Reader не имеет разрешения Listing. Смотрите скриншот: d1sz9tkli0lfjq.cloudfront.net/ элементы/3v042M2q2a2q3Y2O1P1Y/ - person Devy; 28.08.2019
comment
Отличное решение. Обработка разрешений GCP всегда доставляла массу хлопот, но на этот раз все было в порядке. - person afe; 02.07.2021

Загрузите пустой файл index.html в корень вашей корзины. Откройте настройки корзины и нажмите Изменить конфигурацию веб-сайта — установите index.html в качестве Главной страницы.

Это предотвратит листинг каталога.

person maxime    schedule 25.09.2018
comment
Идеальное решение! Благодарить! - person Qulery; 08.09.2020
comment
Но это не останавливает списки других каталогов. В соответствии с принятым ответом измените роль с средства просмотра объектов хранилища на средство чтения объектов хранилища. - person gingerCodeNinja; 25.07.2021

Ваш дефакл выглядит хорошо. Проблема, скорее всего, в том, что по какой-то причине AllUsers также должен иметь READ, WRITE или FULL_CONTROL на самом бакете. Вы можете очистить их с помощью такой команды:

gsutil acl ch -d AllUsers gs://bucketname
person Brandon Yarbrough    schedule 01.10.2013

Ваша команда устанавливает ACL объекта по умолчанию для корзины на ЧТЕНИЕ, что означает, что объекты будут доступны всем. Чтобы пользователи не могли перечислять объекты, необходимо убедиться, что у пользователей нет ACL для самой корзины.

gsutil acl ch -d AllUsers gs://yourbucket

должен выполнить это. Возможно, вам потребуется выполнить аналогичную команду для AllAuthenticatedUsers; просто взгляните на ACL корзины с помощью

gsutil acl получить gs://yourbucket

и должно быть понятно.

person Travis Hobrla    schedule 01.10.2013