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

角色类型

MaxCompute角色类型包括管理类型(Admin)角色和资源类型(Resource)角色。
  • 管理类型(Admin)角色:可以通过Policy授予管理类型权限,不支持对管理类角色授予资源权限,不支持对管理类角色通过ACL方式进行管理类权限授权。
  • 资源类型(Resource)角色:可以通过Policy或ACL方式进行资源类型权限授权,不支持对其进行管理类型权限授权。

内置角色

MaxCompute在项目级别(Project)内置了两个管理角色Super_Administrator和Admin;在租户级别(tenant)内置了两个管理角色Super_Administrator和Admin。

角色类别角色名称角色类型角色说明
项目级别(Project)Super_AdministratorAdminMaxCompute内置的管理角色。拥有操作项目内所有资源的权限和管理类权限。权限详细信息,请参见项目级别管理角色权限说明

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

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

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

租户级别(tenant)Super_AdministratorAdminMaxCompute内置的管理角色。除了不能创建项目、删除项目、开通服务,其他在MaxCompute上的操作权限等同于阿里云账号。
AdminAdminMaxCompute内置的管理角色。用于管理所有对象及网络连接(Networklink)的权限。

在项目级别(Project),除角色外,ProjectOwner(项目所有者)作为项目的拥有者,拥有项目的所有权限。除项目所有者之外,任何人都无权访问此项目内的对象,除非有项目所有者的授权许可。

自定义角色

MaxCompute支持您根据实际业务情况自定义管理类型(Admin)角色和资源类型(Resource)角色,对用户进行分类管理。

角色类别角色名称角色类型角色说明
项目级别(Project)自定义角色Admin、Resource非MaxCompute内置的角色,支持对Project管控操作权限定义(管理类角色),也支持对Project内对象资源的权限定义(资源类角色)。
租户级别(tenant)自定义角色Resource非MaxCompute内置角色,支持对Quota、Networklink、Project等对象资源定义权限(资源类角色)。

角色管理操作

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

角色类型操作说明操作人角色操作入口
项目级别(Project)创建角色(项目级别)创建项目级别的新角色。项目所有者(Project Owner)或具备项目级别的MaxCompute内置角色的用户。
查看角色列表(项目级别)查看项目中已创建的角色列表。
删除角色(项目级别)删除项目中已存在的角色。

项目级别管理角色权限说明

项目级别管理角色拥有的管理类权限说明如下。
权限类别客体操作说明项目所有者Super_Administrator角色Admin角色
项目安全配置ProjectSetSecurityConfiguration设置项目安全属性已开通已开通未开通
ProjectGetSecurityConfiguration查看项目安全配置已开通已开通已开通
受保护项目管理ProjectAddTrustedProject添加受保护项目已开通已开通未开通
ProjectRemoveTrustedProject删除受保护项目已开通已开通未开通
ProjectListTrustedProjects列出受保护项目已开通已开通已开通
用户管理ProjectAddUser添加用户已开通已开通已开通
ProjectRemoveUser删除用户已开通已开通已开通
ProjectListUsers查看用户列表已开通已开通已开通
ProjectListUserRoles查看用户拥有的角色已开通已开通已开通
角色管理ProjectCreateRole创建角色已开通已开通已开通
ProjectDescribeRole查看角色权限已开通已开通已开通
ProjectAlterRole修改角色属性已开通已开通已开通
ProjectDropRole删除角色已开通已开通已开通
ProjectListRoles查看角色列表已开通已开通已开通
角色授权RoleGrantRole将角色赋予用户已开通已开通已开通
RoleRevokeRole移除用户的角色已开通已开通已开通
RoleListRolePrincipals查看角色赋予的用户列表已开通已开通已开通
包(package)管理ProjectCreatePackage创建Package已开通已开通未开通
ProjectShowPackages查看Package列表已开通已开通未开通
PackageDescribePackage查看Package信息已开通已开通已开通
PackageDropPackage删除Package已开通已开通未开通
PackageInstallPackage安装Package已开通已开通已开通
PackageUninstallPackage卸载Package已开通已开通已开通
PackageAllowInstallPackage许可其他项目使用Package已开通已开通未开通
PackageDisallowInstallPackage撤销其他项目使用Package的许可已开通已开通未开通
PackageAddPackageResource向Package中添加资源已开通已开通未开通
PackageRemovePackageResource从Package中移除资源已开通已开通未开通
标签(Label)管理TableGrantLabel标签授权已开通已开通已开通
TableRevokeLabel撤销标签授权已开通已开通已开通
TableShowLabelGrants查看标签授权信息已开通已开通已开通
TableSetDataLabel设置用户、角色的标签已开通已开通已开通
清理过期权限ProjectClearExpiredGrants清理过期权限已开通已开通已开通
说明 已开通表示有权限,未开通表示无权限。

创建角色(项目级别)

在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;

后续指引

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