Analytics Hub VPC Service Controls 规则

本文档介绍允许发布者和订阅者访问具有 VPC Service Controls 边界的项目中的数据所需的入站和出站规则。

本文档假定您熟悉 VPC Service Controls 边界共享数据集数据交换清单关联的数据集调用者项目是发起请求(例如 SQL 查询或 Google Cloud CLI 命令)的网络或客户端项目。

创建数据交换

在下图中,包含数据交换和共享数据集的项目位于不同的服务边界内:

创建数据交换时的 VPC Service Controls 规则。

图 1. 用于创建数据交换的 VPC Service Controls 规则。

在图 1 中,以下组件已加标签:

  • 调用者是 Analytics Hub 管理员。
  • 项目 R 是调用者项目。
  • 项目 E 托管 Analytics Hub 数据交换和清单。

作为 Analytics Hub 管理员,当您在调用者项目以外的项目中创建数据交换时,必须添加以下入站和出站规则:

项目 规则
项目 R 项目 E 的出站规则
项目 E(数据交换) 项目 R 的入站规则

创建清单

在下图中,包含数据交换和共享数据集的项目位于不同的服务边界内:

创建清单时的 VPC Service Controls 规则。

图 2. 用于创建清单的 VPC Service Controls 规则。

在图 2 中,以下组件已加标签:

  • 调用者是 Analytics Hub 管理员或发布者。
  • 项目 R 是调用者项目。
  • 项目 E 托管 Analytics Hub 数据交换和清单。
  • 项目 S 托管共享数据集。

当您在与共享数据集属于不同项目的数据交换中创建清单时,必须添加以下入站和出站规则以允许发布者创建清单:

项目 规则
项目 R

项目 E 的出站规则

项目 S 的出站规则

项目 E(数据交换)

项目 S 的出站规则

项目 R 的入站规则

项目 S(共享数据集)

项目 E 的出站规则

项目 R 的入站规则

订阅清单

在下图中,包含清单的项目与包含该清单的关联数据集的项目位于不同的服务边界内:

订阅清单时的 VPC Service Controls 规则。

图 3.用于订阅清单的 VPC Service Controls 规则。

在图 3 中,以下组件已加标签:

  • 调用者是 Analytics Hub 订阅者。
  • 项目 R 是调用者项目。
  • 项目 E 托管 Analytics Hub 数据交换和清单。
  • 项目 L 托管关联的数据集。

作为 Analytics Hub 订阅者,当您订阅与您的项目不同的项目中的数据交换的清单时,必须添加以下入站和出站规则:

项目 规则
项目 R

项目 E 的出站规则

项目 L 的出站规则

项目 E(清单)

项目 L 的出站规则

项目 R 的入站规则

项目 L(关联的数据集)

项目 E 的出站规则

项目 R 的入站规则

在关联的数据集中查询表

在下图中,调用者项目和包含关联数据集的项目位于不同的服务边界内:

在关联的数据集中查询表时的 VPC Service Controls 规则。

图 4. 用于在关联的数据集中查询表的 VPC Service Controls 规则。

在图 4 中,以下组件已加标签:

  • 调用者是 Analytics Hub 订阅者或关联数据集的任何 BigQuery 作业用户。
  • 项目 R 是调用者项目。
  • 项目 L 托管关联的数据集。
  • 项目 V 托管包含表的共享数据集。

作为 Analytics Hub 订阅者,当您在关联的数据集中查询表时,必须添加以下入站和出站规则:

项目 规则
项目 R 项目 L 的出站规则
项目 L(关联的数据集) 项目 R 的入站规则

在关联的数据集中查询视图

场景 1

在下图中,包含关联数据集的项目与关联到视图的基表位于不同的服务边界。视图(项目 S)与关联到视图(项目 V)的基表位于不同的项目中:

视图和基表位于不同的项目中。

图 5. 用于在关联的数据集中查询视图的 VPC Service Controls 规则。

在图 5 中,以下组件已加标签:

  • 调用者是 Analytics Hub 订阅者或关联数据集的任何 BigQuery 作业用户。
  • 项目 R 是调用者项目。
  • 项目 L 托管关联的数据集。
  • 项目 S 托管共享数据集。
  • 项目 V 托管包含与视图关联的基表的数据集。

作为 Analytics Hub 订阅者,当您在关联的数据集中查询视图时,必须添加以下入站和出站规则:

项目 规则
项目 R

项目 L 的出站规则

项目 V 的出站规则

项目 L(关联的数据集)

项目 R 的入站规则

项目 V 的出站规则

项目 V

项目 L 的出站规则

项目 R 的入站规则

场景 2

在下图中,视图(项目 S)与关联到视图(项目 V)的基表位于同一项目中:

视图和基表位于同一项目中。

Figure 6. 用于在关联的数据集中查询视图的 VPC Service Controls 规则。

在图 6 中,以下组件已加标签:

  • 调用者是 Analytics Hub 订阅者或关联数据集的任何 BigQuery 作业用户。
  • 项目 R 是调用者项目。
  • 项目 L 托管关联的数据集。
  • Project V 同时托管视图以及与视图关联的基表。

作为 Analytics Hub 订阅者,当您在关联的数据集中查询视图时,必须添加以下入站和出站规则:

项目 规则
项目 R

项目 L 的出站规则

项目 L(关联的数据集)

项目 R 的入站规则

在关联的数据集中查询授权视图

在下图中,已获授权的视图以及与已获授权的视图关联的基表(项目 V)位于同一项目中:

已获授权的视图和基表位于同一项目中。

图 8.用于在关联的数据集中查询视图的 VPC Service Controls 规则。

在图 8 中,以下组件已加标签:

  • 调用者是 Analytics Hub 订阅者或关联数据集的任何 BigQuery 作业用户。
  • 项目 R 是调用者项目。
  • 项目 L 托管关联的数据集。
  • Project V 同时托管视图以及与已获授权视图关联的基表。

作为 Analytics Hub 订阅者,当您在关联的数据集中查询视图时,必须添加以下入站和出站规则:

项目 规则
项目 R

项目 L 的出站规则

项目 L(关联的数据集)

项目 R 的入站规则

限制

Analytics Hub 不支持基于方法的规则。如需允许方法,您必须允许所有方法。例如:

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

后续步骤