BigQuery 的 VPC Service Controls
本頁面說明如何透過 VPC Service Controls 建立範圍,強化 BigQuery 資源的安全性。這些範圍會限制 BigQuery 的存取權,且與身分與存取權管理 (IAM) 控管無關。在下列用途中相當實用:
- 限制資源存取權,防止資料外洩,但輸入和輸出規則中明確允許的資源除外。
- 從第三方來源或 Google Cloud 服務 (例如 Cloud Storage) 安全地將資料載入 BigQuery。
- 控制從 BigQuery 匯出至 Cloud Storage 或其他目標的資料。
詳情請參閱 VPC Service Controls 總覽。
事前準備
- 如要取得設定服務範圍所需的權限,請參閱 VPC Service Controls 的使用 IAM 的存取權控管。
- 您必須為貴機構建立存取權政策。詳情請參閱「建立存取權政策」。
建立 VPC Service Controls 範圍
以下範例說明如何建立 VPC Service Controls 範圍,限制可存取 BigQuery 專案的外部 IP 位址範圍。
建立只允許從特定 IP 位址範圍 (例如公司網路內的 IP 位址) 存取的存取層級。如要建立此檔案,請使用
gcloud access-context-manager levels create
指令:echo """ - ipSubnetworks: - 162.222.181.0/24 - 2001:db8::/48 """ > level.yaml gcloud access-context-manager levels create ACCESS_LEVEL_NAME \ --title="TITLE" --basic-level-spec=level.yaml
更改下列內容:
ACCESS_LEVEL_NAME
:存取層級的 IDTITLE
:服務範圍的易讀標題
如要進一步瞭解如何建立存取層級,請參閱實作範例。
建立或更新外圍,保護 BigQuery 資源。以下範例會保護專案。如要瞭解其他用途,例如保護從其他專案的 Cloud Storage 值區進行的資料移轉作業,請參閱用途。
建立範圍
如要建立新的邊界來保護 BigQuery 專案,請使用
gcloud access-context-manager perimeters create
指令:echo """ - ingressFrom: identityType: ANY_IDENTITY sources: - accessLevel: accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME ingressTo: operations: - methodSelectors: - method: '*' serviceName: bigquery.googleapis.com resources: - '*' """ > ingress.yaml gcloud access-context-manager perimeters create BIGQUERY_PERIMETER --title="TITLE" \ --resources=BIGQUERY_PROJECT_NUMBER \ --restricted-services=bigquery.googleapis.com \ --ingress-policies=ingress.yaml --policy=POLICY_NAME
更改下列內容:
POLICY_NAME
:存取權政策的 IDACCESS_LEVEL_NAME
:存取層級的 IDPERIMETER
:周界 IDTITLE
:服務範圍的簡短、易讀標題BIGQUERY_PROJECT_NUMBER
:BigQuery 專案的 IDPOLICY_NAME
:存取權政策的 ID
更新範圍
如要更新現有範圍,請使用
gcloud access-context-manager perimeters update
指令:gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --set-ingress-policies=ingress.yaml
將
BIGQUERY_PERIMETER
替換為保護 BigQuery 資源的週邊 ID。
測試周邊
請先測試 VPC Service Controls 範圍,再強制執行。如需更多資訊,請參閱「服務邊界模擬執行模式」和「使用模擬執行模式測試入站或出站政策」。
用途
以下範例用途說明如何使用 VPC Service Controls 保護 BigQuery 進出資料。
查詢其他專案中 Cloud Storage 值區的外部資料表資料
以下範例說明如何在 BigQuery 和 Cloud Storage 專案之間建立邊界時,選擇性允許兩者之間的通訊。
更新 Cloud Storage 專案範圍的輸出規則,允許 BigQuery 專案存取 Cloud Storage 專案:
echo """ - egressFrom: identityType: ANY_IDENTITY egressTo: operations: - methodSelectors: - method: '*' serviceName: storage.googleapis.com resources: - projects/BIGQUERY_PROJECT_NUMBER """ > egress.yaml gcloud access-context-manager perimeters update CLOUD_STORAGE_PERIMETER --policy=POLICY_NAME --set-egress-policies=egress.yaml
更改下列內容:
BIGQUERY_PROJECT_NUMBER
:BigQuery 專案的 IDCLOUD_STORAGE_PERIMETER
:保護 Cloud Storage 資源的邊界 IDPOLICY_NAME
:存取權政策的 ID
更新 BigQuery 專案周圍邊界區域的輸出規則,允許 Cloud Storage 專案存取 BigQuery 專案:
echo """ - egressFrom: identityType: ANY_IDENTITY egressTo: operations: - methodSelectors: - method: '*' serviceName: storage.googleapis.com resources: - projects/CLOUD_STORAGE_PROJECT_NUMBER """ > egress1.yaml gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --policy=POLICY_NAME --set-egress-policies=egress1.yaml
更改下列內容:
CLOUD_STORAGE_PROJECT_NUMBER
:Cloud Storage 專案的 IDPERIMETER
:周界 IDPOLICY_NAME
:存取權政策的 ID
選用:如果保護 BigQuery 專案的範圍將
storage.googleapis.com
列為受限制的服務,則必須更新入站規則:echo """ - ingressFrom: identityType: ANY_IDENTITY sources: - accessLevel: accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME ingressTo: operations: - methodSelectors: - method: '*' serviceName: bigquery.googleapis.com - methodSelectors: - method: '*' serviceName: storage.googleapis.com resources: - '*' """ > ingress.yaml gcloud access-context-manager perimeters create BIGQUERY_PERIMETER --title="TITLE" \ --resources=BIGQUERY_PROJECT_NUMBER \ --restricted-services=bigquery.googleapis.com \ --ingress-policies=ingress.yaml --policy=POLICY_NAME
從 BigQuery Omni 匯入及匯出資料
您可以使用 VPC Service Controls 範圍,在 BigQuery Omni 與外部雲端服務之間設下額外防護層,限制存取權。如需詳細資訊和範例,請參閱建立 Azure Blob Storage BigLake 資料表時的 VPC Service Controls 設定。
後續步驟
- 進一步瞭解 數據分析中心中的 VPC Service Controls。
- 瞭解如何透過外部雲端服務限制 BigQuery Omni 存取權。
- 瞭解透過 VPC Service Controls 降低風險。
- 進一步瞭解 BigQuery 中的 VPC Service Controls 支援情形和限制。
- 排解 BigQuery 和 VPC Service Controls 的常見問題。