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
.
.