向服务帐号授予用户权限

本页面介绍如何向 Cloud Data Fusion 授予 Dataproc Service Account User 角色,使其能够在 Dataproc 集群上预配和运行流水线。

无论您是使用用户代管的服务帐号,还是使用集群中虚拟机上的默认 Compute Engine 服务帐号,都必须向 Cloud Data Fusion 授予 Service Account User 角色。否则,Cloud Data Fusion 无法预配 Dataproc 集群,并且在执行数据流水线时会显示以下错误:

PROVISION task failed in REQUESTING_CREATE state for program run [pipeline-name] due to Dataproc operation failure: INVALID_ARGUMENT: User not authorized to act as service account '[service-account-name]'

复制 Cloud Data Fusion 服务帐号

  1. 在 Google Cloud Console 中,转到 Identity and Access Management 页面。
    转到 IAM 页面
  2. 从页面顶部的项目选择器中,选择 Cloud Data Fusion 实例所属的项目、文件夹或组织。
  3. 找到并复制 Cloud Data Fusion 服务帐号。请使用以下格式:service-[project-number]@gcp-sa-datafusion.iam.gserviceaccount.com

授予服务帐号用户权限

  1. 在 Cloud Console 中,转到服务帐号页面。
    转到“服务帐号”页面
  2. 点击选择项目,选择要用于 Dataproc 集群的服务帐号所在的项目,然后点击打开
  3. 选中 Dataproc 服务帐号对应的复选框。当 Cloud Data Fusion 预配 Dataproc 集群时,您可以指定哪个用户代管的服务帐号将用于该集群中的 Dataproc 虚拟机。如果未指定服务帐号,则使用默认的 Compute Engine 服务帐号,格式为 [project-number]-compute@developer.gserviceaccount.com
  4. 如果信息面板尚未显示,请点击显示信息面板。该面板会显示已授予服务帐号的成员和角色的列表。
  5. 点击添加成员
  6. 新成员字段中,粘贴您之前复制的 Cloud Data Fusion 服务帐号。
  7. 选择 Service Account User 角色。

    Service Account User

  8. 点击保存