概览
借助 Identity and Access Management (IAM),您可以控制用户和组对项目资源的访问权限。本文档重点介绍与 Dataproc 相关的 IAM 权限和授予这些权限的 IAM 角色。
Dataproc 权限
借助 Dataproc 权限,用户(包括服务帐号)可对 Dataproc 集群、作业、操作和工作流模板执行操作。例如,dataproc.clusters.create
权限允许用户在项目中创建 Dataproc 集群。通常,您不授予权限,而是授予角色(角色包含一个或多个权限)。
下表列出了调用 Dataproc API(方法)所需的权限。这些表格根据与每个 Dataproc 资源(集群、作业、操作和工作流模板)关联的 API 进行整理。
集群权限
方法 | 所需权限 |
---|---|
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 |
备注:
- 如需从 Google Cloud CLI 获取状态更新,您还需要具有
dataproc.operations.get
权限。 - 如需通过 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 |
备注:
对于
jobs submit
、jobs wait
、jobs update
、jobs delete
和jobs kill
命令,Google Cloud CLI 还需要dataproc.jobs.get
权限。gcloud CLI 还需要
dataproc.clusters.get
权限才能提交作业。有关使用 Dataproc Granular IAM 设置用户针对集群运行gcloud dataproc jobs submit
所需的权限的示例(请参阅使用 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 资源执行操作。例如,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
。 - 使用 Google Cloud 控制台或 gcloud CLI Google Cloud CLI 时,若要创建和查看 Dataproc 集群,需要或建议具有前面列出的
compute
权限。 - 如要允许用户上传文件,请授予
Storage Object Creator
角色。 如要允许用户查看作业输出,请授予Storage Object Viewer
角色。 授予这两个 Cloud Storage 角色中的任意一个后,用户将能够访问项目中的任何存储桶。 - 用户必须具有
monitoring.timeSeries.list
权限才能在“Google Cloud 控制台”→“Dataproc”→“集群详情”“概览”标签页中查看图表。 - 用户必须具有
compute.instances.list
权限才能查看实例状态以及“Google Cloud 控制台→Dataproc→集群详情虚拟机实例”标签页上的主实例 SSH 菜单。如需了解 Compute Engine 角色,请参阅 Compute Engine→可用的 IAM 角色。 - 如需使用用户指定的服务账号创建集群,指定的服务账号必须拥有由
Dataproc Worker
角色授予的所有权限。视配置的功能而定,可能需要其他角色。 如需了解详情,请参阅服务帐号。
项目角色
您还可以使用 IAM 项目角色在项目级层设置权限。下表列出了与 IAM 项目角色关联的权限:
项目角色 | 权限 |
---|---|
Project Viewer | 拥有不会修改状态的只读操作(获取、列出)的所有项目权限 |
Project Editor | 拥有所有“Project Viewer”权限,外加可修改状态的操作(创建、删除、更新、使用、取消、停止、启动)的所有项目权限 |
Project Owner | 拥有所有“项目修改者”权限,外加为项目管理访问控制的权限(获取/设置 IamPolicy)和设置项目结算的权限 |
IAM 角色和 Dataproc 操作汇总
下表列出了与项目和 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 来获取和设置 IAM 政策。
- 对于 Google Cloud 控制台,请参阅使用 Google Cloud 控制台进行访问权限控制。
- 如需了解 API,请参阅使用 API 进行访问权限控制。
- 对于 Google Cloud CLI,请参阅使用 Google Cloud CLI 进行访问权限控制。