DataWorks通過空間預設角色或空間自訂角色與開發環境引擎Role映射,來讓被授予空間角色的RAM使用者,擁有該空間角色映射的開發引擎Role所擁有的MaxCompute引擎許可權,但預設無生產許可權,本文為您介紹預設角色許可權基本情況、MaxCompute許可權管控背景以及如何獲得許可權。
背景資訊
DataWorks預置了空間預設角色,同時提供了自訂空間角色的功能,來控制使用者是否可以使用DataWorks空間級模組、是否有開發引擎專案許可權。但無論預設角色還是自訂角色,都可以通過預設或手動授權的方式使角色擁有開發引擎專案的相關許可權。
主帳號擁有該帳號下雲資源的最大許可權,以下描述的許可權管控主要針對RAM使用者。
預設角色中僅擁有空間開發角色、管理員角色的RAM使用者可以在DataWorks資料開發頁面建立節點、並執行建表命令。
使用流程
序號 | 目標 | 相關文檔 |
1 | 瞭解DataWorks預設角色許可權基本情況。 | |
2 | 瞭解DataWorks工作空間成員如何擷取引擎許可權。 | |
3 | 瞭解管理員可以對生產許可權進行的許可權管控。 | |
4 | 瞭解如何通過命令查看引擎許可權。 |
注意事項
標準模式工作空間下,RAM使用者(子帳號)預設沒有生產專案許可權,生產表的查詢許可權需要在資訊安全中心申請。關於資料許可權申請詳情請參見MaxCompute資料存取權限控制。
簡單模式工作空間下,RAM使用者(子帳號)預設擁有專案所有許可權,無法做到資料許可權管控。
預設角色許可權基本情況
DataWorks空間級預設角色預設可以訪問開發環境引擎專案許可權,但無法直接存取生產環境引擎專案。即可以直接存取開發表、資源、函數,但無法直接存取生產表、資源、函數。
預設角色中僅擁有空間開發角色、管理員角色的RAM使用者可以在DataWorks資料開發頁面通過建立節點來執行動作表、資源、函數的命令。
情境 | 說明 |
開發環境的MaxCompute引擎許可權 | DataWorks採取RBAC許可權體系與MaxCompute的RBAC角色體系存在天然的映射關係,DataWorks空間成員在被授予空間預設角色的同時,將同步被授予該預設角色映射的引擎Role所擁有的引擎許可權。 |
生產環境的MaxCompute引擎許可權 | 預設RAM使用者(子帳號)不可以直接操作生產環境。 無論DataWorks空間預設角色還是自訂角色,均沒有生產環境的MaxCompute引擎許可權,如果要對生產環境的MaxCompute錶行訪問等操作,您需要在資訊安全中心申請許可權,詳情請參見MaxCompute資料存取權限控制。 說明 預設角色中僅擁有空間開發角色、管理員角色的RAM使用者可以在DataWorks資料開發頁面通過建立節點來執行建表命令。 |
RAM使用者(子帳號)擷取引擎許可權
為了保障生產資料安全,在標準模式工作空間下,DataWorks對RAM使用者(子帳號)訪問MaxCompute表的操作進行了管控。
獲得開發專案許可權過程(自動獲得):
工作空間成員被授予預設角色的同時獲得引擎專案許可權,詳情請參見情境一:空間級預設角色授權過程。
工作空間成員被授予自訂角色的同時獲得引擎專案許可權,詳情請參見情境二:空間自訂角色授權過程。
獲得生產專案許可權(需要人為申請):需要進入資訊安全中心申請,使用情境如下表所示,更多關於資訊安全中心的使用詳情參見MaxCompute資料存取權限控制。
情境
說明
同工作空間內,開發環境使用者訪問生產環境表
當DataWorks的子帳號未被添加為生產環境計算引擎訪問身份時,預設該帳號無法在資料開發介面直接操作本工作空間的生產表,如果子帳號需要擁有生產表許可權,需要在資訊安全中心發起申請,待審批通過後,便可在資料開發介面對錶進行相關操作。
開發或生產環境使用者訪問跨工作空間的開發或生產環境表
預設不在工作空間下的子帳號無法在資料開發介面跨專案訪問開發表或生產表。如果需要跨專案操作開發表或生產表,子帳號需要在資訊安全中心發起申請,待審批通過後,便可在資料開發介面對錶進行相關操作。
MaxCompute資料許可權管控
RAM使用者(子帳號)若需要訪問生產資料,需要進行流程審批,管理員可對生產環境許可權進行管控。
資訊安全中心內建審批次程序可進行生產表許可權審批。
核准中心支援自訂審批次程序。
查看MaxCompute引擎許可權
您可以在MaxCompute_SQL任務中,執行如下語句,查詢自己的許可權資訊。
show grants
:查看目前使用者自己的存取權限。show grants for <username>
:查看指定使用者的存取權限,僅空間管理員才有執行許可權。
附錄:工作空間角色授權過程
情境一:空間級預設角色授權過程
底層實現:當RAM使用者(子帳號)被加入工作空間並且被授予某個空間預設角色時,將自動為該使用者添加MaxCompute底層Role,使使用者擁有該底層Role對應的角色許可權。關於預設角色與底層Role的映射關係,詳情請參見:附錄:空間級預設角色與MaxCompute引擎許可權的映射關係。
情境樣本:某個RAM使用者被一個擁有空間管理員權限的使用者添加為工作空間成員,並授權工作空間開發角色許可權。
說明新增成員並授權的操作請參見空間級模組許可權管控。
完成新增成員操作後,在DataWorks層面和MaxCompute引擎層面均有了部分許可權,此RAM使用者可在DataWorks層面和MaxCompute引擎層面進行的操作許可權詳情如下。
DataWorks層面:給RAM使用者授予開發角色後,該使用者可以在DataWorks開發代碼並且提交,但是不能將代碼直接發布到生產環境,發布生產的操作需要有營運許可權(專案所有者、管理員、營運這幾類角色擁有此許可權)。
MaxCompute引擎層面:給RAM使用者授予開發角色後,在MaxCompute引擎層面同時為這個RAM使用者授予了一個Role_Project_Dev這個角色,這個角色會被賦予部分MaxCompute引擎開發專案的表和專案的許可權。
說明當授予阿里雲RAM使用者預設管理員角色,其擁有的DataWorks功能許可權較多,但同樣不能直接存取生產表。
此處說明的RAM使用者特指,未被指定為非調度引擎訪問身份(未被指定為生產專案MaxCompute訪問身份)的子帳號。
情境二:空間自訂角色授權過程
情境樣本:某個RAM使用者被一個擁有空間管理員權限的使用者添加為工作空間成員,並授予DataWorks工作空間自訂角色許可權。建立DataWorks空間自訂角色時,您可以指定此角色是否與MaxCompute引擎的某個角色做映射,角色建立完成後,可以在新增成員時關聯此自訂角色,完成後,被添加為成員的RAM使用者在DataWorks層面和MaxCompute引擎層面均有了部分許可權,此RAM使用者可在DataWorks層面和MaxCompute引擎層面進行的操作許可權詳情如下。
建立DataWorks自訂角色的操作請參見空間級模組許可權管控,新增成員並授權的操作請參見空間級模組許可權管控。
DataWorks層面:DataWorks上給一個RAM使用者授予DataWorks自訂角色,該使用者只能訪問自訂角色所賦予的模組許可權。
MaxCompute引擎層面:
如果該DataWorks自訂角色未設定引擎許可權映射,那麼RAM使用者沒有MaxCompute引擎的操作許可權,無法通過命令進行引擎查詢等相關操作。
如果該DataWorks自訂角色設定了引擎許可權映射,那麼RAM使用者有自訂角色所映射的引擎許可權,所擁有的操作許可權與映射的MaxCompute引擎的角色一致。
除了RAM使用者被指定為調度引擎訪問身份(生產專案MaxCompute訪問身份)這一情境外,其他情境下,RAM使用者被添加為工作空間成員後,預設沒有生產環境操作許可權,操作及訪問生產表需要在資訊安全中心進行許可權申請,詳情請參見:通過新版資訊安全中心申請表許可權。關於MaxCompute訪問身份詳情說明,可參考文檔:建立並管理工作空間。
常見問題
許可權報錯常見問題詳情請參見許可權管理常見問題。
附:通過MaxCompute SQL查詢許可權資訊
MaxCompute支援通過SQL語句查詢使用者、角色、對象等的許可權資訊。詳情請參見通過MaxCompute SQL查詢許可權資訊。
後續步驟
MaxCompute可跨專案訪問資源,所以在DataWorks中,開發人員可以在資料開發介面直接存取生產環境下的資源,您可以通過情境:MaxCompute引擎在不同模式工作空間訪問資源與許可權說明瞭解工作空間成員如何跨專案訪問資源。