VPC Service Controls 是 Google Cloud 的一项功能 允许您设置一个边界来防止数据渗漏。 本指南介绍了如何将 VPC Service Controls 与 Dataform 搭配使用, 可帮助提高服务的安全性
VPC Service Controls 为 不依赖于 Identity and Access Management (IAM)。
如需详细了解 VPC Service Controls,请参阅 VPC Service Controls 概览。
限制
Dataform 通过以下功能支持 VPC Service Controls 限制:
Dataform 和 BigQuery 必须受到相同的限制 VPC Service Controls 服务边界。
安全注意事项
为 Dataform 设置 VPC Service Controls 边界时, 您应检查向 Dataform 服务授予的权限 账号,并确保其符合您的安全架构。
根据您向 Dataform 服务账号授予的权限, 该服务账号可能有权访问 BigQuery 服务账号所属项目中的 Secret Manager 数据, 无论 VPC Service Controls 为何在这种情况下 使用 VPC Service Controls 边界限制 Dataform 不会阻止与 BigQuery 或 Secret Manager 的通信。
如果不需要,则应阻止与 BigQuery 的通信 执行源自您的 Dataform 代码库的任何工作流调用。 如需详细了解如何阻止与 BigQuery,请参阅块与 BigQuery 通信。
如果您没有任何 Dataform 代码库会连接到第三方 Git 代码库。 如需详细了解如何阻止与 Secret Manager 的通信, 请参阅禁止与 Secret Manager 通信。
准备工作
为 Cloud Storage 存储分区配置 VPC Service Controls 服务边界之前的准备工作
Dataform 中,请按照
限制远程仓库指南
设置 dataform.restrictGitRemotes
组织政策。
必须使用 dataform.restrictGitRemotes
组织政策,
在使用 Cloud VPN 时执行 VPC Service Controls 检查
Dataform 以及对 Dataform Git 的第三方访问权限
受到限制
所需的角色
如需获取配置 VPC Service Controls 服务边界所需的权限,
请让管理员向您授予
项目的 Access Context Manager Editor (roles/accesscontextmanager.policyEditor
) IAM 角色。
如需详细了解如何授予角色,请参阅管理访问权限。
如需详细了解 VPC Service Controls 权限,请参阅 使用 IAM 进行访问权限控制。
配置 VPC Service Controls
您可以使用 VPC Service Controls 服务边界限制 Dataform 方式:
- 将 Dataform 添加到限制 BigQuery。
- 创建一个同时限制 Dataform 和 BigQuery。
要将 Dataform 添加到限制 请参阅 更新服务边界 指南。
创建一个新的服务边界来限制 Dataform 和 BigQuery,请遵循 创建服务边界 指南。
可选:禁止与 BigQuery 通信
Dataform 与 BigQuery 的通信方式取决于 Dataform 中使用的服务账号类型。
默认的 Dataform 服务账号使用的是 bigquery.jobs.create
与 BigQuery 通信的权限。您授予默认
Dataform 服务账号角色包含
您在授予所需的角色时,
用于在 BigQuery 中运行 SQL 工作流的 Dataform。
阻止默认 Dataform 服务账号之间的通信
您需要撤消所有预定义角色和自定义角色
包含 bigquery.jobs.create
权限,该权限已授予
默认 Dataform 服务账号。要撤消角色,请按照
管理对项目、文件夹和组织的访问权限
指南。
自定义 Dataform 服务账号 与 BigQuery 通信的权限和角色:
- 提供给自定义服务账号的
bigquery.jobs.create
权限。 - Service Account Token Creator (
roles/iam.serviceAccountTokenCreator
) 角色。 授予自定义服务账号的默认 Dataform 服务账号的权限。
您可以阻止自定义 Dataform 服务之间的通信 账号和 BigQuery:
撤消 Service Account Token Creator (
roles/iam.serviceAccountTokenCreator
) 角色,授予默认服务账号 针对所选自定义 Dataform 服务账号凭据。要撤消 服务账号令牌创建者 (roles/iam.serviceAccountTokenCreator
) 角色,请遵循 管理对服务账号的访问权限 指南。撤消在项目级授予的所有预定义角色和自定义角色 包含
bigquery.jobs.create
权限。要撤消角色,请按照 管理对项目、文件夹和组织的访问权限 指南。
以下代码中包含 bigquery.jobs.create
权限:
预定义的 BigQuery IAM 角色
:
- BigQuery Admin (
roles/bigquery.admin
) - BigQuery Job User (
roles/bigquery.jobUser
) - BigQuery User (
roles/bigquery.user
) - BigQuery Studio 管理员 (
roles/bigquery.studioAdmin
) - BigQuery Studio User (
roles/bigquery.studioUser
)
可选:禁止与 Secret Manager 通信
Dataform 使用 secretmanager.versions.access
权限来:
可以访问各个 Secret Manager Secret。您授予了此权限
数据库上的默认 Dataform 服务账号
创建 Secret Manager Secret
将 Dataform 代码库连接到第三方代码库。
如需阻止 Dataform 与 Secret Manager 之间的通信,请执行以下操作: 您需要撤消对默认 Dataform 中所有 Secret 的访问权限 服务账号。
如需撤消默认对 Secret Manager Secret 的访问权限,请执行以下操作:
Dataform 服务账号
请参阅管理对 Secret 的访问权限
指南。您必须撤消所有
预定义角色和自定义角色,
secretmanager.versions.access
权限,授予默认值
所选 Secret 的 Dataform 服务账号。
以下代码中包含 secretmanager.versions.access
权限:
预定义的 Secret Manager IAM 角色:
- Secret Manager 管理员 (
roles/secretmanager.admin
) - Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor
) - Secret Manager Secret 版本管理器 (
roles/secretmanager.secretVersionManager
)
后续步骤
- 如需详细了解 VPC Service Controls,请参阅 VPC Service Controls 概览。
- 如需详细了解组织政策,请参阅 组织政策服务简介。
- 如需详细了解 Dataform 中的服务账号,请参阅 Dataform 中的服务账号简介。