BigQuery 適用的 VPC Service Controls
本頁面說明如何使用 VPC Service Controls 建立服務範圍,進一步保護 BigQuery 資源。這些安全防護範圍會限制 BigQuery 的存取權,且與 Identity and Access Management (IAM) 控制項無關。這項功能在下列用途中相當實用:
- 限制資源存取權,防止資料外洩,但輸入和輸出規則中明確允許的資源除外。
- 從第三方來源或 Google Cloud 服務 (例如 Cloud Storage) 安全地將資料載入 BigQuery。
- 控管從 BigQuery 匯出至 Cloud Storage 或其他目標的資料。
詳情請參閱「VPC Service Controls 總覽」。
事前準備
- 如要取得設定 service perimeter 所需的權限,請參閱「透過 IAM 控管 VPC Service Controls 的存取權」。
- 您必須為機構設定存取權政策。詳情請參閱「建立存取權政策」。
建立 VPC Service Controls 範圍
以下範例說明如何建立 VPC Service Controls perimeter,限制可存取 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:service perimeter 的人類可讀標題
如要進一步瞭解如何建立存取層級,請參閱實作範例。
建立或更新安全防護範圍,保護 BigQuery 資源。以下範例會保護專案。如要瞭解其他用途,例如保護從其他專案的 Cloud Storage bucket 移轉的資料,請參閱使用案例。
建立範圍
如要建立新的安全防護範圍來保護 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:perimeter 的 IDTITLE:service perimeter 的簡短標題,方便使用者閱讀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。
測試 perimeter
請先測試 VPC Service Controls 範圍,再強制執行。詳情請參閱「service perimeter 的模擬測試模式」和「使用模擬測試模式測試輸入或輸出政策」。
用途
下列範例用途說明如何使用 VPC Service Controls,保護進出 BigQuery 的資料。
查詢其他專案中 Cloud Storage 值區的外部資料表資料
下列範例說明如何選擇性地允許 BigQuery 和 Cloud Storage 專案之間的通訊 (如果這些專案由 perimeter 分隔)。
更新 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 資源的 perimeter 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:perimeter 的 IDPOLICY_NAME:存取權政策的 ID
選用:如果保護 BigQuery 專案的 perimeter 包含
storage.googleapis.com做為受限服務,您必須更新 ingress 規則: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 設定。
後續步驟
- 進一步瞭解 BigQuery sharing 中的 VPC Service Controls。
- 瞭解如何使用外部雲端服務限制 BigQuery Omni 存取權。
- 瞭解風險,以及如何透過 VPC Service Controls 降低風險。
- 進一步瞭解 BigQuery 中的 VPC Service Controls 支援和限制。
- 排解 BigQuery 和 VPC Service Controls 的常見問題。