用途:使用命名空間服務帳戶控管存取權

本頁說明從 Cloud Storage 移轉資料至 BigQuery 時,在命名空間層級控管資源存取權的用途。 Google Cloud

如要控管 Google Cloud 資源的存取權,Cloud Data Fusion 中的命名空間預設會使用 Cloud Data Fusion API 服務代理人

為提升資料隔離效果,您可以將自訂 IAM 服務帳戶 (稱為「每個命名空間的服務帳戶」) 與每個命名空間建立關聯。自訂 IAM 服務帳戶 (不同命名空間可使用不同帳戶) 可讓您控管 Cloud Data Fusion 中管道設計階段作業的命名空間間資源存取權,例如管道預覽、Wrangler 和管道驗證。Google Cloud

詳情請參閱「使用命名空間服務帳戶控管存取權」一文。

情境

在本用途中,行銷部門會使用 Cloud Data Fusion,將資料從 Cloud Storage 遷移至 BigQuery。

資料管道,顯示 Cloud Storage 來源、Wrangler 轉換和 BigQuery 接收器。

行銷部門有 A、B 和 C 三個團隊。 您的目標是建立結構化方法,透過對應各團隊 (A、B 和 C) 的 Cloud Data Fusion 命名空間,控管 Cloud Storage 中的資料存取權。

解決方案

下列步驟說明如何使用命名空間服務帳戶控管 Google Cloud 資源存取權,防止不同團隊的資料儲存區之間發生未經授權的存取行為。

將身分與存取權管理服務帳戶與每個命名空間建立關聯

為每個團隊設定命名空間中的 IAM 服務帳戶 (請參閱「設定命名空間服務帳戶」):

  1. 新增團隊 A 的自訂服務帳戶 (例如 team-a@pipeline-design-time-project.iam.gserviceaccount.com),設定存取權控管。

    為 A 團隊設定服務帳戶。
    圖 1:為 A 團隊新增自訂服務帳戶。
  2. 針對 Teams B 和 C 重複執行設定步驟,使用類似的自訂服務帳戶設定存取權控管。

限制 Cloud Storage 值區的存取權

授予適當權限,限制 Cloud Storage 值區的存取權:

  1. 授予 IAM 服務帳戶storage.buckets.list權限,以便列出專案中的 Cloud Storage 值區。詳情請參閱列出值區
  2. 授予 IAM 服務帳戶存取特定 bucket 中物件的權限。

    舉例來說,在 bucket team_a1 上,將Storage 物件檢視者角色授予與命名空間 team_A 相關聯的 IAM 服務帳戶。這個權限可讓 A 團隊在獨立的設計階段環境中,查看及列出該 bucket 中的物件和代管資料夾,以及這些項目的中繼資料。

    在「Bucket details」(Bucket 詳細資料) 頁面中授予角色。
    圖 2:在 Cloud Storage 的「Buckets」(值區) 頁面中,將團隊新增為主體,並指派 Storage 物件使用者角色。

在各自的命名空間中建立 Cloud Storage 連線

在每個團隊的命名空間中建立 Cloud Storage 連線:

  1. 前往 Google Cloud 控制台的 Cloud Data Fusion「Instances」(執行個體) 頁面,然後在 Cloud Data Fusion 網頁介面中開啟執行個體。

    前往「Instances」(執行個體) 頁面

  2. 依序點選「系統管理員」>「設定」>「命名空間」

  3. 按一下要使用的命名空間,例如「團隊 A」的命名空間。

  4. 按一下「連線」分頁標籤,然後點選「新增連線」

  5. 選取「GCS」並設定連線。

    在 Cloud Data Fusion 中建立 Cloud Storage 連線
    圖 3:設定命名空間的 Cloud Storage 連線。
  6. 重複上述步驟,為每個命名空間建立 Cloud Storage 連線。每個團隊隨後都能與該資源的獨立副本互動,進行設計時作業。

驗證每個命名空間的設計階段隔離

A 團隊可以存取各自命名空間中的 Cloud Storage 值區,在設計階段驗證隔離狀態:

  1. 前往 Google Cloud 控制台的 Cloud Data Fusion「Instances」(執行個體) 頁面,然後在 Cloud Data Fusion 網頁介面中開啟執行個體。

    前往「Instances」(執行個體) 頁面

  2. 依序點選「系統管理員」>「設定」>「命名空間」

  3. 選取命名空間,例如「團隊 A」命名空間 team_A

  4. 依序點按「選單」>「Wrangler」

  5. 按一下「GCS」

  6. 在 bucket 清單中,按一下 team_a1 bucket。

    • 由於 Team A 命名空間具有 storage.buckets.list 權限,因此您可以查看 bucket 清單。

    • 點選 bucket 後,您就能查看內容,因為「團隊 A」命名空間具有「Storage 物件檢視者」角色。

    驗證 A 團隊的 Cloud Storage 連線。 確認 Team A 可以存取這些值區。
    圖 4 和圖 5:確認 A 團隊可以存取適當的儲存空間 bucket。
  7. 返回 bucket 清單,然後按一下 team_b1team_c1 bucket。 您使用 Team A 的命名空間服務帳戶隔離這個設計階段資源,因此存取權受到限制。

    驗證 A 團隊無法存取受限資源。
    圖 6:確認 Team A 無法存取 Team B 和 C 的儲存空間值區。

後續步驟

  • 進一步瞭解 Cloud Data Fusion 的安全性功能。