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方式授权。
租户级别角色授权流程

- 创建租户角色t_role1。
- 通过Policy方式给租户角色t_role1授权,Policy方式授权请参见Policy概况。
- 将用户添加到租户角色t_role1。
- 将租户角色t_role1授权给用户。
- (仅涉及到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进行CreateNetworkLink
和Execute
操作。对于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控制台管理租户权限
- 新增租户角色。
- 登录MaxCompute控制台,在左上角选择地域。
- 在左侧导航栏单击租户管理。
- 在租户管理页面,单击角色管理
- 在角色管理页签,单击新增角色。
- 在新增角色对话框,配置下表所列信息。
参数名称 说明 角色名称 新建账户级别角色的名称。在阿里云账号内唯一。命名需要满足如下要求: - 以字母开头。
- 只能包含字母、下划线(_)或数字。
- 长度为6~64个字符。
policy内容 角色的权限策略。您可以直接在界面上根据策略模板编辑策略代码。 - 单击确定,创建成功则在角色列表中显示。 具体角色授权请参见租户级别角色授权。
- 在租户管理页面,单击用户管理,可以进行租户级别用户管理,可以新增用户(仅当前主账号下的子账号),同时给用户授予租户级别角色。
- 管理租户角色。
- 登录MaxCompute控制台,在左上角选择地域。
- 在左侧导航栏单击租户管理。
- 在租户管理页面,单击角色管理
- 在角色列表的操作列可以进行查看、删除、修改角色。
- 管理租户用户。
- 登录MaxCompute控制台,在左上角选择地域。
- 在左侧导航栏单击租户管理。
- 在租户管理页面,单击用户管理。
可以进行租户级别用户管理,可以新增用户(仅当前主账号下的子账号),同时给用户授予租户级别角色。
- Project增加租户角色。
租户级别的角色对于Project对象相关授权,需要添加到Project中,在Project里才会生效,因此需要Project的Owner或拥有Project的Super_Administrator或Admin角色添加租户角色,Project增加租户角色请参见项目管理(新版)。