場景
主賬号不是大資料團隊管理,使用MaxCompute員工都隻持有子賬号,而project的owner隻能為主賬号,但是很多MaxCompute的權限管理還需要owner才可以操作(如項目級别的flag設定,package跨項目資源共享配置等),是以非常需要一個子賬号擁有超級管理者權限。
之前有寫過一篇文章
《MaxCompute 項目子賬号做權限管理》,是通過MaxCompute的admin role來解決問題,本文主要介紹super_administrator role,以及作為超級管理者日常管理工作中的一些建議。
關于super_administrator role
Super_Administrator role:MaxCompute新增内置的管理角色,擁有操作項目内所有類型資源的權限和管理類權限,具體權限請參考文檔
管理角色。
該角色可由project owner指派給子賬号,子賬号獲得該角色後,即可代替owner對該project在進行資料開發過程中所需的各種管理操作,包括常用的項目級别的flag設定以及所有權限管理操作。
指派子賬号為超級管理者
前提建議:
- 可以将有權限建立project的子賬号指派為super_administrator role,這樣該賬号既可以很好的管理DataWorks項目的同時管理對應的Max Compute project。
如何授權子賬号可建立project可參考 此文檔
- 建一個一個project隻能指派一個子賬号為super_administrator role,其他需要有基本的權限管理可以指派admin role
- 需要注意明确該子賬号持有人的職責,建議一個子賬号對應一個開發者,避免賬号共用,以便能更好的保障資料安全。
确認好具體哪個子賬号可以使用者超級管理者(同時該子賬号可以建立項目空間),子賬号建立好project,此時projec的owner依然是主賬号,主賬号可以通過以下方式将super_administrator role 授權給該子賬号。
-
通過MaxCompute用戶端授權:
假設主賬号使用者[email protected]是項目空間project_a的Owner,Allen是[email protected]中的RAM子賬号。
打開項目空間project_a。
use project_a; 為項目空間project_a添加RAM子賬号Allen。 add user [email protected]:Allen; 為子賬号Allen授權Super_Administrator角色權限。 grant super_administrator TO [email protected]:Allen; 為子賬号Allen授權Admin角色權限。 grant admin TO [email protected]:Allen;
- 通過DataWorks授權:
- 登入DataWorks,進入 工作空間配置 頁面。
- 添加子賬号為項目空間成員(已經添加過可忽略)。
- 為子賬号授權Super_Administrator角色。
MaxCompute項目子賬号做超級管理者
-
子賬号檢視自身的權限:
cmd中執行
,如果有Super_Administrator 這個role,說明已經賦權成功。show grants;
成員、權限管理
擁有super_administrator 角色的子賬号本身已經擁有所有project資源的查詢和操作權限,是以無須再給自身授權。以下給出針對其他成員和成員權限管理的建議。
成員管理
- MaxComopute 支援雲賬号和RAM子賬号(子賬号隻能為Project owner的子賬号),為了更好的保障資料安全,建議project中添加的user均為owner主賬号的RAM子賬号。主賬号可控制子賬号,如人員轉崗離職等,主賬号可以登出或更新對應的子賬号。
> 若通過DataWorks進行項目成員管理,隻能添加owner的RAM子賬号。
- RAM子賬号隻能通過主賬号添加(這個不是MaxCompute可以改變的事實),是以對于某project 成員即使擁有super_administrator 角色的超級管理者,也隻能先需要主賬号先建立好其他子賬号才可以将其他子賬号添加到project中。
- 建議隻添加需要在目前project進行資料開發(即會在目前project執行job)的user,對于有資料互動業務需求的user,建議通過package方式進行跨project資源共享,避免把user添加到project增加成員管理的複雜度。
- 員工轉崗或離職,先把對應子賬号在project裡remove掉,然後再通知owner登出子賬号。如果是擁有super_administrator 角色的子賬号持有者轉崗或離職,則需要由主賬号進行remove以及登出賬号。
權限管理
- 建議通過角色進行權限管理,即權限和role關聯,role和user關聯。
- 建議實施最小夠用原則,避免權限過大造成安全隐患。
- 跨project使用資料時,建議通過package方式實作,避免資源提供方增加成員管理成本,隻需要管理package。
權限審計
可以通過MaxCompute的中繼資料服務
Information_Schema服務提供的相關
視圖進行權限審計。
資源使用以及成本管理
作為MaxComopute主要負責人,不應該僅僅關注成員和權限,還有資源使用、成本都需要關注。
- 關于成本,避不開賬單,可以參考文檔 《檢視賬單詳情》 ,對于子賬号,需要主賬号在RAM通路控制-角色管理給子賬号所在角色賦相關權限:
- (AliyunBSSFullAccess—管理費用中心(BSS)的權限;
- 或,AliyunBSSReadOnlyAccess—隻讀通路費用中心(BSS)的權限;
- 或,AliyunBSSOrderAccess—費用中心(BSS)檢視訂單、支付訂單及取消訂單的權限)
> 注意,費用中心相關權限與MaxCompute project的super_administrator role無關聯。
- 關于資源使用管理,如果您使用MaxCompute包年包月的計算資源,則可以通過 MaxCompute 管家
進行計算資源的使用檢視及管理。
如果您使用的是MaxCompute後付費模式,可通過MaxCompute的中繼資料服務
提供的相關視圖,如 TASKS_HISTORY 可詳細審計作業執行情況包括時間、job内容、資源消耗等。>注意中繼資料服務提供的視圖隻有最近15天的資料,你若有需求,可自行将資料讀取儲存。