MaxCompute新增租户级别的权限管理方式,实现一账号管理多个Project对象权限,提升权限管理的便捷性。本文为您介绍租户级别角色授权流程、权限命令和管理租户权限。

背景信息

当前MaxCompute的Project、Table、Function、Resource、Instance等对象的操作权限都是Project级别,用户需要添加到Project中再进行授权管理。本文将介绍新的租户级别的权限管理方式,用户添加到租户tenant, 将Project(可同时多个project)和Project下的Table、Function、Resource、Instance、Quota和NetworkLink对象的Action通过Policy方式授权给租户角色,Policy方式授权请参见Policy概况。再将租户角色授权给租户下的用户,实现通过账号一次性对多个Project的对象进行权限管理。

使用限制

  • 仅阿里云账号或者具备租户级别Super_Administrator和Admin角色的用户可操作租户级别权限管理。
  • 租户级别权限只能通过租户角色(Role)进行权限控制。
  • 租户角色(Role)只能通过Policy方式授权。

租户级别角色授权流程

授权流程图如下所示。授权流程
  1. 创建租户角色t_role1。
  2. 通过Policy方式给租户角色t_role1授权,Policy方式授权请参见Policy概况
  3. 将用户添加到租户角色t_role1。
  4. 将租户角色t_role1授权给用户。
  5. (仅涉及到Project对象权限时需要)Project添加租户角色t_role1。

相关租户级别权限命令

  • 涉及权限命令的 SQL语句。
    --以下命令可在本租户内可执行的project里发起。
    
    --添加/删除user到租户
        Add tenant user <user_name>;
        Remove tenant user <user_name>;
    --查看租户中的users、roles
        List tenant users;
        List tenant roles;
    --创建/删除租户级别role
        Create tenant role <role_name>;
        drop tenant role <role_name>;
    -- 将租户role授权/移除user
        Grant tenant role <rolename> to user <user_name>;
        Revoke tenant role <rolename> from user <user_name>;
    
    --给租户role授予各对象的Action,目前只policy方式支持
        Put policy <policy_file> on tenant role <role_name>;
        Get policy on tenant role <role_name>;
    
    --将租户role加入/删除到project
        add tenant role <rolename> to project <projectname>;
        remove tenant role <rolename> from project <projectname>;
    
    --查看租户role/user的权限
        Show grants for tenant role <role_name>;
        Show grants for tenant user <user_name>;
        Show principals for tenant [role] <role_name>;
                        
  • 租户角色Policy示例。

    对于projects对象表示允许project_1和project_1的所有操作。对于networklink对象表示允许对所有networklinks进行CreateNetworkLinkExecute操作。对于Quota对象表示允许对所有Region下所有Quota进行Usage操作。

    {
        "Statement":[
            {
                "Action":[
                    "odps:*"
                ],
                "Effect":"Allow",
                "Resource":[
                    "acs:odps:*:projects/project_1",
                    "acs:odps:*:projects/project_1/*",
                    "acs:odps:*:projects/project_2",
                    "acs:odps:*:projects/project_2/*"
                ]
            },
            {
                "Action":[
                    "odps:CreateNetworkLink",
                    "odps:List",
                    "odps:Execute"
                ],
                "Effect":"Allow",
                "Resource":[
                    "acs:odps:*:networklinks/*"
                ]
            },
            {
                "Action":[
                    "odps:Usage"
                ],
                "Effect":"Allow",
                "Resource":[
                    "acs:odps:*:regions/*/quotas/*"
                ]
            }
        ],
        "Version":"1"
    }

通过MaxCompute控制台管理租户权限

  • 新增租户角色。
    1. 登录MaxCompute控制台,在左上角选择地域。
    2. 在左侧导航栏单击租户管理
    3. 租户管理页面,单击角色管理
    4. 角色管理页签,单击新增角色
    5. 新增角色对话框,配置下表所列信息。
      参数名称 说明
      角色名称 新建账户级别角色的名称。在阿里云账号内唯一。命名需要满足如下要求:
      • 以字母开头。
      • 只能包含字母、下划线(_)或数字。
      • 长度为6~64个字符。
      policy内容 角色的权限策略。您可以直接在界面上根据策略模板编辑策略代码。
    6. 单击确定,创建成功则在角色列表中显示。 具体角色授权请参见租户级别角色授权
    7. 租户管理页面,单击用户管理,可以进行租户级别用户管理,可以新增用户(仅当前主账号下的子账号),同时给用户授予租户级别角色。
  • 管理租户角色。
    1. 登录MaxCompute控制台,在左上角选择地域。
    2. 在左侧导航栏单击租户管理
    3. 租户管理页面,单击角色管理
    4. 在角色列表的操作列可以进行查看、删除、修改角色。
  • 管理租户用户。
    1. 登录MaxCompute控制台,在左上角选择地域。
    2. 在左侧导航栏单击租户管理
    3. 租户管理页面,单击用户管理

      可以进行租户级别用户管理,可以新增用户(仅当前主账号下的子账号),同时给用户授予租户级别角色。

  • Project增加租户角色。

    租户级别的角色对于Project对象相关授权,需要添加到Project中,在Project里才会生效,因此需要Project的Owner或拥有Project的Super_Administrator或Admin角色添加租户角色,Project增加租户角色请参见项目管理(新版)