MaxCompute/DataWorks權限問題排查建議
__前提:__MaxCompute與DataWorks為兩個産品,在權限體系上既有交集又要一定的差别。在權限問題之前需了解兩個産品獨特的權限體系。
MaxCompute:計算引擎
MaxCompute底層計算引擎有自己的安全權限體系,包括ACL、Policy授權體系。具體可以了解:https://help.aliyun.com/document_detail/27924.html
DataWorks:資料工場
DataWorks為MaxCompute上層的雲數倉開發工具,擁有自身的權限模型外還支援底層MaxCompute底層資料授權體系。具體詳見:https://help.aliyun.com/document_detail/92594.html
檢視MaxCompute上的角色
通過MaxCompute Console指令list roles;可以看到角色體系,role_開頭都為DataWorks基于MaxCompute封裝的角色及權限體系。介紹如下:
rolename | 對應産品及權限名稱 |
admin | MaxCompute底層引擎預設admin角色 |
role_project_admin | DataWorks項目管理者 |
role_project_deploy | DataWorks部署角色 |
role_project_dev | DataWorks開發角色 |
role_project_guest | DataWorks訪客角色 |
role_project_pe | DataWorks運維角色 |
role_project_scheduler | DataWorks生産代持賬号 |
role_project_security | DataWorks安全管理者 |
- __admin:__MaxCompute計算引擎的預設admin角色,可以通路項目空間内的所有對象、對使用者或角色進行管理、對使用者或角色進行授權。與項目空間 Owner 相比,admin 角色不能将 admin 權限指派給使用者,不能設定項目空間的安全配置,不能修改項目空間的鑒權模型,admin 角色所對應的權限不能被修改。一般情況下,如未修改過權限,一般情況下admin角色使用者隻有一個為project owner賬号。
odps@ clouder_bi>describe role admin;
[users]
ALIYUN$***@aliyun-test.com
Authorization Type: Admin
MaxCompute project owner可以将admin角色授予其他子賬号,用于進行MaxCompute底層的權限模型管理。
- role_開頭的角色也可以通過describe role 方式檢視其角色所具備的權限點及角色裡的使用者清單。以開發者角色為例:
odps@ clouder_bi>describe role role_project_dev;
[users]
[email protected]:yangyitest
Authorization Type: Policy
A projects/clouder_bi: *
A projects/clouder_bi/instances/*: *
A projects/clouder_bi/jobs/*: *
A projects/clouder_bi/offlinemodels/*: *
A projects/clouder_bi/packages/*: *
A projects/clouder_bi/registration/functions/*: *
A projects/clouder_bi/resources/*: *
A projects/clouder_bi/tables/*: *
A projects/clouder_bi/volumes/*: *
排查問題建議:
在普及完兩個産品的權限體系之外,更多的使用者會遇到各種權限的疑問或者問題。通常可以通過如下方式來排查:
- 首先,檢視目前使用者或指定使用者所擁有的權限。
show grants; --檢視目前使用者自己的通路權限
show grants for <username>; --檢視指定使用者的通路權限,僅由ProjectOwner和Admin才能有執行權限 。
show grants for RAM$主帳号:子帳号;
可以看到使用者所具有的角色及相關權限點。
- 檢視指定對象的授權清單,一般擷取表到人。
show acl for <objectName> [on type <objectType>];--檢視指定對象上的使用者和角色授權清單
支援的objecTtype: PROJECT, TABLE, JOB, VOLUME, INSTANCE, RESOURCE, FUNCTION,PACKAGE,TOPOLOGY,MATRIX,XFLOW,OFFLINEMODEL,STREAMJOB
- 檢視ACL是否生效(常常發生在授權之後傳回OK,但是權限校驗還是失敗)
show SecurityConfiguration;--檢視項目空間的安全配置
除了通過指令行方式,也可以通過__++DataWorks>項目管理>MaxCompute進階配置++__裡的ACL開關來确認是否打開。
Policy授權的查詢
policy授權一般常見有兩種,一個是項目級别的,一個是role級别的。
get policy;--擷取項目級别的policy配置;
get policy on role <rolename>;--擷取指定的role policy設定。
原文連結
本文為雲栖社群原創内容,未經允許不得轉載。