共用 VPC Service Controls 規則

本文說明您需要哪些輸入和輸出規則,才能讓 BigQuery sharing (原為 Analytics Hub) 中的發布者和訂閱者,存取具有 VPC Service Controls 邊界的專案資料。本文假設您已熟悉虛擬私有雲服務控制範圍共用資料集資料交換商家資訊連結資料集

呼叫端專案是指啟動要求的網路或用戶端專案,例如 SQL 查詢或 Google Cloud CLI 指令。

建立資料交換庫

在下圖中,包含資料交換和共用資料集的專案位於不同的服務安全防護範圍:

建立資料交換時的 VPC Service Controls 規則。

圖 1. 建立資料交換的 VPC Service Controls 規則。

圖 1 標示了下列元件:

  • 呼叫端是 BigQuery 共用管理員。
  • 專案 R 是呼叫端專案。
  • 專案 E 會代管資料交換和清單。

身為 BigQuery sharing 管理員,如果您在與呼叫端專案不同的專案中建立資料交換,則必須新增下列輸入和輸出規則:

專案 規則
Project R 專案 E 的輸出規則
專案 E (資料交換) 專案 R 的輸入規則

建立商家資訊

在下圖中,包含資料交換和共用資料集的專案位於不同的服務安全防護範圍:

建立房源資訊時的 VPC Service Controls 規則。

圖 2:建立房源資訊的 VPC Service Controls 規則。

圖 2 標示了下列元件:

  • 呼叫者是 BigQuery 共用管理員或發布者。
  • 專案 R 是呼叫端專案。
  • 專案 E 會代管資料交換和清單。
  • 專案 S 代管共用資料集。

如果您在資料交易平台中建立的項目與共用資料集位於不同專案,則必須新增下列輸入和輸出規則,允許 BigQuery 共用發布者建立項目:

專案 規則
Project R

專案 E 的輸出規則

專案 S 的輸出規則

專案 E (資料交換)

專案 S 的輸出規則

專案 R 的輸入規則

專案 S (共用資料集)

專案 E 的輸出規則

專案 R 的輸入規則

訂閱產品資訊

在下圖中,包含房源和該房源連結資料集的專案位於不同的服務範圍:

訂閱資訊時的 VPC Service Controls 規則。

圖 3:訂閱資訊的 VPC Service Controls 規則。

圖 3 標示了下列元件:

  • 呼叫端是 BigQuery 共用訂閱者。
  • 專案 R 是呼叫端專案。
  • 專案 E 會代管資料交換和清單。
  • 專案 L 代管連結的資料集。

如果您是 BigQuery 共用訂閱者,且訂閱的資料交易所屬專案與您的專案不同,則必須新增下列輸入和輸出規則:

專案 規則
Project R

專案 E 的輸出規則

專案 L 的輸出規則

專案 E (房源)

專案 L 的輸出規則

專案 R 的輸入規則

專案 L (連結的資料集)

專案 E 的輸出規則

專案 R 的輸入規則

查詢連結資料集中的資料表

在下圖中,呼叫端專案和包含連結資料集的專案位於不同的服務範圍:

在連結資料集中查詢資料表時,VPC Service Controls 規則。

圖 4:查詢連結資料集的 VPC Service Controls 規則。

圖 4 標示了下列元件:

  • 呼叫端是 BigQuery 共用訂閱者,或是連結資料集的任何 BigQuery 工作使用者。
  • 專案 R 是呼叫端專案。
  • 專案 L 代管連結的資料集。
  • 專案 V 包含含有該資料表的共用資料集。

身為 BigQuery 共用訂閱者,在查詢連結資料集中的資料表時,必須新增下列進入和退出規則:

專案 規則
Project R 專案 L 的輸出規則
專案 L (連結的資料集) 專案 R 的輸入規則

查詢連結資料集中的檢視表

情境 1

在下圖中,包含連結資料集的專案,以及與檢視區塊相關聯的基礎資料表,位於不同的服務範圍。檢視區塊 (專案 S) 和與檢視區塊相關聯的基礎資料表 (專案 V) 位於不同專案中:

檢視表和基礎資料表位於不同專案。

圖 5. 查詢連結資料集中的檢視區塊時,適用的 VPC Service Controls 規則。

圖 5 標示了下列元件:

  • 呼叫端是 BigQuery 共用訂閱者,或是連結資料集的任何 BigQuery 工作使用者。
  • 專案 R 是呼叫端專案。
  • 專案 L 代管連結的資料集。
  • 專案 S 代管共用資料集。
  • 專案 V 包含與檢視區塊相關聯的基礎資料表。

身為 BigQuery 共用訂閱者,在連結的資料集中查詢檢視區塊時,必須新增下列進入和退出規則:

專案 規則
Project R

專案 L 的輸出規則

專案 V 的輸出規則

專案 L (連結的資料集)

專案 R 的輸入規則

專案 V 的輸出規則

Project V

專案 L 的輸出規則

專案 R 的輸入規則

情境 2

在下圖中,檢視區塊 (專案 V) 和與檢視區塊 (專案 V) 相關聯的基礎資料表位於同一個專案中:

檢視表和基礎資料表位於同一個專案。

圖 6:查詢連結資料集中的檢視區塊時,適用的 VPC Service Controls 規則。

圖 6 標示了下列元件:

  • 呼叫端是 BigQuery 共用訂閱者,或是連結資料集的任何 BigQuery 工作使用者。
  • 專案 R 是呼叫端專案。
  • 專案 L 代管連結的資料集。
  • 專案 V 會代管檢視表和與檢視表相關聯的基礎資料表。

如果您是 BigQuery 共用訂閱者,在連結的資料集中查詢檢視區塊時,必須新增下列進入和退出規則:

專案 規則
Project R

專案 L 的輸出規則

專案 L (連結的資料集)

專案 R 的輸入規則

查詢連結資料集中的授權檢視表

在下圖中,授權檢視區塊和與授權檢視區塊相關聯的基礎資料表 (專案 V) 位於同一個專案中:

授權檢視區和基本資料表位於同一專案。

圖 7. 查詢連結資料集中的檢視區塊時,適用的 VPC Service Controls 規則。

圖 7 標示了下列元件:

  • 呼叫端是 BigQuery 共用訂閱者,或是連結資料集的任何 BigQuery 工作使用者。
  • 專案 R 是呼叫端專案。
  • 專案 L 代管連結的資料集。
  • 專案 V 會代管已授權檢視表,以及與該檢視表相關聯的基礎資料表。

身為 BigQuery 共用訂閱者,在連結的資料集中查詢檢視區塊時,必須新增下列進入和退出規則:

專案 規則
Project R

專案 L 的輸出規則

專案 L (連結的資料集)

專案 R 的輸入規則

限制

BigQuery 共用功能不支援以方法為準的規則。如要允許方法,必須允許所有方法。例如:

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

如果 BigQuery 資源也受到服務範圍保護,則必須允許 BigQuery 服務的輸入和輸出規則。建立資料交換時不需要這麼做。BigQuery 的輸入和輸出規則與 BigQuery 共用規則類似。例如:

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

後續步驟