Вопрос о разрешении Google Cloud Platform (pub / sub -> Dataflow -> Bucket Google Cloud Storage) - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь отправить данные из Google Cloud Pub / Sub через DataFlow в корзину Google Cloud Storage. Я использовал шаблон для создания DataFlow.

Когда я настраиваю корзину с разрешениями по умолчанию, в журналах заданий появляется предупреждение: «somelong#-compute@developer.gserviceaccount.com не имеет доступа к storage.objects.get .. . ", и в корзине нет данных.

Я добавил разрешения администратора потока данных для зрителей участника проекта, и предупреждение исчезло.

Кажется, что процесс пишет в корзину, большинство просто просматривает его, поэтому я а) не понимаю, почему это решило мою проблему, б) не уверен, что это правильное / подходящее разрешение на использование.

Любая информация будет оценена.

1 Ответ

1 голос
/ 26 мая 2019

somelong#-compute@developer.gserviceaccount.com

"somelong #" - это номер проекта для вашего проекта.

Я добавил разрешения администратора потока данных для зрителей участника проекта, и предупреждение ушло.

Роль roles/viewer имеет разрешение на перечисление сегментов, но не имеет доступа к объектам в сегменте.

Я не уверен точно, что вы делали и где вы это делали, основываясь на предоставленной информации. Если вы добавили роль roles/dataflow.admin для каждого пользователя или группы, в которую входят указанные ниже пользователи, это нормально. Администратор потока данных - это правильная роль, если пользователям необходимо создавать задания потока данных и получать доступ к полученным данным. Однако чего не хватает, так это откуда запускаются эти работы. Вероятно, из экземпляра Compute, и именно поэтому учетная запись службы указана в ошибке. Учетная запись службы также нуждается в разрешениях. Как говорится, ответ кроется в деталях, а в вашем вопросе не хватает нескольких.

Если задание потока данных запускается из экземпляра Compute Engine, то учетной записи службы по умолчанию Compute Engine (такой же, как в вашем сообщении об ошибке) требуются разрешения Dataflow и Cloud Storage. Dataflow.admin предоставит учетной записи службы необходимые разрешения.

Если задание «Поток данных» запускается из-за пределов облака (чей-то рабочий стол), то разрешения учетной записи участника IAM этого пользователя.

Чтобы увидеть разрешения, которые имеет роль, вы можете использовать CLI:

gcloud iam roles describe roles/dataflow.admin

Возвращает следующую информацию. Элементы импорта представляют собой список разрешений:

description: Minimal role for creating and managing dataflow jobs.
etag: AA==
includedPermissions:
- compute.machineTypes.get
- dataflow.jobs.cancel
- dataflow.jobs.create
- dataflow.jobs.get
- dataflow.jobs.list
- dataflow.jobs.updateContents
- dataflow.messages.list
- dataflow.metrics.get
- resourcemanager.projects.get
- resourcemanager.projects.list
- storage.buckets.get
- storage.objects.create
- storage.objects.get
- storage.objects.list
name: roles/dataflow.admin
stage: GA
title: Dataflow Admin

Из этого списка вы можете видеть, что вы дали кому-то / что-то разрешение на создание, получение и перечисление объектов в ваших корзинах. Если требуется предоставить только разрешения на хранение, добавьте роль roles\storage.legacyBucketWriter.

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...