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

相关文章
相关标签/搜索