共用 VPC Service Controls 規則
本文說明您需要哪些輸入和輸出規則,才能讓 BigQuery sharing (原為 Analytics Hub) 中的發布者和訂閱者,存取具有 VPC Service Controls 邊界的專案資料。本文假設您已熟悉虛擬私有雲服務控制範圍、共用資料集、資料交換、商家資訊和連結資料集。
呼叫端專案是指啟動要求的網路或用戶端專案,例如 SQL 查詢或 Google Cloud CLI 指令。
建立資料交換庫
在下圖中,包含資料交換和共用資料集的專案位於不同的服務安全防護範圍:
圖 1. 建立資料交換的 VPC Service Controls 規則。
圖 1 標示了下列元件:
- 呼叫端是 BigQuery 共用管理員。
- 專案 R 是呼叫端專案。
- 專案 E 會代管資料交換和清單。
身為 BigQuery sharing 管理員,如果您在與呼叫端專案不同的專案中建立資料交換,則必須新增下列輸入和輸出規則:
| 專案 | 規則 |
|---|---|
| Project R | 專案 E 的輸出規則 |
| 專案 E (資料交換) | 專案 R 的輸入規則 |
建立商家資訊
在下圖中,包含資料交換和共用資料集的專案位於不同的服務安全防護範圍:
圖 2:建立房源資訊的 VPC Service Controls 規則。
圖 2 標示了下列元件:
- 呼叫者是 BigQuery 共用管理員或發布者。
- 專案 R 是呼叫端專案。
- 專案 E 會代管資料交換和清單。
- 專案 S 代管共用資料集。
如果您在資料交易平台中建立的項目與共用資料集位於不同專案,則必須新增下列輸入和輸出規則,允許 BigQuery 共用發布者建立項目:
| 專案 | 規則 |
|---|---|
| Project R |
專案 E 的輸出規則 專案 S 的輸出規則 |
| 專案 E (資料交換) |
專案 S 的輸出規則 專案 R 的輸入規則 |
| 專案 S (共用資料集) |
專案 E 的輸出規則 專案 R 的輸入規則 |
訂閱產品資訊
在下圖中,包含房源和該房源連結資料集的專案位於不同的服務範圍:
圖 3:訂閱資訊的 VPC Service Controls 規則。
圖 3 標示了下列元件:
- 呼叫端是 BigQuery 共用訂閱者。
- 專案 R 是呼叫端專案。
- 專案 E 會代管資料交換和清單。
- 專案 L 代管連結的資料集。
如果您是 BigQuery 共用訂閱者,且訂閱的資料交易所屬專案與您的專案不同,則必須新增下列輸入和輸出規則:
| 專案 | 規則 |
|---|---|
| Project R |
專案 E 的輸出規則 專案 L 的輸出規則 |
| 專案 E (房源) |
專案 L 的輸出規則 專案 R 的輸入規則 |
| 專案 L (連結的資料集) |
專案 E 的輸出規則 專案 R 的輸入規則 |
查詢連結資料集中的資料表
在下圖中,呼叫端專案和包含連結資料集的專案位於不同的服務範圍:
圖 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