角色(Role)是权限的集合,当需要对一组用户赋予相同的权限时,可以使用角色来授权。基于角色的授权可以简化授权流程,降低授权管理成本。对多个用户执行相同授权操作时,应优先考虑使用角色授权。本文为您介绍MaxCompute支持的角色类型及角色管理操作。

背景信息

创建MaxCompute项目后,MaxCompute在租户级别(tenant)内置了两个管理角色Super_Administrator和Admin;在项目级别(Project),除了项目所有者,还内置了两个管理角色Super_Administrator和Admin。

除此之外,MaxCompute支持您根据实际业务情况自定义管理类型(Admin)角色和资源类型(Resource)角色,对用户进行分类管理。
  • 管理类型(Admin)角色:可以通过Policy授予管理类型权限,不支持对管理类角色授予资源权限,不支持对管理类角色通过ACL方式进行管理类权限授权。
  • 资源类型(Resource)角色:可以通过Policy或ACL方式进行资源类型权限授权,不支持对其进行管理类型权限授权。

MaxCompute支持的角色类型如下。

角色类别 角色名称 角色类型 角色说明
租户级别(tenant) Super_Administrator Admin MaxCompute内置的管理角色。除了不能创建项目、删除项目、开通服务,其他在MaxCompute上的操作权限等同于阿里云账号。
Admin Admin MaxCompute内置的管理角色。用于管理所有对象及网络连接(Networklink)的权限。
自定义角色 Resource 非MaxCompute内置角色,支持对Quota、Networklink、Project等对象资源定义权限(资源类角色)。
项目级别(Project) Project Owner 不涉及 项目所有者。用户创建MaxCompute项目后,该用户为此项目的所有者,拥有项目的所有权限。

除项目所有者之外,任何人都无权访问此项目内的对象,除非有项目所有者的授权许可。

Super_Administrator Admin MaxCompute内置的管理角色。拥有操作项目内所有资源的权限和管理类权限。权限详细信息,请参见项目级别管理角色权限说明

项目所有者或具备Super_Administrator角色的用户可以将Super_Administrator角色赋予其他用户。

Admin Admin MaxCompute内置的管理角色。拥有操作项目内所有资源的权限和部分基础管理类权限。权限详细信息,请参见项目级别管理角色权限说明

项目所有者可以将Admin角色赋予其他用户。Admin角色不能将Admin权限赋予其他用户、不能设定项目的安全配置、不能修改项目的鉴权模型、所对应的权限不能被修改。

自定义角色 Admin、Resource 非MaxCompute内置的角色,支持对Project管控操作权限定义(管理类角色),也支持对Project内对象资源的权限定义(资源类角色)。

MaxCompute支持的角色管理操作如下。

角色类型 操作 说明 操作人角色 操作入口
项目级别(Project) 创建角色(项目级别) 创建项目级别的新角色。 项目所有者(Project Owner)或具备项目级别的MaxCompute内置角色的用户。
查看角色列表(项目级别) 查看项目中已创建的角色列表。
删除角色(项目级别) 删除项目中已存在的角色。
租户级别(Tenant) 租户级别自定义角色增、删、改、查。 阿里云账号,或者具备租户级别Super_Administrator和Admin角色的用户。 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> [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控制台创建租户级别角色的操作步骤如下:
  1. 登录MaxCompute控制台,在左上角选择地域。
  2. 在左侧导航栏单击租户管理
  3. 租户管理页面,单击角色管理
  4. 角色管理页签,可以执行以下操作。
    • 新增租户角色。
      单击新增角色新增角色对话框,配置下表所列信息。
      参数名称 说明
      角色名称 新建租户级别角色的名称。在阿里云账号内唯一。命名需要满足如下要求:
      • 以字母开头
      • 只能包含字母、下划线(_)或数字
      • 长度为6~64个字符
      policy内容 角色的权限策略。您可以直接在界面上根据策略模板编辑策略代码。
      单击确定,创建成功则在角色列表中显示。 具体角色授权请参见租户级别权限
    • 租户角色管理。

      单击目标角色的操作列的删除编辑,可以对租户角色进行管理。

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

后续指引

完成角色规划后,您可以根据实际业务需要执行授权操作:角色授权