Dataproc 主帐号和角色

当您使用 Dataproc 服务创建集群以及在集群上运行作业时,该服务会在项目中设置必要的 Dataproc 权限和 IAM 角色,以访问和使用它完成这些任务所需的 Google Cloud 资源。但是,如果您要完成跨项目工作(例如,访问另一个项目中的数据),则需要设置必要的角色和权限以访问跨项目资源。

为了帮助您成功完成跨项目工作,本文档列出了使用 Dataproc 服务的不同主帐号以及包含这些主帐号访问和使用 Google Cloud 资源的所需的必要权限的角色。

有三个主帐号(身份)可以访问和使用 Dataproc:

  1. 用户身份
  2. 控制平面身份
  3. 数据平面身份

Dataproc API 用户(用户身份)

示例:username@example.com

这是调用 Dataproc 服务以创建集群、提交作业以及向服务发出其他请求的用户。用户通常是个人,但也可以是服务帐号(如果通过 API 客户端或其他 Google Cloud 服务(如 Compute Engine、Cloud Functions 函数或 Cloud Composer)调用 Dataproc)。

相关角色

备注

  • Dataproc API 提交的作业在 Linux 上以 root 身份运行。
  • Dataproc 集群继承项目范围的 Compute Engine SSH 元数据,除非您在创建集群时通过设置 --metadata=block-project-ssh-keys=true 明确阻止了该数据(请参阅集群元数据

  • 系统会为每个项目级层的 SSH 用户创建 HDFS 用户目录。这些 HDFS 目录是在集群部署时创建的,而新的(部署后)SSH 用户在现有集群上不会获得 HDFS 目录。

Dataproc 服务代理(控制平面身份)

示例:service-project-number@dataproc-accounts.iam.gserviceaccount.com

Dataproc Dataproc Service Agent 服务帐号用于在创建 Dataproc 集群的项目中的资源上执行广泛的系统操作,包括:

  • 创建 Compute Engine 资源,包括虚拟机实例、实例组和实例模板
  • getlist 操作,用来确认资源(例如映像、防火墙、Dataproc 初始化操作和 Cloud Storage 存储分区)的配置
  • 自动创建 Dataproc 暂存和临时存储分区(如果用户未指定暂存或临时存储分区)
  • 将集群配置元数据写入暂存存储分区

相关角色

Dataproc 虚拟机服务帐号(数据平面身份)

示例:project-number-compute@developer.gserviceaccount.com

您的应用代码在 Dataproc 虚拟机上以 VM 服务帐号身份运行。用户作业被授予此服务帐号的角色(及其关联权限)。

虚拟机服务帐号:

相关角色

了解详情