本页面介绍如何向 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]'
获取服务账号名称
- 在 Google Cloud 控制台中,前往 Identity and Access Management 页面。
转到 IAM 页面 - 从页面顶部的项目选择器中选择项目。 Cloud Data Fusion 实例所在的文件夹或组织 文档。
- 找到并复制 Cloud Data Fusion 服务账号名称。请使用以下格式:
service-[project-number]@gcp-sa-datafusion.iam.gserviceaccount.com
。
向服务账号用户授予权限
- 在 Google Cloud 控制台中,转到服务账号页面。
转到“服务账号”页面。 - 点击选择项目,选择要用于 Dataproc 集群的服务账号所在的项目,然后点击打开。
点击 Dataproc 服务账号的电子邮件地址。
点击权限标签页。 该页面会显示已被授予服务账号角色的主账号列表。
点击
授予访问权限。在新建主账号字段中,粘贴您之前复制的 Cloud Data Fusion 服务账号名称。
选择 Service Account User 角色。
点击保存。
向 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 所使用的服务账号。