向服务帐号授予用户权限

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

对于 Dataproc 使用的服务帐号,您还需要授予 datafusion.instances.runtime 权限,以访问 Cloud Data Fusion 运行时资源。

无论您是使用用户代管的服务帐号,还是使用集群中虚拟机上的默认 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]'

获取服务帐号名称

  1. 在 Google Cloud Console 中,转到“身份和访问权限管理”页面。
    转到 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 服务帐号的电子邮件地址。

  4. 点击权限标签页。 该页面会显示已被授予服务帐号角色的主帐号列表。

  5. 点击 授予访问权限

  6. 新建主帐号字段中,粘贴您之前复制的 Cloud Data Fusion 服务帐号名称。

  7. 选择 Service Account User 角色。

    Service Account User

  8. 点击保存

向 Dataproc 服务帐号授予角色

授予 runner 角色权限

注意:向 Dataproc 使用的服务帐号授予 Cloud Data Fusion runner 角色 (roles/datafusion.runner)。 这将授权 Dataproc 服务帐号在项目中运行 Cloud Data Fusion 流水线。 如需了解详情,请参阅需要具备将服务帐号附加到资源的权限

授予 Cloud Storage admin 权限

在 Cloud Data Fusion 6.2.0 及更高版本中,将 Cloud Storage Admin 角色 (roles/storage.admin) 授予项目中的 Dataproc 所使用的服务帐号。

后续步骤