概览
Identity and Access Management (IAM) 可用于 对项目资源进行用户和群组访问权限。本文档重点介绍与 Dataproc 相关的 IAM 权限和授予这些权限的 IAM 角色。
Dataproc 权限
Dataproc 权限可让用户包括
服务账号,
在 Dataproc 上执行操作
集群、作业、操作和工作流模板。例如,dataproc.clusters.create
权限允许用户在项目中创建 Dataproc 集群。
通常情况下,您不授予权限;改为授予
角色,这些角色包含一个或多个权限。
下表列出了调用 Dataproc API(方法)所需的权限。这些表格是按照 每项 Dataproc 资源(集群、作业、操作和工作流模板)。
权限范围:Dataproc 的范围
下表中列出的权限是
项目(cloud-platform
范围)。请参阅
服务账号权限。
示例:
dataproc.clusters.create
允许创建 所属项目中的 Dataproc 集群dataproc.jobs.create
允许在所属项目中将 Dataproc 作业提交给 Dataproc 集群dataproc.clusters.list
允许列出所属项目中 Dataproc 集群的详细信息
集群权限
方法 | 所需权限 |
---|---|
projects.regions.clusters.create 1, 2 | dataproc.clusters.create |
projects.regions.clusters.get | dataproc.clusters.get |
projects.regions.clusters.list | dataproc.clusters.list |
projects.regions.clusters.patch 1, 2, 3 | dataproc.clusters.update |
projects.regions.clusters.delete 1 | dataproc.clusters.delete |
projects.regions.clusters.start | dataproc.clusters.start |
projects.regions.clusters.stop | dataproc.clusters.stop |
projects.regions.clusters.getIamPolicy | dataproc.clusters.getIamPolicy |
projects.regions.clusters.setIamPolicy | dataproc.clusters.setIamPolicy |
注意:
- 如需获取状态,还需要
dataproc.operations.get
权限 Google Cloud CLI 中的更新。 - 如需通过 Google Cloud CLI 获取操作结果,您还需要具有
dataproc.clusters.get
权限。 - 如需在集群上启用自动扩缩政策,您还需要具有
dataproc.autoscalingPolicies.use
权限。
作业权限
方法 | 所需权限 |
---|---|
projects.regions.jobs.submit 1, 2 | dataproc.jobs.create dataproc.clusters.use |
projects.regions.jobs.get | dataproc.jobs.get |
projects.regions.jobs.list | dataproc.jobs.list |
projects.regions.jobs.cancel 1 | dataproc.jobs.cancel |
projects.regions.jobs.patch 1 | dataproc.jobs.update |
projects.regions.jobs.delete 1 | dataproc.jobs.delete |
projects.regions.jobs.getIamPolicy | dataproc.jobs.getIamPolicy |
projects.regions.jobs.setIamPolicy | dataproc.jobs.setIamPolicy |
注意:
Google Cloud CLI 还需要
dataproc.jobs.get
对jobs submit
、jobs wait
、jobs update
、jobs delete
、 和jobs kill
命令。gcloud CLI 还需要
dataproc.clusters.get
提交作业的权限。有关设置 用户运行gcloud dataproc jobs submit
使用 Dataproc Granular IAM(请参阅 使用 Granular IAM 提交作业)。
操作权限
方法 | 所需权限 |
---|---|
projects.regions.operations.get | dataproc.operations.get |
projects.regions.operations.list | dataproc.operations.list |
projects.regions.operations.cancel | dataproc.operations.cancel |
projects.regions.operations.delete | dataproc.operations.delete |
projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
工作流模板权限
方法 | 所需权限 |
---|---|
projects.regions.workflowTemplates.instantiate | dataproc.workflowTemplates.instantiate |
projects.regions.workflowTemplates.instantiateInline | dataproc.workflowTemplates.instantiateInline |
projects.regions.workflowTemplates.create | dataproc.workflowTemplates.create |
projects.regions.workflowTemplates.get | dataproc.workflowTemplates.get |
projects.regions.workflowTemplates.list | dataproc.workflowTemplates.list |
projects.regions.workflowTemplates.update | dataproc.workflowTemplates.update |
projects.regions.workflowTemplates.delete | dataproc.workflowTemplates.delete |
projects.regions.workflowTemplates.getIamPolicy | dataproc.workflowTemplates.getIamPolicy |
projects.regions.workflowTemplates.setIamPolicy | dataproc.workflowTemplates.setIamPolicy |
注意:
工作流模板权限独立于集群和作业权限。 没有
create cluster
或submit job
权限的用户可以创建并实例化工作流模板。Google Cloud CLI 还需要
dataproc.operations.get
权限,可轮询工作流完成情况。具有
dataproc.operations.cancel
权限才能取消正在运行的工作流。
自动扩缩政策权限
方法 | 所需权限 |
---|---|
projects.regions.autoscalingPolicies.create | dataproc.autoscalingPolicies.create |
projects.regions.autoscalingPolicies.get | dataproc.autoscalingPolicies.get |
projects.regions.autoscalingPolicies.list | dataproc.autoscalingPolicies.list |
projects.regions.autoscalingPolicies.update | dataproc.autoscalingPolicies.update |
projects.regions.autoscalingPolicies.delete | dataproc.autoscalingPolicies.delete |
projects.regions.autoscalingPolicies.getIamPolicy | dataproc.autoscalingPolicies.getIamPolicy |
projects.regions.autoscalingPolicies.setIamPolicy | dataproc.autoscalingPolicies.setIamPolicy |
注意:
- 如需通过
clusters.patch
方法请求在集群上启用自动扩缩政策。您需要具有dataproc.autoscalingPolicies.use
权限。
节点组权限
方法 | 所需权限 |
---|---|
projects.regions.nodeGroups.create | dataproc.nodeGroups.create |
projects.regions.nodeGroups.get | dataproc.nodeGroups.get |
projects.regions.nodeGroups.resize | dataproc.nodeGroups.update |
Dataproc 角色
Dataproc IAM 角色包含一个或多个权限。您向用户或群组授予角色,以允许他们在
项目。例如,Dataproc Viewer 角色包含 dataproc.*.get
和 dataproc.*.list
权限,这些权限允许用户获取和列出项目中的 Dataproc 集群、作业和操作。
下表列出了 Dataproc IAM 角色以及与每个角色关联的权限:
角色 ID | 权限 |
---|---|
roles/dataproc.admin | dataproc.*.getIamPolicy dataproc.*.setIamPolicy dataproc.*.create dataproc.*.get dataproc.*.list dataproc.*.delete dataproc.*.update dataproc.clusters.use dataproc.clusters.start dataproc.clusters.stop dataproc.jobs.cancel dataproc.workflowTemplates.instantiate dataproc.workflowTemplates.instantiateInline compute.machineTypes.get compute.machineTypes.list compute.networks.get compute.networks.list compute.projects.get compute.regions.get compute.regions.list compute.zones.get compute.zones.list resourcemanager.projects.get resourcemanager.projects.list |
roles/dataproc.editor | dataproc.*.create dataproc.*.get dataproc.*.list dataproc.*.delete dataproc.*.update dataproc.clusters.use dataproc.clusters.start dataproc.clusters.stop dataproc.jobs.cancel dataproc.workflowTemplates.instantiate dataproc.workflowTemplates.instantiateInline compute.machineTypes.get compute.machineTypes.list compute.networks.get compute.networks.list compute.projects.get compute.regions.get compute.regions.list compute.zones.get compute.zones.list resourcemanager.projects.get resourcemanager.projects.list |
roles/dataproc.viewer | dataproc.*.get dataproc.*.list compute.machineTypes.get compute.regions.get compute.regions.list compute.zones.get resourcemanager.projects.get resourcemanager.projects.list |
roles/dataproc.worker(仅适用于服务账号) | dataproc.agents.* dataproc.tasks.* logging.logEntries.create monitoring.metricDescriptors.create monitoring.metricDescriptors.get monitoring.metricDescriptors.list monitoring.monitoredResourceDescriptors.get monitoring.monitoredResourceDescriptors.list monitoring.timeSeries.create storage.buckets.get storage.objects.create storage.objects.get storage.objects.list storage.objects.update storage.objects.delete storage.objects.getIamPolicy storage.objects.setIamPolicy |
注意:
- “*”表示“集群”,“作业”或“操作”,但与
dataproc.operations.
关联的权限仅有get
、list
和delete
。 - 需要或建议使用前面列出的
compute
权限来执行以下操作: 在使用 Google Cloud 控制台时创建和查看 Dataproc 集群 或 gcloud CLI Google Cloud CLI。 - 如要允许用户上传文件,请授予
Storage Object Creator
角色。 如需允许用户查看作业输出,请授予Storage Object Viewer
角色。 - 用户必须拥有
monitoring.timeSeries.list
权限才能执行以下操作: 在 Google Cloud 控制台上查看图表→Dataproc→集群详情 “概览”标签页。 - 用户必须具有
compute.instances.list
权限 查看实例状态和主实例 SSH 菜单 Google Cloud 控制台→Dataproc→集群详情 “虚拟机实例”标签页。如需了解 Compute Engine 角色,请参阅 Compute Engine→可用 IAM 角色)。 - 要使用用户指定的服务账号创建集群,
服务账号必须具有由
Dataproc Worker
该角色包括对 Dataproc 的访问权限 暂存存储分区和临时存储分区。 视配置的功能而定,可能需要其他角色。 如需了解更多详情,请参阅使用自定义虚拟机服务账号创建集群。 。
项目角色
您还可以使用 IAM 项目角色在项目级层设置权限。下表列出了与 IAM 项目角色:
项目角色 | 权限 |
---|---|
Project Viewer | 拥有不会修改状态的只读操作(获取、列出)的所有项目权限 |
Project Editor | 拥有所有“Project Viewer”权限,外加可修改状态的操作(创建、删除、更新、使用、取消、停止、启动)的所有项目权限 |
Project Owner | 拥有所有“项目修改者”权限,外加为项目管理访问控制的权限(获取/设置 IamPolicy)和设置项目结算的权限 |
IAM 角色和 Dataproc 操作汇总
下表列出了与 项目和 Dataproc 角色。
操作 | Project Editor | Project Viewer | Dataproc Admin | Dataproc Editor | Dataproc Viewer |
---|---|---|---|---|---|
获取/设置 Dataproc IAM 权限 | 否 | 否 | 是 | 否 | 否 |
创建集群 | 是 | 否 | 是 | 是 | 否 |
列出集群 | 是 | 是 | 是 | 是 | 是 |
获取集群详情 | 是 | 是 | 是1, 2 | 是1, 2 | 是1, 2 |
更新集群 | 是 | 否 | 是 | 是 | 否 |
删除集群 | 是 | 否 | 是 | 是 | 否 |
启动/停止集群 | 是 | 否 | 是 | 是 | 否 |
提交作业 | 是 | 否 | 是3 | 是3 | 否 |
列出作业 | 是 | 是 | 是 | 是 | 是 |
获取作业详情 | 是 | 是 | 是4 | 是4 | 是4 |
取消作业 | 是 | 否 | 是 | 是 | 否 |
删除作业 | 是 | 否 | 是 | 是 | 否 |
列出操作 | 是 | 是 | 是 | 是 | 是 |
获取操作详情 | 是 | 是 | 是 | 是 | 是 |
删除操作 | 是 | 否 | 是 | 是 | 否 |
注意:
- 除非用户还拥有包含
monitoring.timeSeries.list
权限的角色,否则将无法使用性能图表。 - 除非用户还拥有包含
compute.instances.list
权限的角色,否则集群中的虚拟机列表将不包含主实例的状态信息或 SSH 链接。 - 上传文件的作业要求用户具有
Storage Object Creator
。 对 Dataproc 角色或 暂存存储桶。 - 除非用户还具有“存储对象查看者”角色或已被授予项目的暂存存储分区的读取权限,否则将无法访问作业输出。
服务账号
当您调用 Dataproc API 在项目中执行操作时, 例如创建虚拟机实例,Dataproc 会在您的 通过具有所需权限的服务账号 执行操作如需了解详情,请参阅 Dataproc 服务账号。
IAM 管理
您可以使用 Google Cloud 控制台、IAM API 或 Google Cloud CLI
- 如需了解 Google Cloud 控制台,请参阅 使用 Google Cloud 控制台进行访问权限控制。
- 如需了解 API,请参阅使用 API 进行访问权限控制。
- 对于 Google Cloud CLI,请参阅使用 Google Cloud CLI 进行访问权限控制。