Cloud Dataflow 访问权限控制指南

概览

如需限制项目或组织内用户的访问权限,您可以为 Dataflow 使用 Identity and Access Management (IAM) 角色。您可以使用户只能访问 Dataflow 相关资源,而不是向其授予整个 Google Cloud 项目的 Viewer、Editor 或 Owner 访问权限。

本页重点介绍了如何使用 Dataflow 的 IAM 角色。如需详细了解 IAM 及其功能,请参阅 IAM 文档

每种 Dataflow 方法都要求调用者拥有必要的权限。有关 Dataflow 支持的权限和角色的列表,请参阅以下部分。

权限和角色

本部分汇总了 Dataflow IAM 支持的权限和角色。

所需权限

下表列出了调用者调用每种方法必须具备的权限:

方法 所需权限
dataflow.jobs.create dataflow.jobs.create
dataflow.jobs.cancel dataflow.jobs.cancel
dataflow.jobs.updateContents dataflow.jobs.updateContents
dataflow.jobs.list dataflow.jobs.list
dataflow.jobs.get dataflow.jobs.get
dataflow.messages.list dataflow.messages.list
dataflow.metrics.get dataflow.metrics.get
dataflow.jobs.snapshot dataflow.jobs.snapshot

角色

下表列出了 Dataflow IAM 角色及其包含的所有权限的列表。每个权限适用于特定的资源类型。

角色 名称 说明 权限 最低资源要求
roles/dataflow.admin Dataflow Admin 创建和管理 Dataflow 作业需要的最低权限角色。
  • compute.machineTypes.get
  • dataflow.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • storage.buckets.get
  • storage.objects.create
  • storage.objects.get
  • storage.objects.list
roles/dataflow.developer Dataflow Developer 提供执行和操作 Dataflow 作业所需的权限。
  • dataflow.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
项目
roles/dataflow.viewer Dataflow Viewer 提供对所有 Dataflow 相关资源的只读权限。
  • dataflow.jobs.get
  • dataflow.jobs.list
  • dataflow.messages.*
  • dataflow.metrics.*
  • dataflow.snapshots.get
  • dataflow.snapshots.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
项目
roles/dataflow.worker Dataflow Worker 提供让 Compute Engine 服务帐号执行 Cloud Dataflow 流水线工作单元所需的权限。
  • compute.instanceGroupManagers.update
  • compute.instances.delete
  • compute.instances.setDiskAutoDelete
  • dataflow.jobs.get
  • logging.logEntries.create
  • storage.objects.create
  • storage.objects.get
项目

Dataflow Worker 角色 (roles/dataflow.worker) 可为 Compute Engine 服务帐号提供执行 Apache Beam 流水线工作单元所需的权限(dataflow.workItems.leasedataflow.workItems.updatedataflow.workItems.sendMessage)。通常情况下,该角色仅应分配给此类帐号,并且只能从 Dataflow 服务请求和更新工作。

Dataflow 服务代理角色 (roles/dataflow.serviceAgent) 可通过 Dataflow 服务帐号访问代管资源。创建 Dataflow 项目时,此服务代理角色会分配给 Dataflow 服务帐号。

创建作业

要创建作业,roles/dataflow.admin 需具备运行和检查作业所需的一组最低权限。

或者,需要具备以下权限:

角色分配示例

为了说明不同 Dataflow 角色的效用,请考虑以下细分讲解:

分配 Dataflow 角色

目前,Dataflow 角色只能在组织和项目级层设置。

要管理组织级层角色,请参阅使用 IAM 对组织进行访问权限控制

要设置项目级层角色,请参阅授予、更改和撤消对资源的访问权限