角色(Role)是权限的集合,当需要对一组用户赋予相同的权限时,可以使用角色来授权。基于角色的授权可以简化授权流程,降低授权管理成本。对多个用户执行相同授权操作时,应优先考虑使用角色授权。本文为您介绍MaxCompute支持的角色类型及角色管理操作。
背景信息
创建MaxCompute项目后,MaxCompute在账户级别(tenant)内置了两个管理角色Super_Administrator和Admin;在项目级别(Project),除了项目所有者,还内置了两个管理角色Super_Administrator和Admin。
除此之外,MaxCompute支持您根据实际业务情况自定义角色,对用户进行分类管理。
MaxCompute支持的角色类型如下。
角色类别 | 角色名称 | 角色说明 |
---|---|---|
账户级别(tenant) | Super_Administrator | MaxCompute内置的管理角色。除了不能创建项目、删除项目、开通服务,其他在MaxCompute上的操作权限等同于阿里云账号。 |
Admin | MaxCompute内置的管理角色。用于管理所有对象及网络连接(Networklink)的权限。 | |
项目级别(Project) | Project Owner | 项目所有者。用户创建MaxCompute项目后,该用户为此项目的所有者,拥有项目的所有权限。
除项目所有者之外,任何人都无权访问此项目内的对象,除非有项目所有者的授权许可。 |
Super_Administrator | MaxCompute内置的管理角色。拥有操作项目内所有资源的权限和管理类权限。权限详细信息,请参见项目级别管理角色权限说明。
项目所有者或具备Super_Administrator角色的用户可以将Super_Administrator角色赋予其他用户。 |
|
Admin | MaxCompute内置的管理角色。拥有操作项目内所有资源的权限和部分基础管理类权限。权限详细信息,请参见项目级别管理角色权限说明。
项目所有者可以将Admin角色赋予其他用户。Admin角色不能将Admin权限赋予其他用户、不能设定项目的安全配置、不能修改项目的鉴权模型、所对应的权限不能被修改。 |
|
自定义角色 | 非MaxCompute内置的角色,需要用户自定义。 |
MaxCompute支持的角色管理操作如下。
角色类型 | 操作 | 说明 | 操作人角色 | 操作入口 |
---|---|---|---|---|
项目级别(Project) | 创建角色(项目级别) | 创建项目级别的新角色。 | 项目所有者(Project Owner)或具备项目级别的MaxCompute内置角色的用户。 | |
查看角色列表(项目级别) | 查看项目中已创建的角色列表。 | |||
删除角色(项目级别) | 删除项目中已存在的角色。 |
项目级别管理角色权限说明
权限类别 | 客体 | 操作 | 说明 | 项目所有者 | 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>;
- 参数说明
参数名称 是否必填 说明 role_name 是 指定新建角色的名称,项目内唯一。命名需要满足如下要求: - 以字母开头
- 只能包含字母或数字
- 长度不超过64个字符
您可以通过MaxCompute客户端执行
list roles;
命令查看已创建的角色信息。 - 使用示例
创建一个Worker角色。命令示例如下。
create role Worker;
查看角色列表(项目级别)
查看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;
后续指引
完成角色规划后,您可以根据实际业务需要执行授权操作:角色授权。