借助 Identity and Access Management (IAM),您可以控制对项目资源的访问权限。 本文档重点介绍与 Managed Service for Apache Spark 无服务器部署相关的 IAM 权限和授予这些权限的 IAM 角色。
Managed Service for Apache Spark 无服务器权限
借助 Managed Service for Apache Spark 权限,用户和
服务账号,
可以对 Managed Service for Apache Spark
资源执行操作。例如,dataproc.batches.create 权限允许您在项目中创建批处理工作负载。
您不直接授予用户权限,而是向其授予 IAM 角色(角色自带一个或多个权限)。您可以授予 预定义角色,其中 包含权限列表,也可以创建和授予 自定义角色,其中包含您在自定义角色中添加的一个或多个 权限。
下表列出了调用 Dataproc API(方法)以创建或访问 Managed Service for Apache Spark 资源所需的基本权限。这些表是根据与每个 Managed Service 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 权限。
Managed Service for Apache Spark 3.0+ 运行时权限
以下权限适用于 Managed Service 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 |
Managed Service for Apache Spark 角色要求
下表列出了包含管理批处理工作负载和会话所需的权限的角色。这些要求取决于批处理或会话 运行时版本。
| 运行时版本 | IAM 角色 |
|---|---|
pre-3.0 |
向用户授予以下角色:
|
3.0+ |
向用户授予以下角色:
|
注意:
启用 Managed Service for Apache Spark 最终用户凭据 (EUC) 功能后,系统会使用用户身份(凭据)提交批处理工作负载、创建互动会话,以及执行数据平面操作,例如从批处理或会话 Spark 应用访问 Cloud Storage 和 BigQuery。
在
3.0+ 运行时(即3.0+ 默认运行时)中启用 EUC 后, 数据平面系统操作由 Managed Service for Apache Spark Resource Manager 节点服务代理 服务帐号执行,并且系统会自动向用户授予此服务帐号的actAs权限。在 pre-
3.0运行时(服务帐号凭据是 pre-3.0默认凭据)中启用 EUC 后,数据平面系统操作由 Compute Engine 默认服务账号或自定义服务帐号执行。 用户必须被授予此服务帐号的actAs权限。为了实现向后兼容,可以向
3.0+运行时授予旧版 Dataproc Editor 和 Dataproc Viewer 角色,而不是 Dataproc Serverless Editor 和 Dataproc Serverless Viewer 角色。此外,还可以授予 Dataproc Worker 角色,而不是 Dataproc Serverless Node 角色。如果服务帐号被授予了项目 Editor 角色,则该角色包含 Dataproc Worker 角色中包含的权限。
如需详细了解 Managed Service for Apache Spark 服务账号, 请参阅 Serverless for Apache Spark 服务账号。
您是否需要授予角色?
根据您的组织政策,系统可能已授予所需角色。
检查授予用户的角色
如需查看用户是否已被授予角色,请按照 管理对项目、文件夹和组织的访问权限 > 查看当前访问权限中的说明操作。
检查授予服务账号的角色
如需查看服务帐号是否已被授予角色,请参阅 查看和管理 IAM 服务帐号。
检查授予服务帐号的角色
如需查看用户是否已被授予服务帐号的角色, 请按照 管理对服务账号的访问权限 > 查看当前访问权限中的说明操作。
查找角色和权限
您可以使用以下部分查找 Managed Service for Apache Spark 角色和权限。
| Role | Permissions |
|---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Managed Service for Apache Spark, including machine types, networks, projects, and zones. Lowest-level resources where you can grant this role:
|
|
Dataproc Viewer( Provides read-only access to Managed Service for Apache Spark resources. 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 Worker( Provides worker access to Managed Service for Apache Spark resources. Intended for service accounts. |
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Dataproc Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
项目角色
您还可以使用 IAM 项目 角色在项目级设置权限。下表汇总了与 IAM 项目角色关联的权限:
| 项目角色 | 权限 |
|---|---|
| Project Viewer | 拥有不会修改状态的只读操作(获取、列出)的所有项目权限 |
| Project Editor | 拥有所有“Project Viewer”权限,外加可修改状态的操作(创建、删除、更新、使用、取消、停止、启动)的所有项目权限 |
| Project Owner | 拥有所有“项目 Editor”权限,外加为项目管理访问权限控制的权限(获取/设置 IamPolicy)和设置项目结算的权限 |
后续步骤
- 了解如何管理对项目、文件夹和组织的访问权限。