当需要对一组用户赋予相同的权限时,可以使用角色来授权。角色(Role)是权限的集合,基于角色的授权可以简化授权流程,降低授权管理成本。对多个用户执行相同授权操作时,应优先考虑使用角色授权。本文为您介绍MaxCompute支持的角色类型及角色管理操作。
角色类型
MaxCompute角色类型包括管理类型(Admin)角色和资源类型(Resource)角色。
-
管理类型(Admin)角色:可以通过Policy授予管理类型权限,不支持对管理类角色授予资源权限,不支持对管理类角色通过ACL方式进行管理类权限授权。
-
资源类型(Resource)角色:可以通过Policy或ACL方式进行资源类型权限授权,不支持对其进行管理类型权限授权。
内置角色
MaxCompute在项目级别(Project)内置了两个管理角色Super_Administrator和Admin;在租户级别(tenant)内置了两个管理角色Super_Administrator和Admin。
|
角色类别 |
角色名称 |
角色类型 |
角色说明 |
|
项目级别(Project) |
Super_Administrator |
Admin |
MaxCompute内置的管理角色。拥有操作项目内所有资源的权限和管理类权限。权限详细信息,请参见项目级别管理角色权限说明。 项目所有者或具备Super_Administrator角色的用户可以将Super_Administrator角色赋予其他用户。 |
|
Admin |
Admin |
MaxCompute内置的管理角色。拥有操作项目内所有资源的权限和部分基础管理类权限。权限详细信息,请参见项目级别管理角色权限说明。 项目所有者可以将Admin角色赋予其他用户。Admin角色不能将Admin权限赋予其他用户、不能设定项目的安全配置、不能修改项目的鉴权模型、所对应的权限不能被修改。 |
|
|
租户级别(tenant) |
Super_Administrator |
Admin |
MaxCompute内置的管理角色。拥有租户级用户管理、角色管理权限,可以将租户级内置管理角色赋予其他用户。阿里云账号或具备Super_Administrator角色的用户可以将Super_Administrator角色赋予其他用户。 |
|
Admin |
Admin |
MaxCompute内置的管理角色。拥有租户级用户管理、角色管理权限,仅支持将租户级自定义角色赋予其他用户。阿里云账号或具备Super_Administrator角色的用户可以将Admin角色赋予其他用户。 |
在项目级别(Project),除角色外,ProjectOwner(项目所有者)作为项目的拥有者,拥有项目的所有权限。除项目所有者之外,任何人都无权访问此项目内的对象,除非有项目所有者的授权许可。
自定义角色
MaxCompute支持您根据实际业务情况自定义管理类型(Admin)角色和资源类型(Resource)角色,对用户进行分类管理。
|
角色类别 |
角色名称 |
角色类型 |
角色说明 |
|
项目级别(Project) |
自定义角色 |
Admin、Resource |
非MaxCompute内置的角色,支持对Project管控操作权限定义(管理类角色),也支持对Project内对象资源的权限定义(资源类角色)。 |
|
租户级别(tenant) |
自定义角色 |
Resource |
非MaxCompute内置角色,支持对Quota、Networklink、Project等对象资源定义权限(资源类角色)。 |
角色管理操作
MaxCompute支持的角色管理操作如下。
|
角色类型 |
操作 |
说明 |
操作人角色 |
操作入口 |
|
项目级别(Project) |
创建项目级别的新角色。 |
项目所有者(Project Owner)或具备项目级别的MaxCompute内置角色的用户。 |
||
|
查看项目中已创建的角色列表。 |
||||
|
删除项目中已存在的角色。 |
||||
|
租户级别(Tenant) |
租户级别自定义角色增、删、改、查。 |
阿里云账号,或者具备租户级别Super_Administrator和Admin角色的用户。 |
项目级别管理角色权限说明
项目级别管理角色拥有的管理类权限说明如下。
|
权限类别 |
客体 |
操作 |
说明 |
项目所有者 |
Super_Administrator角色 |
Admin角色 |
|
项目安全配置 |
Project |
SetSecurityConfiguration |
设置项目安全属性 |
|
|
|
|
Project |
GetSecurityConfiguration |
查看项目安全配置 |
|
|
|
|
|
受保护项目管理 |
Project |
AddTrustedProject |
添加受保护项目 |
|
|
|
|
Project |
RemoveTrustedProject |
删除受保护项目 |
|
|
|
|
|
Project |
ListTrustedProjects |
列出受保护项目 |
|
|
|
|
|
用户管理 |
Project |
AddUser |
添加用户 |
|
|
|
|
Project |
RemoveUser |
删除用户 |
|
|
|
|
|
Project |
ListUsers |
查看用户列表 |
|
|
|
|
|
Project |
ListUserRoles |
查看用户拥有的角色 |
|
|
|
|
|
角色管理 |
Project |
CreateRole |
创建角色 |
|
|
|
|
Project |
DescribeRole |
查看角色权限 |
|
|
|
|
|
Project |
AlterRole |
修改角色属性 |
|
|
|
|
|
Project |
DropRole |
删除角色 |
|
|
|
|
|
Project |
ListRoles |
查看角色列表 |
|
|
|
|
|
角色授权 |
Role |
GrantRole |
将角色赋予用户 |
|
|
|
|
Role |
RevokeRole |
移除用户的角色 |
|
|
|
|
|
Role |
ListRolePrincipals |
查看角色赋予的用户列表 |
|
|
|
|
|
包(package)管理 |
Project |
CreatePackage |
创建Package |
|
|
|
|
Project |
ShowPackages |
查看Package列表 |
|
|
|
|
|
Package |
DescribePackage |
查看Package信息 |
|
|
|
|
|
Package |
DropPackage |
删除Package |
|
|
|
|
|
Package |
InstallPackage |
安装Package |
|
|
|
|
|
Package |
UninstallPackage |
卸载Package |
|
|
|
|
|
Package |
AllowInstallPackage |
许可其他项目使用Package |
|
|
|
|
|
Package |
DisallowInstallPackage |
撤销其他项目使用Package的许可 |
|
|
|
|
|
Package |
AddPackageResource |
向Package中添加资源 |
|
|
|
|
|
Package |
RemovePackageResource |
从Package中移除资源 |
|
|
|
|
|
标签(Label)管理 |
Table |
GrantLabel |
标签授权 |
|
|
|
|
Table |
RevokeLabel |
撤销标签授权 |
|
|
|
|
|
Table |
ShowLabelGrants |
查看标签授权信息 |
|
|
|
|
|
Table |
SetDataLabel |
设置用户、角色的标签 |
|
|
|
|
|
清理过期权限 |
Project |
ClearExpiredGrants |
清理过期权限 |
|
|
|
表示有权限,
表示无权限。
创建角色(项目级别)
在MaxCompute项目中创建新角色。
完成创建角色后,需将角色绑定至用户,用户会同时具备角色相应的权限,即通过角色为用户授予权限,操作详情请参见将角色赋予用户。
-
命令格式
create role <role_name> [privilegeproperties("type"="admin|resource")]; -
参数说明
参数名称
是否必填
说明
role_name
是
指定新建角色的名称,项目内唯一。命名需要满足如下要求:
-
以字母开头
-
只能包含字母或数字
-
长度不超过64个字符
您可以通过MaxCompute客户端执行
list roles;命令查看已创建的角色信息。privilegeproperties
否
定义role角色类型:
-
"type"="admin":即创建管理类角色,这类角色授权只能通过Policy方式进行授权。 -
"type"="resource":创建资源类角色,不指定时默认为此类型。支持ACL和Policy方式授权。
-
-
使用示例
-
创建一个Worker资源类角色,命令示例如下。
create role Worker; -
创建一个sale_admin管理类角色,命令示例如下。
create role sale_admin privilegeproperties("type"="admin");
-
查看角色列表(项目级别)
查看MaxCompute项目中已创建的角色列表。
-
命令格式
list roles; -
使用示例
查看MaxCompute项目中已创建的角色信息。命令示例如下。
list roles;返回结果如下。
admin super_administrator worker
删除角色(项目级别)
在MaxCompute项目中删除已创建的角色。
-
命令格式
drop role <role_name>; -
注意事项
删除一个角色时,MaxCompute会检查该角色是否绑定了用户。如果存在用户,则删除角色会失败。只有当角色中的所有用户都被撤销时,才能成功删除角色。解绑用户信息,请参见收回赋予用户的角色。
-
参数说明
参数名称
是否必填
说明
role_name
是
指定待删除角色的名称。
您可以通过MaxCompute客户端执行
list roles;命令获取已创建的角色信息。 -
使用示例
删除Worker角色。
drop role Worker;
清除权限信息
当角色在MaxCompute项目中被删除后,与该角色相关的ACL、Policy、Label等权限数据并不会随之删除,仍然会保留在项目中。若之后在同一项目内创建了同名的新角色,则这个新角色将继承原来的角色权限。为避免这种情况,MaxCompute提供了清除角色权限的功能。若已删除的角色仍有ACL、Policy、Label等权限信息残留,项目的所有者或者具备Admin、Super_Administrator角色的用户可以执行以下命令,清除权限信息。
-
命令格式
purge privs from role <role_name>; -
参数说明
参数名称
是否必填
说明
role_name
是
指定待删除角色的名称。
您可以通过MaxCompute客户端执行
list roles;命令获取已创建的角色信息。说明在清除角色权限信息时,请确认此角色已被删除,如果未删除角色,执行该命令会返回
"Principal <role_name> still exist in the project"报错。
租户角色管理
通过MaxCompute控制台创建租户级别角色的操作步骤如下:
-
登录MaxCompute控制台,在左上角选择地域。
-
在左侧导航栏单击租户管理。
-
在租户管理页面,单击角色管理
-
在角色管理页签,可以执行以下操作。
-
新增租户角色。
单击新增角色,新增角色对话框,配置下表所列信息。
参数名称
说明
角色名称
新建租户级别角色的名称。在阿里云账号内唯一。命名需要满足如下要求:
-
以字母开头
-
只能包含字母、下划线(_)或数字
-
长度为6~64个字符
policy内容
角色的权限策略。您可以直接在界面上根据策略模板编辑策略代码。
单击确定,创建成功则在角色列表中显示。 具体角色授权请参见租户级别角色授权。
-
-
租户角色管理。
单击目标角色的操作列的删除和权限管理,可以对租户角色进行管理。
-
-
在租户管理 > 用户管理页面,可以进行租户级别用户管理,可以新增用户(仅当前主账号下的子账号),同时给用户授予租户级别角色。