當需要對一組用戶賦予相同的權限時,可以使用角色來授權。角色(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角色的用戶。 |
項目級別管理角色權限說明
項目級別管理角色擁有的管理類權限說明如下。
權限類別 | 客體 | 操作 | 說明 | 項目所有者 | 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控制臺創建租戶級別角色的操作步驟如下:
登錄MaxCompute控制臺,在左上角選擇地域。
在左側導航欄單擊租戶管理。
在租戶管理頁面,單擊角色管理
在角色管理頁簽,可以執行以下操作。
新增租戶角色。
單擊新增角色,新增角色對話框,配置下表所列信息。
參數名稱
說明
角色名稱
新建租戶級別角色的名稱。在阿里云賬號內唯一。命名需要滿足如下要求:
以字母開頭
只能包含字母、下劃線(_)或數字
長度為6~64個字符
policy內容
角色的權限策略。您可以直接在界面上根據策略模板編輯策略代碼。
單擊確定,創建成功則在角色列表中顯示。 具體角色授權請參見租戶級別角色授權。
租戶角色管理。
單擊目標角色的操作列的刪除和權限管理,可以對租戶角色進行管理。
在租戶管理 > 用戶管理頁面,可以進行租戶級別用戶管理,可以新增用戶(僅當前主賬號下的子賬號),同時給用戶授予租戶級別角色。