借助 Identity and Access Management (IAM),您可以控制对项目资源的访问权限。本文档重点介绍与 Serverless for Apache Spark 相关的 IAM 权限和授予这些权限的 IAM 角色。
适用于 Apache Spark 的 Dataproc Serverless 权限
Dataproc 权限允许用户和服务账号对 Serverless for Apache Spark 资源执行操作。例如,dataproc.batches.create
权限可让您在项目中创建批处理工作负载。
您不直接授予用户权限,而是向其授予 IAM 角色(角色自带一个或多个权限)。您可以授予包含权限列表的预定义角色,也可以创建和授予自定义角色,其中包含您在自定义角色中添加的一项或多项权限。
下表列出了调用 Dataproc API(方法)来创建或访问 Serverless for Apache Spark 资源所需的基本权限。这些表格根据与每个 Serverless for Apache Spark 资源关联的 API 进行整理,其中包括 batches
、sessions
、sessionTemplates
和 operations
。
示例:
dataproc.batches.create
允许在所属项目中创建批处理。dataproc.sessions.create
允许在所属项目中创建交互式会话。
批处理权限
方法 | 所需权限 |
---|---|
projects.locations.batches.create | dataproc.batches.create 1 |
projects.locations.batches.delete | dataproc.batches.delete |
projects.locations.batches.get | dataproc.batches.get |
projects.locations.batches.list | dataproc.batches.list |
1 dataproc.batches.create
还需要 dataproc.batches.get
和 dataproc.operations.get
权限才能允许它从 gcloud
命令行工具获取状态更新。
会话权限
方法 | 所需权限 |
---|---|
projects.locations.sessions.create | dataproc.sessions.create 1 |
projects.locations.sessions.delete | dataproc.sessions.delete |
projects.locations.sessions.get | dataproc.sessions.get |
projects.locations.sessions.list | dataproc.sessions.list |
projects.locations.sessions.terminate | dataproc.sessions.terminate |
1 dataproc.sessions.create
还需要 dataproc.sessions.get
和 dataproc.operations.get
权限才能允许它从 gcloud
命令行工具获取状态更新。
会话模板权限
方法 | 所需权限 |
---|---|
projects.locations.sessionTemplates.create | dataproc.sessionTemplates.create 1 |
projects.locations.sessionTemplates.delete | dataproc.sessionTemplates.delete |
projects.locations.sessionTemplates.get | dataproc.sessionTemplates.get |
projects.locations.sessionTemplates.list | dataproc.sessionTemplates.list |
projects.locations.sessionTemplates.update | dataproc.sessionTemplates.update |
1 dataproc.sessionTemplates.create
还需要 dataproc.sessionTemplates.get
和 dataproc.operations.get
权限才能允许它从 gcloud
命令行工具获取状态更新。
操作权限
方法 | 所需权限 |
---|---|
projects.regions.operations.get | dataproc.operations.get |
projects.regions.operations.list | dataproc.operations.list |
projects.regions.operations.cancel 1 | dataproc.operations.cancel |
projects.regions.operations.delete | dataproc.operations.delete |
projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
1 如需取消批处理操作,dataproc.operations.cancel
还需具有 dataproc.batches.cancel
权限。
Serverless for Apache Spark 3.0 及更高版本运行时权限
以下权限适用于 Serverless for Apache Spark 3.0
及更高版本的运行时。
工作负载权限
方法 | 所需权限 |
---|---|
dataprocrm.v1.dataprocrm.projects.locations.workloads.create | dataprocrm.workloads.create |
dataprocrm.v1.dataprocrm.projects.locations.workloads.cancel | dataprocrm.workloads.cancel |
dataprocrm.v1.dataprocrm.projects.locations.workloads.delete | dataprocrm.workloads.delete |
dataprocrm.v1.dataprocrm.projects.locations.workloads.get | dataprocrm.workloads.get |
dataprocrm.v1.dataprocrm.projects.locations.workloads.list | dataprocrm.workloads.list |
dataprocrm.v1.dataprocrm.projects.locations.workloads.use | dataprocrm.workloads.use |
NodePools 权限
方法 | 所需权限 |
---|---|
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.create | dataprocrm.nodePools.create |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.delete | dataprocrm.nodePools.delete |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.resize | dataprocrm.nodePools.resize |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.deleteNodes | dataprocrm.nodePools.deleteNodes |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.update | dataprocrm.nodePools.update |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.get | dataprocrm.nodePools.get |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.list | dataprocrm.nodePools.list |
节点权限
方法 | 所需权限 |
---|---|
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.create | dataprocrm.nodes.create |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.delete | dataprocrm.nodes.delete |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.update | dataprocrm.nodes.update |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.heartbeat | dataprocrm.nodes.heartbeat |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.get | dataprocrm.nodes.get |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.list | dataprocrm.nodes.list |
dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.mintOAuthToken | dataprocrm.nodes.mintOAuthToken |
操作权限
方法 | 所需权限 |
---|---|
dataprocrm.v1.dataprocrm.projects.locations.operations.get | dataprocrm.operations.get |
dataprocrm.v1.dataprocrm.projects.locations.operations.list | dataprocrm.operations.list |
Dataproc 和 Dataproc Serverless 角色
Dataproc IAM 角色可以包含与 Dataproc 和 Serverless for Apache Spark 资源关联的权限。Dataproc Serverless IAM 角色包含与 Serverless for Apache Spark 资源关联的权限。
例如,Dataproc Viewer 角色包含 dataproc.batches
和 dataproc.sessions
获取和列出权限,这些权限允许用户或服务账号获取和列出项目中的批处理工作负载和会话。
用户权限和角色要求
用户必须拥有服务账号
ActAs
权限才能部署 Serverless for Apache Spark 资源,例如提交批量工作负载。如需了解详情,请参阅用于服务账号验证的角色。Serverless for Apache Spark
3.0
或更高版本运行时角色要求:- 用户账号需要 Dataproc Editor 或 Dataproc Serverless Editor 角色才能运行批处理和会话。
- 用户账号需要具有 Dataproc Viewer 或 Dataproc Serverless Editor 角色才能获取和列出批处理和会话。
- 自定义服务账号需要 Dataproc Worker 角色才能运行批处理和会话。
如需了解与 Serverless for Apache Spark
3.0
运行时关联的服务账号,请参阅 Serverless for Apache Spark 服务账号。
查找 Dataproc 角色和权限
您可以使用以下部分查找 Dataproc 角色和权限。
Role | Permissions |
---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Dataproc, including machine types, networks, projects, and zones. Lowest-level resources where you can grant this role:
|
|
Dataproc Hub Agent( Allows management of Dataproc resources. Intended for service accounts running Dataproc Hub instances. |
|
Dataproc Serverless Editor( Permissions needed to run serverless sessions and batches as a user |
|
Dataproc Serverless Node.( Node access to Dataproc Serverless sessions and batches. Intended for service accounts. |
|
Dataproc Serverless Viewer( Permissions needed to view serverless sessions and batches |
|
Dataproc Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
Dataproc Viewer( Provides read-only access to Dataproc resources. Lowest-level resources where you can grant this role:
|
|
Dataproc Worker( Provides worker access to Dataproc resources. Intended for service accounts. |
|
项目角色
您还可以使用 IAM 项目角色在项目级层设置权限。下表总结了与 IAM 项目角色关联的权限:
项目角色 | 权限 |
---|---|
Project Viewer | 拥有不会修改状态的只读操作(获取、列出)的所有项目权限 |
Project Editor | 拥有所有“Project Viewer”权限,外加可修改状态的操作(创建、删除、更新、使用、取消、停止、启动)的所有项目权限 |
Project Owner | 拥有所有“项目修改者”权限,外加为项目管理访问控制的权限(获取/设置 IamPolicy)和设置项目结算的权限 |
后续步骤
- 了解如何管理对项目、文件夹和组织的访问权限。