提问者:小点点

Google Cloud Platform权限问题(发布/订阅->数据流->Google Cloud Storage存储桶)


我正在尝试通过DataFlow将数据从Google Cloud Pub/Sub发送到Google Cloud Storage存储桶。我使用模板创建了DataFlow。

当我使用默认权限设置存储桶时,我在作业日志中收到一条警告,“一些-compute@developer.gserviceaccount.com没有store. object.get access…”,并且存储桶中没有显示任何数据。

我为项目成员的查看器添加了Dataflow Admin权限,警告消失了。

似乎这个过程正在写入存储桶,大多数只是查看它,所以我a)困惑于为什么这解决了我的问题,b)不确定这是否是正确/适当的使用权限。

任何信息将不胜感激。


共1个答案

匿名用户

一些长#-compute@developer.gserviceaccount.com

“solelong#”是您项目的项目编号。

我为项目成员的查看器添加了Dataflow Admin权限,警告消失了。

角色角色/查看器有权列出存储桶,但无权访问存储桶中的对象。

根据提供的信息,我不确定你到底做了什么以及在哪里做的。如果你将角色角色/datflow. admin添加到下面用户的每个用户或组中,那是可以的。如果用户需要创建数据流作业并访问结果数据,数据流管理员是正确的角色。然而,缺少的是这些作业是从哪里启动的。可能来自计算实例,这就是为什么服务号被列在错误中。服务号也需要权限。正如他们所说,答案在细节中,你的问题缺少一些。

如果正在从计算引擎实例启动数据流作业,则计算引擎默认服务号(与错误消息中的相同)需要数据流和云存储权限。Datflow. admin将赋予服务号所需的权限。

如果正在从云外部(某人的桌面)启动Dataflow作业,则该用户的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

从这个列表中,您可以看到您授予了某人/某物在您的存储桶中创建、获取和列出对象的权限。如果要求仅提供存储权限,则添加角色角色\store. legacyBucketWriter