角色型存取權控管 (RBAC) 簡介

本頁說明如何在 Cloud Data Fusion 中,透過角色式存取控管 (RBAC) 進行精細授權。

在 Cloud Data Fusion 執行個體啟用 RBAC 之後,即可控管執行個體和命名空間內的存取權,例如誰可以存取 Cloud Data Fusion 資源,他們能對這些資源執行什麼操作。

角色型存取控管機制用途

RBAC 可在單一 Cloud Data Fusion 執行個體中提供命名空間層級的隔離。建議用於下列用途:

  • 協助貴機構盡量減少使用的執行個體數量。
  • 多位開發人員、多個團隊或多個業務單位使用單一 Cloud Data Fusion 執行個體。

有了 Cloud Data Fusion RBAC,機構就能:

  • 允許使用者僅在命名空間內執行管道,但不得修改構件或執行階段運算設定檔。
  • 允許使用者僅查看管道,但無法修改或執行管道。
  • 允許使用者建立、部署及執行管道。

建議做法:即使使用 RBAC,為了維持隔離、安全性及效能穩定性,開發和實際工作環境也應使用不同的專案和執行個體。

限制

  • 您可以在執行個體或命名空間層級,授予使用者一或多個角色。
  • RBAC 僅適用於 Cloud Data Fusion Enterprise 版本。
  • 命名空間數量:每個執行個體的命名空間數量沒有硬性限制。
  • 如要瞭解啟用 RBAC 的執行個體可同時使用的使用者人數上限,請參閱「價格」頁面。
  • 使用服務帳戶 OAuth 存取權杖存取啟用 RBAC 的 6.5 版執行個體時,必須指定下列範圍,尤其是 userinfo.email 範圍。否則會發生權限遭拒錯誤。
    • https://www.googleapis.com/auth/userinfo.email
    • https://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/servicecontrol

Role assignments (角色指派作業)

角色指派包含三個元素:主體、角色定義和範圍。

主體

您可以將角色授予主體,變更主體對 Cloud Data Fusion 資源的存取權。

角色定義

角色包含一組權限,可讓您對Google Cloud 資源執行特定動作。

Cloud Data Fusion 提供多個可用的預先定義角色

範例:

  • 主體可透過執行個體管理員角色 (datafusion.admin) 建立及刪除命名空間,並授予權限。
  • 主體可透過「開發人員」角色 (datafusion.developer) 建立及刪除管道、部署管道,以及執行預覽。

範圍

範圍是指存取權適用的資源集。指派角色時,您可以進一步定義範圍 (例如執行個體或命名空間),限制允許執行的動作。如果您想為某人指派「開發人員」角色,但僅限於一個命名空間,這就很有幫助。

安全性建議

採用安全模式並根據貴機構的需求和規定進行調整,可能是一項艱鉅的任務。下列建議旨在協助您簡化採用 Cloud Data Fusion RBAC 模型的過程:

  • 請謹慎授予執行個體管理員角色。這個角色可完整存取執行個體和所有基礎 Cloud Data Fusion 資源。使用這個角色的主體可以透過 REST API 授予他人權限。
  • 如果主體需要存取 Cloud Data Fusion 執行個體中的個別命名空間,請勿授予執行個體管理員角色。請改為授予執行個體存取者角色,並在部分命名空間中授予檢視者/開發人員/運算子/編輯者角色。
  • 建議您先指派「執行個體存取者」角色,因為這可讓主體存取執行個體,但不會授予存取執行個體內任何資源的權限。這個角色通常會與檢視者/開發人員/營運人員/編輯者角色搭配使用,授予執行個體中一或多個命名空間的存取權。
  • 建議將檢視者角色指派給想要自行瞭解執行中工作狀態,或是透過 Cloud Data Fusion 執行個體查看管道或記錄的使用者或 Google 群組。舉例來說,每日報表的消費者想知道處理作業是否已完成。
  • 建議 ETL 開發人員使用開發人員角色,負責建立、測試及管理管道。
  • 建議為提供作業管理員或 DevOps 服務的使用者指派命名空間的運算子角色。他們可以執行開發人員的所有動作 (預覽管道除外),也可以部署構件及管理運算設定檔。
  • 命名空間的編輯者角色是具有特殊權限的角色,可授予使用者或 Google 群組命名空間中所有資源的完整存取權。編輯者可視為開發人員和運營人員角色的聯集。
  • 營運人員管理員應避免安裝不受信任的外掛程式或構件,以免造成安全風險。

疑難排解

本頁面章節說明如何解決 Cloud Data Fusion 中的 RBAC 相關問題。

在 RBAC 中,如果主體對命名空間具有 Cloud Data Fusion 檢視者角色,即可編輯管道

存取權取決於 IAM 和 RBAC 角色。IAM 角色的優先順序高於 RBAC 角色。 確認主體是否具備「專案編輯者」或「Cloud Data Fusion 管理員」 IAM 角色。

在 RBAC 中具有執行個體管理員角色的主體無法在 Google Cloud 控制台中查看 Cloud Data Fusion 執行個體

Cloud Data Fusion 有個已知問題,就是具有執行個體管理員角色的主體無法在 Google Cloud 控制台中查看執行個體。如要修正這個問題,請授予主體「專案檢視者」或其中一個 Cloud Data Fusion IAM 角色,並將主體設為執行個體的管理員。這會授予主體專案中所有執行個體的檢視者存取權。

禁止主體查看沒有角色的命名空間

如要防止主體查看沒有角色的命名空間,主體不得具有專案檢視者或任何Cloud Data Fusion IAM 角色。請只在主體需要運作的命名空間中,授予 RBAC 角色。

具備這類存取權的主體不會在 Google Cloud 控制台中看到 Cloud Data Fusion 執行個體清單。請改為提供執行個體的直接連結,類似於下列連結: https://INSTANCE_NAME-PROJECT_ID.REGION_NAME.datafusion.googleusercontent.com/

主體開啟執行個體時,Cloud Data Fusion 會顯示主體獲授 RBAC 角色的命名空間清單。

將 Cloud Data Fusion 存取者角色授予主體

為任何 Cloud Data Fusion 執行個體指派其他 RBAC 角色時,系統會隱含地將存取者角色指派給主體。如要確認主體在特定執行個體上是否具備該角色,請參閱 IAM 政策分析器

後續步驟