向 Dataform 授予所需的访问权限

本文档介绍如何授予 Dataform 服务帐号在 BigQuery 中执行工作流所需的 Identity and Access Management (IAM) 角色。

Dataform 中的服务账号简介

当您创建第一个 Dataform 代码库时,Dataform 会自动生成一个默认服务帐号。Dataform 使用默认服务帐号代表您与 BigQuery 进行交互。默认情况下,默认 Dataform 服务帐号不会被授予任何 BigQuery 角色或权限。您必须向默认 Dataform 服务帐号授予所需的访问权限。

您的默认 Dataform 服务帐号 ID 采用以下格式:

service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

YOUR_PROJECT_NUMBER 替换为您的 Google Cloud 项目的数字 ID。您可以在 Google Cloud 控制台信息中心内找到您的 Google Cloud 项目 ID。如需了解详情,请参阅识别项目

除了默认的 Dataform 服务帐号之外,您还可以使用其他服务帐号代表您执行工作流。您可以配置自定义服务帐号:

创建 Dataform 代码库或工作流配置时,您可以选择与您有权访问的 Google Cloud 项目关联的任何服务帐号。您必须为与您的 Dataform 资源关联的所有服务账号配置必需的权限。

与 Dataform 代码库关联的自定义服务帐号仅用于从该代码库执行工作流。所有其他代码库操作仍由默认的 Dataform 服务帐号执行。

Dataform 服务账号所需的角色

Dataform 中使用的默认服务帐号和自定义服务帐号需要以下 BigQuery IAM 角色才能在 BigQuery 中执行工作流:

此外,您需要向默认 Dataform 服务帐号授予 Service Account Token Creator(roles/iam.serviceAccountTokenCreator) 对要在 Dataform 中使用的任何自定义服务账号的访问权限。

Dataform 服务账号的安全注意事项

将 Dataform 所需的角色授予服务帐号需要考虑以下安全注意事项:

  • 无论 VPC Service Controls 如何,被授予所需角色的任何服务帐号都可能获得对 BigQuery 或 Secret Manager 的访问权限。

    如需了解详情,请参阅为 Dataform 配置 VPC Service Controls

  • 拥有 dataform.repositories.create IAM 权限的任何用户都可以使用默认的 Dataform 服务帐号以及授予该服务账号的所有权限执行代码。

    如需了解详情,请参阅 Dataform 权限的安全注意事项

如需限制用户或服务帐号可在 BigQuery 中读取或写入的数据,您可以授予对所选 BigQuery 数据集或表的精细 BigQuery IAM 权限。如需了解详情,请参阅控制对数据集的访问权限控制对表和视图的访问权限

准备工作

  1. 在 Google Cloud 控制台中,前往 Dataform 页面。

    转到 Dataform 页面

  2. 选择或创建代码库

向 Dataform 中使用的服务帐号授予所需的 BigQuery 角色

如需将所需的 BigQuery IAM 角色授予您的默认 Dataform 服务帐号或要在 Dataform 中使用的自定义服务帐号,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 IAM 页面。

    进入 IAM 页面

  2. 点击授予访问权限

  3. 新的主账号字段中,输入服务帐号 ID。

  4. 选择角色下拉列表中,选择 BigQuery Job User 角色。

  5. 点击添加其他角色,然后在选择角色下拉列表中选择 BigQuery Data Editor 角色。

  6. 点击添加其他角色,然后在选择角色下拉列表中选择 BigQuery Data Viewer 角色。

  7. 点击保存

向自定义服务帐号授予令牌创建权限

如需在 Dataform 中使用自定义服务帐号,默认的 Dataform 服务帐号必须能够访问自定义服务帐号。如需授予此访问权限,您需要将默认的 Dataform 服务帐号作为主帐号添加到自定义服务帐号中,并授予 Service Account Token Creator 角色。

如需向默认的 Dataform 服务帐号授予对自定义服务帐号的访问权限,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 IAM > 服务帐号

    转到服务帐号页面

  2. 选择一个项目。

  3. 项目“YOUR_PROJECT_NAME”的服务账号页面上,选择一个服务帐号。

  4. 转到权限,然后点击授予访问权限

  5. 新的主账号字段中,输入您的默认 Dataform 服务帐号 ID。

  6. 选择角色下拉列表中,选择 Service Account Token Creator 角色。

  7. 点击保存

后续步骤