為確保MaxCompute專案資料的安全性,專案所有者或者具備授權許可權的使用者需要對專案內成員的許可權進行合理管控,確保許可權不會過大也不會過小。本文為您介紹MaxCompute的許可權管理體系。
許可權體系
類別 | 說明 |
許可權主體 | MaxCompute支援的許可權主體如下: |
權限物件 | MaxCompute細化了專案、表、資源、函數、執行個體對象的操作,您可以基於MaxCompute提供的授權方案精細化系統管理使用者的操作許可權。各對象的許可權資訊,請參見MaxCompute許可權。 |
許可權控制 | MaxCompute提供了如下授權方案,靈活滿足授權要求:
|
角色授權 | 當需要為多個使用者授予相同操作許可權時,可基於角色實現,簡化授權操作。更多角色授權操作資訊,請參見專案層級角色授權。 |
使用者授權 | 您可以通過如下方式為使用者授權:
更多使用者授權操作資訊,請參見通過命令系統管理使用者許可權。 |
擷取許可權資訊 | 查看專案人員許可權資訊,瞭解許可權是否生效。更多查看許可權操作資訊,請參見查詢許可權資訊。 |
DataWorks也有自身的許可權體系,如果您通過DataWorks維護MaxCompute專案,可以通過DataWorks提供的使用者、角色管理能力,合理分配角色達到系統管理權限的目的。更多DataWorks與MaxCompute的許可權關係,請參見MaxCompute和DataWorks的許可權關係。
鑒權流程
MaxCompute使用者對MaxCompute各類對象進行操作時,需要進行相關許可權的鑒權。資源Owner(阿里雲主帳號)擁有最高許可權,能夠進行所有操作,並可以授予RAM帳號(RAM使用者/RAM角色)管理類許可權。阿里雲主帳號及具有管理類許可權的使用者可以為其他使用者授予許可權,這將決定誰獲得許可權,獲得對哪些對象的許可權,以及允許對這些對象執行的具體操作。
根據操作對象和具體操作的不同,MaxCompute鑒權流程分為RAM鑒權和MaxCompute服務鑒權,一個使用者執行不同操作所需要經過的鑒權流程如下圖所示。
RAM鑒權
當使用者需要在MaxCompute管理主控台進行服務的開通、資源的購買、Quota管理、專案管理、租戶管理等操作時,阿里雲會對使用者進行RAM鑒權,驗證使用者是否具備相關許可權,否則不能進行操作。
MaxCompute服務鑒權
MaxCompute專案級操作鑒權。
MaxCompute專案級操作許可權包括專案級對象操作與專案級管理類操作。
專案級對象操作許可權:主要包括對專案(Project)、表(Table)、函數(Function)、資源(Resource)等專案及專案內對象的操作許可權,如CreateTable、CreateInstance、SelectTable等,詳情請參見專案及專案內對象許可權一覽表。
專案級管理類許可權:主要包括進行專案安全配置、專案級使用者與角色許可權管理、Package管理、Label許可權管控、清理到期許可權等,詳情請參見專案管理類許可權一覽表。
MaxCompute專案級操作鑒權流程如下:
使用者認證。更多關於使用者認證的詳細描述,請參見使用者認證。
您可以使用阿里雲帳號(包括阿里雲主帳號和RAM帳號)登入MaxCompute管理主控台。
當您使用odpscmd或者JDBC等工具串連MaxCompute時,需要用到AccessKey ID及AccessKey Secret。
當使用者使用帳號串連MaxCompute時,系統將會判斷當前帳號是否為當前專案使用者。只有管理員執行了
add user "xxx"
命令,使用者才允許在該專案中發起操作。
請求源檢查(IP檢查):檢查IP白名單。詳情請參見管理IP白名單。
專案空間狀態檢查:檢查專案是否為正常狀態。
MaxCompute許可權檢查:使用者被添加至專案後,還需要被授予相關的操作許可權,才能在許可權範圍內進行操作。這裡的許可權包括通過各類授權方案實現的許可權授予,包括ACL許可權控制、Policy許可權控制、Download許可權控制、Label許可權控制、基於Package跨專案訪問資源。專案級使用者管理方法請參見通過命令系統管理使用者許可權。
MaxCompute租戶級操作鑒權。
MaxCompute租戶級操作許可權包括租戶層級對象操作許可權與租戶級管理類許可權。
租戶層級對象操作許可權包括對租戶級對象Quota和網路連接(Networklink)的操作。例如use quota、CreateNetworkLink等,巨集指令清單請參見租戶內對象許可權一覽表。
租戶層級對象操作還包括實現一帳號管理多個Project對象,提升許可權管理的便捷性。
租戶層級管理類許可權指租戶層級使用者與角色許可權管理,包括添加/刪除租戶層級使用者、建立/刪除租戶層級角色、查看租戶層級使用者/角色列表及許可權內容、將租戶層級角色授予使用者、取消使用者被授予的租戶層級角色、將租戶層級角色添加至專案、移出專案內的租戶層級角色等。
當使用者需要進行上述操作時,MaxCompute對使用者進行鑒權,驗證使用者是否具備相關許可權,否則不能進行操作。
授權鏈路
MaxCompute的常見授權鏈路如下。
鏈路一:直接為使用者授予對象的操作許可權
專案所有者(Project Owner)或具備內建管理角色的使用者將目標使用者添加至MaxCompute專案中後,由具備授權許可權的使用者通過ACL許可權控制方案為目標使用者授予對象的操作許可權。
鏈路二:基於角色為多個使用者授予對象的操作許可權
專案所有者(Project Owner)或具備內建管理角色的使用者將目標使用者和角色添加至MaxCompute專案中後,由具備授權許可權的使用者通過ACL、Policy或Download許可權控制方案為目標角色授予對象的操作許可權,然後再將角色賦予目標使用者。
鏈路三:直接為使用者授予訪問高敏感等級資料的許可權
專案所有者(Project Owner)或具備內建管理角色的使用者將目標使用者添加至MaxCompute專案中後,專案所有者(Project Owner)或具備Admin角色的使用者可以為目標使用者添加許可訪問等級,另外,當使用者需要訪問某些高敏感等級資料時,還可以通過Label許可權控制方案為目標使用者授予訪問高敏感級資料的許可權。
鏈路四:基於角色為多個使用者授予訪問高敏感等級資料的許可權
專案所有者(Project Owner)或具備內建管理角色的使用者將目標使用者添加至MaxCompute專案中後,專案所有者(Project Owner)或具備Admin角色的使用者可以為目標使用者添加許可訪問等級。當需要支援多個使用者訪問相同的高敏感等級資料時,可以建立目標角色,並由專案所有者(Project Owner)或具備Admin角色的使用者通過Label許可權控制方案為角色授予訪問高敏感級資料的許可權,然後再將角色賦予使用者。
鏈路五:跨專案訪問資源,並直接為目標專案中的使用者授予訪問Package內資源的許可權
由資源所屬專案的專案所有者(Project Owner)建立Package包並添加資源後,許可目標專案安裝Package。目標專案的專案所有者(Project Owner)安裝Package並通過ACL許可權控制或Label許可權控制方案為使用者授權。
鏈路六:跨專案訪問資源,並基於角色為使用者授予訪問Package內資源的許可權
由資源所屬專案的專案所有者(Project Owner)建立Package包並添加資源後,許可目標專案安裝Package。目標專案的專案所有者(Project Owner)安裝Package並通過ACL許可權控制或Label許可權控制方案為角色授權,然後將角色賦予使用者。
MaxCompute和DataWorks的許可權關係
在瞭解二者間的許可權關係前,您需要先理清楚MaxCompute專案和DataWorks工作空間的關係:
建立MaxCompute專案時,如果DataWorks的工作空間模式選擇為簡單模式時,實際會綁定一個MaxCompute專案。
建立MaxCompute專案時,如果DataWorks的工作空間模式為標準模式時,實際會綁定一個MaxCompute開發(_dev)專案和一個MaxCompute生產專案(Prod)。
同時,您還需要設定MaxCompute訪問者身份,決定了MaxCompute專案在帳號層級的權限原則。
通過MaxCompute的許可權管理體系進行許可權控制,並不會影響使用者在DataWorks介面上的操作。DataWorks提供了可視化的方式管理MaxCompute專案許可權,但是通過DataWorks為使用者指派角色,有可能影響使用者操作MaxCompute資源的許可權。
DataWorks和MaxCompute都存在使用者和角色的概念,二者的許可權關係如下:
角色及角色許可權
DataWorks為了提供專案成員在資料開發過程中需要的MaxCompute相關資源許可權,預設了一些MaxCompute角色。MaxCompute角色與DataWorks預設角色的許可權關係如下。
DataWorks成員角色或身份
MaxCompute角色
DataWorks開發環境/MaxCompute DEV引擎專案資料許可權
DataWorks生產環境/MaxCompute PROD引擎專案資料許可權
DataWorks平台許可權特徵
空間管理員
Role_Project_Admin
MaxCompute引擎層面:當前專案下project/table/fuction/resource/instance/job的所有許可權,以及
package
的read
許可權。DataWorks層面:可進行資料開發,並且發布任務至生產環境。
預設無許可權、需要在資訊安全中心走審批次程序申請。
指專案空間的管理者。可以對該專案空間的基本屬性、資料來源、當前專案空間計算引擎配置和專案成員等進行管理,並為專案成員賦予專案系統管理員、開發、營運、部署、訪客角色。
開發
Role_Project_Dev
MaxCompute引擎層面:當前專案下project/table/fuction/resource/instance/job的所有許可權,以及
package
的read
許可權。DataWorks層面:可進行資料開發,但無法發布任務至生產環境。
預設無許可權、需要在資訊安全中心走審批次程序申請。
開發角色的使用者能夠建立工作流程、指令檔、資源和UDF以及建立和刪除表,同時可以建立發布包,但不能執行發佈動作。
營運
Role_Project_Pe
當前專案空間下project/fuction/resource/instance/job的所有許可權,擁有package的Read許可權和table的Read/Describe許可權。
說明MaxCompute引擎層面有許可權,但在DataWorks上,營運角色不能直接在介面運行節點進行任務執行操作。
預設無許可權、需要在資訊安全中心走審批次程序申請。
營運角色的使用者由專案系統管理員分配營運許可權,擁有發布及線上營運的操作許可權,沒有資料開發的操作許可權。
部署
Role_Project_Deploy
預設無許可權。
預設無許可權、需要在資訊安全中心走審批次程序申請。
部署角色與營運角色相似,但是它沒有線上營運的操作許可權。
訪客
Role_Project_Guest
預設無許可權。
預設無許可權、需要在資訊安全中心走審批次程序申請。
訪客角色的使用者只具備查看許可權,沒有許可權進行編輯工作流程和代碼等操作。
安全性系統管理員
Role_Project_Security
預設無許可權。
預設無許可權、需要在資訊安全中心走審批次程序申請。
安全性系統管理員僅在資料保護傘模組中使用,用于敏感規則配置、資料風險審計等。
資料分析師
Role_Project_Data_Analyst
預設無許可權。
預設無許可權、需要在資訊安全中心走審批次程序申請。
僅具有資料分析模組的操作許可權。
模型設計師
Pole_Project_Erd
預設無許可權。
預設無許可權、需要在資訊安全中心走審批次程序申請。
該角色可以在智能建模查看模型,進行數倉規劃、資料標準、維度建模和資料指標等內容的編輯,但是不能發布模型。
空間所有者,即阿里雲主帳號。
Project Owner
MaxCompute專案空間的所有者,擁有該專案空間的所有許可權。
有許可權
無
無
Super_Administrator
MaxCompute專案空間的超級管理員,擁有專案空間的管理類許可權以及專案空間內所有類型資源的全部許可權。
有許可權
無
無
Admin
每一個專案在建立時,會自動建立一個Admin角色,並且為該角色授予確定的許可權。即可以訪問專案空間內的所有對象、對使用者或角色進行管理、授權。與專案空間的所有者相比,Admin角色不能將Admin許可權指派給使用者,不能設定專案空間的安全配置,不能修改專案空間的鑒權模型,Admin角色所對應的許可權不能被修改。專案空間的所有者可以將Admin角色賦權給一個使用者,讓該使用者代理程式安全管理。
有許可權
無
無
Role_Project_Scheduler
預設無許可權。
MaxCompute引擎層面:當前專案下project/table/fuction/resource/instance/job的所有許可權,以及package的read許可權。
DataWorks層面:用於在生產調度環境中作為執行身份。
說明當RAM使用者或RAM角色被設定為某MaxCompute專案生產環境的調度訪問身份(即建立生產環境資料來源時,被配置為預設訪問身份),則該使用者或角色會被映射為MaxCompute專案的Role_Project_Scheduler角色。預設訪問身份配置詳情,請參見建立資料來源。
統一使用該身份調度執行生產環境的MaxCompute任務。
使用者及使用者權限
在DataWorks工作空間中,阿里雲帳號只能為專案所有者(Project Owner),專案成員只能為專案所屬阿里雲帳號下的RAM使用者。您可以通過DataWorks的工作空間管理能力添加使用者並分配角色。
在MaxCompute專案中,阿里雲帳號既可以為專案所有者(Project Owner)也可以為專案成員,專案成員還可以為阿里雲帳號下的RAM使用者。您可以通過
add user xxx;
命令添加使用者,並通過add role xxx;
和grant role xxx to user xxx;
命令添加角色並綁定至使用者。
在不同工作空間模式及支援的訪問者身份下,使用者與許可權的關係示意圖如下。
說明DataWorks角色對應的MaxCompute許可權是固定的。一旦某個使用者通過DataWorks角色擷取MaxCompute相關角色許可權後,又通過命令列方式獲得了其他的MaxCompute許可權,會使該使用者在MaxCompute上的許可權與在DataWorks上查詢到的不一致。