黑马程序员技术交流社区

标题: 【上海校区】MaxCompute/DataWorks权限问题排查建议 [打印本页]

作者: 梦缠绕的时候    时间: 2018-12-24 14:49
标题: 【上海校区】MaxCompute/DataWorks权限问题排查建议
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安全管理员


odps@ clouder_bi>describe role admin;[users]ALIYUN$***@aliyun-test.comAuthorization Type: Admin
MaxCompute project owner可以将admin角色授予其他子账号,用于进行MaxCompute底层的权限模型管理。
odps@ clouder_bi>describe role role_project_dev;[users]RAM$yangyi.pt@aliyun-test.com:yangyitestAuthorization Type: PolicyA    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
show SecurityConfiguration;--查看项目空间的安全配置
除了通过命令行方式,也可以通过__++DataWorks>项目管理>MaxCompute高级配置++__里的ACL开关来确认是否打开。
Policy授权的查询
policy授权一般常见有两种,一个是项目级别的,一个是role级别的。
get policy;--获取项目级别的policy配置;get policy on role <rolename>;--获取指定的role policy设置。



作者: 不二晨    时间: 2018-12-26 10:01





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2