角色规划

当需要对一组用户赋予相同的权限时,可以使用角色来授权。角色(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角色的用户。

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项目中被删除后,与该角色相关的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控制台创建租户级别角色的操作步骤如下:

  1. 登录MaxCompute控制台,在左上角选择地域。

  2. 在左侧导航栏单击租户管理

  3. 租户管理页面,单击角色管理

  4. 角色管理页签,可以执行以下操作。

    • 新增租户角色。

      单击新增角色新增角色对话框,配置下表所列信息。

      参数名称

      说明

      角色名称

      新建租户级别角色的名称。在阿里云账号内唯一。命名需要满足如下要求:

      • 以字母开头

      • 只能包含字母、下划线(_)或数字

      • 长度为6~64个字符

      policy内容

      角色的权限策略。您可以直接在界面上根据策略模板编辑策略代码。

      单击确定,创建成功则在角色列表中显示。 具体角色授权请参见租户级别角色授权

    • 租户角色管理。

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

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

后续指引

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

  • 完成创建角色后,需将角色绑定至用户,用户会同时具备角色相应的权限,即通过角色为用户授予权限,操作详情请参见将角色赋予用户