将 VPC Service Controls 与数据产品搭配使用

VPC Service Controls 可让您定义服务边界,以帮助防止数据产品中的数据渗漏。您可以配置入站和出站规则,以将数据产品、数据资产和用户之间的通信保持在授权边界内。

VPC Service Controls 如何与数据产品搭配使用

数据产品是资源(称为数据资产)的逻辑分组,可以跨多个项目。如果您的项目属于不同的 VPC Service Controls 边界,则必须配置入站和出站规则,以便 Dataplex API 可以跨边界管理资源和元数据。

准备工作

用于创建数据产品的服务边界规则

以下项目定义了跨服务边界创建数据产品所需的通信边界:

  • 项目 R(调用方):发起创建请求的用户、服务账号或应用所在的项目。

  • 项目 E(数据产品):托管数据产品资源的项目。

一张显示两个服务边界的插图。边界 1 包含项目 R(调用方),边界 2 包含项目 E(数据产品)。

如需在调用方项目以外的项目中创建数据产品,请配置以下入站流量和出站流量规则:

项目 必须提供规则
项目 R 项目 E 的出站规则
项目 E 项目 R 的入站规则

用于管理数据资产的服务边界规则

管理数据资产(例如将 BigQuery 表添加到数据产品)时,该架构涉及三种不同的项目角色:

  • 项目 R(调用方):发起资产管理请求的项目。

  • 项目 D(数据产品):托管对资产进行分组的数据产品的项目。数据产品中的资产是指向物理数据资源(例如 BigQuery 数据集、表或视图)的指针。一个数据产品可以包含一个或多个资产。

  • 项目 S(源资源):实际数据资源所在的项目。

显示三个服务边界的插图。边界 1 包含项目 R(调用方),边界 2 包含项目 D(数据产品),边界 3 包含项目 S(源资源)。

当您添加或管理与数据产品位于不同项目中的数据资产时,必须通过配置以下入站和出站规则来桥接所有三个项目之间的通信:

项目 必须提供规则
项目 R 项目 D 的出站规则
项目 S 的出站规则
项目 D 项目 R 的入站规则
项目 S 的出站规则
Project S 项目 R 的入站规则
项目 D 的入站规则

用于向数据产品添加切面和元数据的服务边界规则

以下项目定义了跨服务边界将元数据和切面附加到数据产品所需的通信边界:

  • 项目 R(调用方):发起附加切面请求的项目。

  • 项目 D(数据产品):托管接收切面的数据产品的项目。

  • 项目 A(切面类型):定义和存储特定切面类型(元数据架构)的项目。

显示三个服务边界的插图。边界 1 包含项目 R(调用方),边界 2 包含项目 D(数据产品),边界 3 包含项目 A(切面类型)。

如需在这些项目位于单独的边界时附加切面,请配置以下入站和出站规则:

项目 必须提供规则
项目 R 项目 D 的出站规则
项目 A 的出站规则
项目 D 项目 R 的入站规则
项目 A 的出站规则
项目 A 项目 R 的入站规则
项目 D 的入站规则

用于使用数据产品的服务边界规则

为了让数据产品使用方能够访问受 VPC Service Controls 保护的数据产品,您必须将使用方项目或特定用户身份列入许可清单。 如需向数据产品使用者授予此访问权限,请在数据产品的服务边界中配置入站流量规则。

限制

  • 数据产品不支持基于方法的规则。为确保功能正常,您必须在入站流量和出站流量规则中允许 dataplex.googleapis.com 服务的所有方法 (*)。例如:

    ingressTo:
    operations:
    - methodSelectors:
      - method: '*'
      serviceName: dataplex.googleapis.com
    resources:
    - projects/PROJECT_ID
    
  • 如果您的底层 BigQuery 资源受服务边界保护,则必须为 bigquery.googleapis.com 服务配置入站和出站规则。例如:

    ingressTo:
    operations:
    - methodSelectors:
      - method: '*'
      serviceName: bigquery.googleapis.com
    resources:
    - projects/PROJECT_ID
    

后续步骤