• MaxCompute/DataWorks权限问题排查建议


    MaxCompute/DataWorks权限问题排查建议

    __前提:__MaxCompute与DataWorks为两个产品,在权限体系上既有交集又要一定的差别。在权限问题之前需了解两个产品独特的权限体系。

    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/*: *

    排查问题建议:

    在普及完两个产品的权限体系之外,更多的用户会遇到各种权限的疑问或者问题。通常可以通过如下方式来排查:

    • 首先,查看当前用户或指定用户所拥有的权限。
    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开关来确认是否打开。

    Policy授权的查询

    policy授权一般常见有两种,一个是项目级别的,一个是role级别的。

    get policy;--获取项目级别的policy配置;
    get policy on role <rolename>;--获取指定的role policy设置。

    image.png | left | 595x662


    原文链接
    本文为云栖社区原创内容,未经允许不得转载。

  • 相关阅读:
    超级庄家吕梁和中国股市第一案
    汉唐的丧钟
    最牛营业部——国信泰然九路揭秘
    PMBOK
    挣值管理(PV、EV、AC、SV、CV、SPI、CPI)
    没有理智的欲望会走向毁灭,没有欲望的理智会永守清贫
    安信证券行业分析师离职风波评论
    知名证券分析师
    【Python】排列组合itertools & 集合set
    测试&标准说明文章
  • 原文地址:https://www.cnblogs.com/yunqishequ/p/10185157.html
Copyright © 2020-2023  润新知