如需限制项目或组织内用户的访问权限,您可以为 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 角色,还有一个列表列出每个角色包含的 Dataflow 相关权限。每个权限适用于特定的资源类型。如需查看权限列表,请参阅 Google Cloud Console 中的角色页面。
角色 | 权限 |
---|---|
Dataflow Admin
提供创建和管理 Dataflow 作业所需的最低权限。 |
|
Dataflow Developer
提供执行和操作 Dataflow 作业所需的权限。 您可以授予此角色的最低级层资源:
|
|
Dataflow Viewer
提供对所有 Dataflow 相关资源的只读权限。 您可以授予此角色的最低级层资源:
|
|
Dataflow Worker
提供让 Compute Engine 服务帐号执行 Cloud Dataflow 流水线工作单元所需的权限。 您可以授予此角色的最低级层资源:
|
|
Dataflow Worker 角色 (roles/dataflow.worker
) 可为 Compute Engine 服务帐号提供运行 Apache Beam 流水线工作单元所需的权限。Dataflow 工作器角色必须分配给能够从 Dataflow 服务请求和更新工作的服务帐号。
Dataflow 服务代理角色 (roles/dataflow.serviceAgent
) 仅供 Dataflow 服务帐号使用。它为服务帐号授予对 Google Cloud 项目中托管资源的访问权限,以运行 Dataflow 作业。当您从 Google Cloud Console 中的 API 页面为项目启用 Dataflow API 时,系统会自动将其分配给服务帐号。
创建作业
要创建作业,roles/dataflow.admin
角色需具备运行和检查作业所需的一组最低权限。
或者,需要具备以下权限:
roles/dataflow.developer
角色,可将作业本身实例化。roles/compute.viewer
角色,可访问机器类型信息及查看其他设置。roles/storage.objectAdmin
角色,可提供将文件暂存在 Cloud Storage 上的权限。
角色分配示例
为了说明不同 Dataflow 角色的效用,请考虑以下细分讲解:
- 创建和检查作业的开发者需要
roles/dataflow.admin
角色。 - 为进行更复杂的权限管理,与 Dataflow 作业交互的开发者需要
roles/dataflow.developer
角色。- 如需暂存必要的文件,开发者需要
roles/storage.objectAdmin
或相关角色。 - 如需进行调试和配额检查,开发者需要项目的
roles/compute.viewer
角色。 - 如果没有分配其他角色,开发者可以通过此角色创建和取消 Dataflow 作业,但不能与各个虚拟机交互,也不能访问其他 Cloud 服务。
- 如需暂存必要的文件,开发者需要
- 工作器服务帐号需要
roles/dataflow.worker
角色,才能处理 Dataflow 服务的数据。要访问作业数据,服务帐号还需要其他角色,如roles/storage.objectAdmin
。
分配 Dataflow 角色
目前,Dataflow 角色只能在组织和项目级层设置。
要管理组织级层角色,请参阅使用 IAM 对组织进行访问权限控制。
要设置项目级层角色,请参阅授予、更改和撤消对资源的访问权限。