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 项目。您可以在以下位置找到您的 Google Cloud 项目 ID: Google Cloud 控制台信息中心。如需了解详情,请参阅识别项目。
除了默认的 Dataform 服务账号外,您还可以使用 其他服务账号代表您执行工作流。您可以配置 自定义服务账号:
创建 Dataform 代码库或工作流配置时,您可以 选择与您的 Google Cloud 项目关联的任意服务账号, 访问权限。您必须为所有服务账号配置所需权限 与 Dataform 资源相关联。
与 Dataform 关联的自定义服务账号 仅用于从该仓库执行工作流。所有其他 代码库操作仍由默认 Dataform 执行 服务账号。
Dataform 服务账号所需的角色
Dataform 中使用的默认服务账号和自定义服务账号需要 符合以下所有条件的 BigQuery IAM 角色 BigQuery 中的工作流:
- BigQuery 数据编辑者 。 其中通常包括托管 Dataform 代码库的项目。
- BigQuery 数据查看者 (针对 Dataform 需要只读访问权限的项目)。
- BigQuery 作业用户 对托管 Dataform 代码库的项目执行此步骤。
- BigQuery 数据所有者 查询 BigQuery 数据集。
- 用于列级访问权限控制的 BigQuery 角色(如果您想使用 BigQuery 政策标记)。
此外,您还需要授予默认的 Dataform 服务账号
Service Account Token Creator(roles/iam.serviceAccountTokenCreator
)
对要在 Dataform 中使用的任何自定义服务账号的访问权限。
Dataform 服务账号的安全注意事项
将 Dataform 所需的角色授予服务账号 需要注意以下安全注意事项:
被授予所需角色的任何服务账号都可以获得 该服务账号所属的项目中的 BigQuery 或 Secret Manager 所有项目,无论 VPC Service Controls 为何
如需了解详情,请参阅 为 Dataform 配置 VPC Service Controls。
拥有
dataform.repositories.create
IAM 的任何用户 权限,可以使用默认的 Dataform 服务执行代码 以及授予该服务账号的所有权限如需了解详情,请参阅 Dataform 权限的安全注意事项。
限制用户或服务账号可以读取或写入的数据 您可以授予 授予所选的 BigQuery 数据集或表。如需了解详情,请参阅 控制对数据集的访问权限和 控制对表和视图的访问权限。
准备工作
在 Google Cloud 控制台中,前往 Dataform 页面。
选择或创建代码库。
向 Dataform 中使用的服务账号授予所需的 BigQuery 角色
要将所需的 BigQuery IAM 角色授予 默认 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。