Настройка IAM в Google Cloud Platform, позволяющая RO проекта получать доступ к корзинам - PullRequest
0 голосов
/ 10 октября 2018

Я хочу предоставить служебной учетной записи доступ только для чтения ко всем сегментам в моем проекте.Какова лучшая практика для этого?

Ответы здесь предлагают один из следующих вариантов:

  • создание собственной политики IAM
  • назначение роли Legacy Bucket Viewer для каждого сегмента
  • использование списков ACL для предоставления доступа bucket.get

Ничто из этого не кажется мне идеальным, поскольку:

  • Предоставление доступа только для чтения представляется слишком распространенной необходимостью длятребуется настраиваемая политика
  • Если в названии указать «Legacy», создается впечатление, что это разрешение будет удалено относительно скоро, и любые новые сегменты потребуют изменения
  • Google рекомендует IAM через ACL и любые новые корзины потребуют модификации

Есть ли способ избежать требования bucket.get и по-прежнему получать доступ к объектам в корзине?Или есть другой способ предоставления доступа, о котором я не знаю?

1 Ответ

0 голосов
/ 10 октября 2018

Ближайшая предварительно созданная роль - Просмотрщик объектов.Это позволяет перечислять и читать объекты.Он не включает в себя разрешение storage.buckets.get, но это обычно не требуется - обработка метаданных ведра действительно является административной функцией.Он также не включает storage.buckets.list, который немного более необходим, но все еще не является частью обычных шаблонов использования для GCS - как правило, при разработке приложения у вас есть фиксированное количество сегментов для определенных целей, поэтому листинг неполезно.

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

gcloud iam roles create StorageViewerLister --project=$YOUR_POJECT --permissions=storage.objects.get,storage.objects.list,storage.buckets.get,storage.buckets.list
gcloud projects add-iam-policy-binding $YOUR_PROJECT --member=$YOUR_SERVICE_ACCOUNT --role=StorageViewerLister
...