Настройка IAM в Google Cloud Platform для обеспечения доступа RO уровня проекта к сегментам

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

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

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

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

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

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

1 ответ

Самая близкая предварительно созданная роль - Просмотрщик объектов. Это позволяет перечислять и читать объекты. Он не включает в себя разрешение 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
Другие вопросы по тегам