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工作空間名稱的模塊為”全局級別模塊”,例如數據地圖。