DataWorks在產品管控、功能使用等方面提供了完善的許可權管控體系,其中功能使用方面,針對功能的範圍是全域功能還是空間級功能,分別提供全域角色、空間級角色來實現許可權管控,本文將為您介紹當前DataWorks如何通過RBAC(Role-Based Access Control)方式來管控功能使用許可權。
DataWorks的“產品管控”許可權指的是與所有在DataWorks管理主控台中執行的操作相關的許可權。例如,工作空間列表頁面中建立空間、禁用空間、刪除空間等操作;資源群組列表頁面中的建立獨享資源群組、配置獨享資源群組網路等操作;警示配置頁面的配置連絡人等操作。DataWorks針對產品管控方面的許可權管控是通過RAM Policy來實現的,詳情請參見產品及控制台許可權控制詳情:RAM Policy。
全域功能及空間級功能
登入DataWorks管理主控台並進入DataWorks工作空間後,單擊頂部功能表列左側的表徵圖,即可顯示DataWorks產品的所有功能模組,如下圖所示。單擊功能模組即可進入對應功能模組頁面並開始使用此功能。進入功能模組頁面後:
如果介面頂部功能表列顯示DataWorks工作空間名稱,則此模組為“空間層級模組”,例如DataStudio。
如果介面頂部功能表列不顯示DataWorks工作空間名稱,則此模組為”全域層級模組”,例如資料地圖。
區分全域級功能和工作空間級功能詳情請參見下文的附錄:如何區分“空間層級模組”和“全域層級模組”。
全域角色與空間級角色
DataWorks功能使用的許可權體系是基於RBAC(Role-based access control)許可權模型構建的,對全域功能和空間級功能可以分別定義全域角色或空間級角色,將一個使用者(RAM使用者或Role)添加為某個角色後,這個使用者即可擁有此角色包含的DataWorks相關功能模組的使用許可權。
您瞭解的關鍵概念有:
使用者:包含RAM使用者、RAM Role兩類。
角色:包含DataWorks空間級角色、DataWorks全域層級角色兩類。
許可權:包含DataWorks空間層級功能模組、DataWorks全域層級功能模組。
DataWorks為您預設了部分全域角色和空間級角色,您可以直接使用這些角色給使用者授權,也可以根據需要,自訂全域角色或空間級角色。使用者、角色、許可權之間的對應關係,如下圖所示。
在所有角色中,僅“全域級角色”中的租用戶系統管理員角色擁有所有功能模組的使用許可權。
阿里雲主帳號下所有RAM使用者均為被預設添加為租戶成員角色。
如果租用戶系統管理員自訂了某個全域層級角色,並指定了該角色不具備某些全域級模組的使用許可權,則該自訂角色的許可權優先順序將高於租戶成員的許可權。
例如:某個主帳號下的RAM使用者(RAM使用者A),預設情況下為租戶成員角色,可訪問資料地圖功能頁面。當租用戶系統管理員自訂了某個角色,並指定該角色無資料地圖存取權限,並將RAM使用者A添加為該自訂角色後,RAM使用者A則無法訪問資料地圖功能頁面。
許可權詳情:全域角色
DataWorks全域角色包括租用戶系統管理員、租戶成員、租戶安全性系統管理員、資料目錄管理員、中繼資料採集管理員、資料治理管理員這幾類,各角色的許可權詳情如下表所示。
角色 | 許可權點 | 授權人 | 描述 |
租用戶系統管理員 | 擁有DataWorks所有產品功能的許可權(不包含阿里雲DataWorks管理主控台的操作許可權)。 | 租戶所有者(阿里雲主帳號)、擁有AliyunDataWorksFullAccess的RAM使用者、擁有AdministratorAccess許可權的使用者、擁有租用戶系統管理員角色的RAM使用者可以將租用戶系統管理員角色授權給其RAM使用者。 | DataWorks產品最高許可權管理員,可以操作DataWorks產品內的所有功能。 |
租戶成員 | 擁有和目前開發角色同樣的使用許可權。
| 無需授權,預設情況下,當前阿里雲主帳號下所有RAM使用者均為租戶成員角色。 | 當前阿里雲主帳號下所有RAM使用者、RAM Role預設都是租戶成員。 |
租戶安全性系統管理員 | 擁有資訊安全中心、核准中心、資料保護傘的所有許可權。 | 租用戶系統管理員可以將其他RAM使用者授權為安全性系統管理員。 | 用於管理工作空間的安全相關配置。 |
資料治理管理員 | 擁有資料治理中心的普通使用許可權(不包括服務開通、檢查項的建立、啟用、停止),及資料治理中心的系統管理權限。 | 租用戶系統管理員可以將其他人授權為資料治理管理員。 | 用於資料治理中心的相關管理。 |
資料目錄管理員 | 擁有資料地圖普通使用許可權、管理資料地圖的資料目錄功能許可權。 | 租用戶系統管理員可以將其他人授權為資料目錄管理員。 | 可以管理用資料地圖的資料目錄功能。 |
中繼資料採集管理員 | 擁有資料地圖的普通使用許可權和中繼資料採集許可權。 | 租用戶系統管理員可以將其他人授權為中繼資料採集管理員。 | 可以使用資料地圖的中繼資料採集功能。 |
許可權詳情:空間級角色
DataWorks為您提供了多種預設空間級角色,也支援您根據許可權管控需要自訂空間級角色。
預設空間級角色
DataWorks產品提供:專案所有者、資料分析師、空間管理員、開發、營運、部署、訪客、安全性系統管理員、模型設計師這幾類預設角色。
說明工作空間所有者為阿里雲主帳號,子帳號僅為代主帳號建立工作空間。當前不支援給其他使用者授權為專案所有者。各預設角色的對DataWorks各個功能模組的許可權詳情請參見附錄:預設角色許可權列表(空間級)。
自訂空間級角色
DataWorks自訂空間級角色可控制自訂的角色是否有用某個空間級功能模組的許可權,建立自訂角色的操作請參見空間級模組許可權管控。
通過空間級角色對空間級功能進行許可權管控時,可細分為兩類許可權管控對象:DataWorks功能操作、引擎功能操作(例如引擎資料庫許可權,即表、資源等內容的增刪改查許可權),預設角色和自訂角色對這兩類細分的許可權管控對象的許可權詳情如下表所示。
許可權管控對象 | 預設角色 | 自訂角色 |
DataWorks功能操作 | DataWorks以預設好各角色在各空間級功能上的使用許可權,詳情請參見附錄:預設角色許可權列表(空間級)。 | 建立自訂角色時,自訂指定此角色是否有某個空間級功能的操作許可權。 |
引擎功能許可權-MaxCompute引擎 |
| 建立自訂角色時,如果配置了自訂角色與MaxCompute引擎的角色進行映射,則自訂角色擁有映射的MaxCompute引擎角色的許可權。 |
引擎功能許可權-EMR引擎 | 註冊EMR叢集時,為空白間成員配置許可權映射獲得引擎許可權,詳情可參考註冊EMR叢集至DataWorks。 | |
引擎功能許可權-CDH | 通過為空白間下的成員配置空間成員與Linux或Kerberos帳號映射獲得引擎許可權,詳情可參考建立並管理工作空間。 | |
引擎功能許可權-其他引擎 | 各引擎在聯合DataWorks使用前,都需要先在DataWorks建立資料來源。其他引擎在建立資料來源時,需設定在開發環境、生產環境使用該引擎的調度身份(如,AnalyticDB for PostgreSQL資料來源需指定訪問資料庫的使用者名稱和密碼)。 空間級角色的使用者(含預設角色和自訂角色),在執行其他引擎任務時,使用建立資料來源設定的調度身份,即,空間級角色不直接管控非MaxCompute引擎許可權,此許可權由建立資料來源時指定的調度身份來設定。 |
如上文所述:
DataWorks提供空間級預設角色時,同時將預設角色與工作空間建立的資料來源的角色進行了映射,使得預設角色也擁有了映射角色所擁有的部分引擎操作許可權。
DataWorks支援自訂空間級角色,建立自訂角色時,您也可以同時設定角色與引擎角色的映射關係,使得自訂角色擁有引擎操作許可權。
因此,使用空間級角色為某個使用者授權後,此使用者即可擁有DataWorks功能的操作許可權和引擎的操作許可權。以下以MaxCompute引擎為例,為您介紹,使用空間級預設角色和空間級自訂角色授權後,使用者實際的操作許可權邏輯。
情境一:授權空間級預設角色許可權
樣本情境:某個RAM使用者被一個擁有空間管理員權限的使用者添加為工作空間成員,並授權預設的開發角色許可權。
說明新增成員並授權的操作請參見空間級模組許可權管控。
完成新增成員操作後,在DataWorks層面和MaxCompute引擎層面均有了部分許可權,此RAM使用者可在DataWorks層面和MaxCompute引擎層面進行的操作許可權詳情如下。
DataWorks層面:給RAM使用者授予開發角色後,該使用者可以在DataWorks開發代碼並且提交,但是不能將代碼直接發布到生產環境,發布生產的操作需要有營運許可權(專案所有者、管理員、營運這幾類角色擁有此許可權)。
MaxCompute引擎層面:給RAM使用者授予開發角色後,在MaxCompute引擎層面同時為這個RAM使用者授予了一個Role_Project_Dev角色,這個角色會被賦予部分MaxCompute引擎開發專案的表和專案的許可權。
說明當授予阿里雲RAM使用者預設管理員角色,其擁有的DataWorks功能許可權較多,但同樣不能直接存取生產表。
此處說明的RAM使用者特指,未被指定為非調度引擎訪問身份(未被指定為生產專案MaxCompute訪問身份)的子帳號。
情境二:授權空間級自訂角色許可權
情境樣本:某個RAM使用者被一個擁有空間管理員權限的使用者添加為工作空間成員,並授予DataWorks工作空間自訂角色許可權。建立自訂角色時,您可以指定此角色是否與MaxCompute引擎的某個角色做映射,角色建立完成後,可以在新增成員時關聯此自訂角色,完成後,被添加為成員的RAM使用者在DataWorks層面和MaxCompute引擎層面均有了部分許可權,此RAM使用者可在DataWorks層面和MaxCompute引擎層面進行的操作許可權詳情如下。
說明建立自訂角色的操作請參見空間級模組許可權管控,新增成員並授權的操作請參見空間級模組許可權管控。
DataWorks層面:DataWorks上給一個RAM使用者授予DataWorks自訂角色,該使用者只能訪問自訂角色所賦予的模組許可權。
MaxCompute引擎層面:
如果該DataWorks自訂角色未設定引擎許可權映射,那麼RAM使用者沒有MaxCompute引擎的操作許可權,無法通過命令進行引擎查詢等相關操作。
如果該DataWorks自訂角色設定了引擎許可權映射,那麼RAM使用者有自訂角色所映射的引擎許可權,所擁有的操作許可權與映射的MaxCompute引擎的角色一致。
說明除了RAM使用者被指定為調度引擎訪問身份(生產專案MaxCompute訪問身份)這一情境外,其他情境下,RAM使用者被添加為工作空間成員後,預設沒有生產環境操作許可權,操作及訪問生產表需要在資訊安全中心進行許可權申請,詳情請參見:通過新版資訊安全中心申請表許可權。關於MaxCompute訪問身份詳情說明,可參考文檔:建立並管理工作空間。
附錄:空間級預設角色與MaxCompute引擎許可權的映射關係
DataWorks空間級預設角色與MaxCompute開發專案的許可權映射與許可權詳情如下表所示:
DataWorks成員角色 | MaxCompute角色 | DataWorks開發環境/MaxCompute DEV引擎專案資料許可權 | DataWorks生產環境/MaxCompute PROD引擎專案資料許可權 | DataWorks平台許可權特徵 |
專案系統管理員 | Role_Project_Admin |
| 預設無許可權,需要在資訊安全中心走審批次程序申請。 | 指專案空間的管理者。可以對該專案空間的基本屬性、資料來源、當前專案空間計算引擎配置和專案成員等進行管理,並為專案成員賦予專案系統管理員、開發、營運、部署、訪客角色。 |
開發 | Role_Project_Dev |
| 開發角色的使用者能夠建立工作流程、指令檔、資源和UDF以及建立和刪除表,同時可以建立發布包,但不能執行發佈動作。 | |
營運 | Role_Project_Pe | 當前專案空間下project/fuction/resource/instance/job的所有許可權,擁有package的Read許可權和table的Read/Describe許可權。 說明 MaxCompute引擎層面有許可權,但在DataWorks上,營運角色不能直接在介面運行節點進行任務執行操作。 | 營運角色的使用者由專案系統管理員分配營運許可權,擁有發布及線上營運的操作許可權,沒有資料開發的操作許可權。 | |
部署 | Role_Project_Deploy | 預設無許可權。 | 部署角色與營運角色相似,但是它沒有線上營運的操作許可權。 | |
資料分析師 | Role_Project_Data_Analyst | 預設無許可權。 | 資料分析師角色的使用者預設只有資料分析模組的操作許可權。 | |
訪客 | Role_Project_Guest | 預設無許可權。 | 訪客角色的使用者只具備查看許可權,沒有許可權進行編輯工作流程和代碼等操作。 | |
安全性系統管理員 | Role_Project_Security | 預設無許可權。 | 安全性系統管理員僅在資料保護傘模組中使用,用于敏感規則配置、資料風險審計等。 | |
模型設計師 | Role_Project_Erd | 預設無許可權。 | 可以查看模型,進行數倉規劃、資料標準、維度建模和資料指標等內容的編輯,但是不能發布模型。 | |
無 | Project Owner | MaxCompute專案空間的所有者,擁有該專案空間的所有許可權。 | 有許可權。 | 無 |
無 | Super_Administrator | MaxCompute專案空間的超級管理員,擁有專案空間的管理類許可權以及專案空間內所有類型資源的全部許可權。 | 有許可權。 | 無 |
無 | Admin | 每一個專案在建立時,會自動建立一個Admin角色,並且為該角色授予確定的許可權。即可以訪問專案空間內的所有對象、對使用者或角色進行管理、授權。與專案空間的所有者相比,Admin角色不能將Admin許可權指派給使用者,不能設定專案空間的安全配置,不能修改專案空間的鑒權模型,Admin角色所對應的許可權不能被修改。專案空間的所有者可以將Admin角色賦權給一個使用者,讓該使用者代理程式安全管理。 | 有許可權。 | 無 |
附錄:如何區分“空間層級模組”和“全域層級模組”
介面頂部功能表列顯示DataWorks工作空間名稱的模組為“空間層級模組“,例如DataStudio。
介面頂部功能表列不顯示DataWorks工作空間名稱的模組為”全域層級模組”,例如資料地圖。