MaxCompute/DataWorks權限問題排查建議

MaxCompute/DataWorks權限問題排查建議

__前提:__MaxCompute與DataWorks爲兩個產品,在權限體系上既有交集又要必定的差異。在權限問題以前需瞭解兩個產品獨特的權限體系。html

MaxCompute:計算引擎

MaxCompute底層計算引擎有本身的安全權限體系,包括ACL、Policy受權體系。具體能夠了解:https://help.aliyun.com/document_detail/27924.html安全

image.png | left | 542x231

DataWorks:數據工場

DataWorks爲MaxCompute上層的雲數倉開發工具,擁有自身的權限模型外還支持底層MaxCompute底層數據受權體系。具體詳見:https://help.aliyun.com/document_detail/92594.html運維

查看MaxCompute上的角色

經過MaxCompute Console命令list roles;能夠看到角色體系,role_開頭都爲DataWorks基於MaxCompute封裝的角色及權限體系。介紹以下:工具

image.png | left | 232x168

 

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]
RAM$yangyi.pt@aliyun-test.com: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/*: *

排查問題建議:

在普及完兩個產品的權限體系以外,更多的用戶會遇到各類權限的疑問或者問題。一般能夠經過以下方式來排查:spa

  • 首先,查看當前用戶或指定用戶所擁有的權限。
show grants; --查看當前用戶本身的訪問權限
show grants for <username>; --查看指定用戶的訪問權限,僅由ProjectOwner和Admin纔能有執行權限 。
show grants for RAM$主賬號:子賬號;

image.png | left | 544x614

能夠看到用戶所具備的角色及相關權限點。命令行

  • 查看指定對象的受權列表,通常獲取表到人。
show acl for <objectName> [on type <objectType>];--查看指定對象上的用戶和角色受權列表
支持的objecTtype: PROJECT, TABLE, JOB, VOLUME, INSTANCE, RESOURCE, FUNCTION,PACKAGE,TOPOLOGY,MATRIX,XFLOW,OFFLINEMODEL,STREAMJOB

image.png | left | 451x209

  • 查看ACL是否生效(經常發生在受權以後返回OK,可是權限校驗仍是失敗)
show SecurityConfiguration;--查看項目空間的安全配置

image.png | left | 341x143

除了經過命令行方式,也能夠經過__++DataWorks>項目管理>MaxCompute高級配置++__裏的ACL開關來確認是否打開。3d

Policy受權的查詢

policy受權通常常見有兩種,一個是項目級別的,一個是role級別的。code

get policy;--獲取項目級別的policy配置;
get policy on role <rolename>;--獲取指定的role policy設置。

image.png | left | 595x662

做者: 禕休
原文連接
本文爲雲棲社區原創內容,未經容許不得轉載。htm

相關文章
相關標籤/搜索