搭配資料產品使用 VPC Service Controls

VPC Service Controls 可讓您定義 service perimeter,防止資料產品中的資料遭到竊取。您可以設定輸入和輸出規則,將資料產品、資料資產和使用者之間的通訊限制在授權範圍內。

VPC Service Controls 如何與資料產品搭配運作

資料產品是資源的邏輯群組,稱為資料資產,可跨越多個專案。如果專案屬於不同的 VPC Service Controls perimeter,您必須設定輸入和輸出規則,讓 Dataplex API 能夠管理跨 perimeter 的資源和中繼資料。

事前準備

建立資料產品的 service perimeter 規則

下列專案定義了建立跨 service perimeter 資料產品所需的通訊邊界:

  • 專案 R (呼叫端):使用者、服務帳戶或應用程式所在的專案,用於發出建立要求。

  • 專案 E (資料產品):託管資料產品資源的專案。

插圖:顯示兩個 service perimeter。Perimeter 1 包含專案 R (呼叫端),Perimeter 2 則包含專案 E (資料產品)。

如要在呼叫端專案以外的專案中建立資料產品,請設定下列輸入和輸出規則:

專案 必須設定規則
Project R 專案 E 的輸出規則
專案 E 專案 R 的輸入規則

管理資料資產的 service perimeter 規則

管理資料資產 (例如將 BigQuery 資料表新增至資料產品) 時,架構會涉及三個不同的專案角色:

  • 專案 R (呼叫端):發起資產管理要求的專案。

  • 專案 D (資料產品):託管資料產品的專案,用於將資產分組。資料產品中的資產是指向實體資料資源的指標,例如 BigQuery 資料集、資料表或檢視表。資料產品可包含一或多項資產。

  • 專案 S (來源資源):實際資料資源所在的專案。

插圖:顯示三個 service perimeter。Perimeter 1 包含專案 R (呼叫端),Perimeter 2 包含專案 D (資料產品),Perimeter 3 包含專案 S (來源資源)。

新增或管理資料資產時,如果資料資產與資料產品位於不同專案,您必須設定下列輸入和輸出規則,連結這三個專案之間的通訊:

專案 必須設定規則
Project R 專案 D 的輸出規則
專案 S 的輸出規則
專案 D 專案 R 的輸入規則
專案 S 的輸出規則
Project S 專案 R 的輸入規則
專案 D 的輸入規則

將切面和中繼資料新增至資料產品的 service perimeter 規則

下列專案定義了通訊邊界,以便跨 service perimeter 將中繼資料和切面附加至資料產品:

  • 專案 R (呼叫端):發起要求附加切面的專案。

  • 專案 D (資料產品):託管資料產品的專案,該產品會接收切面。

  • 專案 A (切面類型):定義及儲存特定切面類型 (中繼資料結構定義) 的專案。

插圖:顯示三個 service perimeter。Perimeter 1 包含專案 R (呼叫端),perimeter 2 包含專案 D (資料產品),perimeter 3 包含專案 A (切面類型)。

如要在這些專案位於不同 perimeter 時附加切面,請設定下列輸入和輸出規則:

專案 必須設定規則
Project R 專案 D 的輸出規則
專案 A 的輸出規則
專案 D 專案 R 的輸入規則
專案 A 的輸出規則
專案 A 專案 R 的輸入規則
專案 D 的輸入規則

使用資料產品的 service perimeter 規則

如要讓資料產品消費者存取受 VPC Service Controls 保護的資料產品,您必須將消費者專案或特定使用者身分加入許可清單。如要將這項存取權授予資料產品消費者,請在資料產品的 service perimeter 設定輸入規則。

限制

  • 資料產品不支援以方法為基礎的規則。為確保功能正常運作,您必須在輸入和輸出規則中,允許 dataplex.googleapis.com 服務的所有方法 (*)。例如:

    ingressTo:
    operations:
    - methodSelectors:
      - method: '*'
      serviceName: dataplex.googleapis.com
    resources:
    - projects/PROJECT_ID
    
  • 如果基礎 BigQuery 資源受到 service perimeter 保護,您必須為 bigquery.googleapis.com 服務設定輸入和輸出規則。例如:

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

後續步驟