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 同时需要读写权限的项目的 BigQuery Data Editor 访问权限。其中通常包括托管 Dataform 代码库的项目。
- 对 Dataform 需要只读访问权限的项目拥有 BigQuery Data Viewer 权限。
- 托管 Dataform 代码库的项目的 BigQuery Job User。
- BigQuery Data Owner(如果要查询 BigQuery 数据集)。
- 用于列级访问权限控制的 BigQuery 角色(如果您想使用 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 权限。如需了解详情,请参阅控制对数据集的访问权限和控制对表和视图的访问权限。
准备工作
在 Google Cloud 控制台中,前往 Dataform 页面。
选择或创建代码库。
向 Dataform 中使用的服务帐号授予所需的 BigQuery 角色
如需将所需的 BigQuery IAM 角色授予您的默认 Dataform 服务帐号或要在 Dataform 中使用的自定义服务帐号,请按以下步骤操作:
在 Google Cloud 控制台中,转到 IAM 页面。
点击授予访问权限。
在新的主帐号字段中,输入服务帐号 ID。
在选择角色下拉列表中,选择 BigQuery Job User 角色。
点击添加其他角色,然后在选择角色下拉列表中选择 BigQuery Data Editor 角色。
点击添加其他角色,然后在选择角色下拉列表中选择 BigQuery Data Viewer 角色。
点击保存。
向自定义服务帐号授予令牌创建权限
如需在 Dataform 中使用自定义服务帐号,默认的 Dataform 服务帐号必须能够访问自定义服务帐号。如需授予此访问权限,您需要将默认的 Dataform 服务帐号作为主账号添加到具有 Service Account Token Creator 角色的自定义服务帐号中。
如需向默认 Dataform 服务帐号授予对自定义服务帐号的访问权限,请按以下步骤操作:
在 Google Cloud 控制台中,转到 IAM > 服务帐号。
选择一个项目。
在项目“YOUR_PROJECT_NAME”的服务帐号页面上,选择您的自定义 Dataform 服务帐号。
转到权限,然后点击授予访问权限。
在新的主帐号字段中,输入您的默认 Dataform 服务帐号 ID。
您的默认 Dataform 服务帐号 ID 采用以下格式:
service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
在选择角色下拉列表中,选择 Service Account Token Creator 角色。
点击保存。
后续步骤
- 如需详细了解 BigQuery IAM 角色和权限,请参阅使用 IAM 进行访问权限控制。
- 如需详细了解如何向 BigQuery 数据集授予细化的权限,请参阅控制对数据集的访问权限。
- 如需详细了解如何向 BigQuery 表授予细化的权限,请参阅控制对表和视图的访问权限。
- 如需了解如何使用 VPC Service Controls 控制 Dataform 访问权限,请参阅为 Dataform 配置 VPC Service Controls。