全部產品
Search
文件中心

:角色規劃

更新時間:Jun 19, 2024

當需要對一組使用者賦予相同的許可權時,可以使用角色來授權。角色(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內建的管理角色。除了不能建立專案、刪除專案、開通服務,其他在MaxCompute上的操作許可權等同於阿里雲帳號。

Admin

Admin

MaxCompute內建的管理角色。用於管理所有對象及網路連接(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角色

專案安全配置

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"報錯。

後續指引

  • 完成角色規劃後,您可以根據實際業務需要執行授權操作:專案層級角色授權

  • 完成建立角色後,需將角色綁定至使用者,使用者會同時具備角色相應的許可權,即通過角色為使用者授予許可權,操作詳情請參見將角色賦予使用者