角色規劃
當需要對一組使用者賦予相同的許可權時,可以使用角色來授權。角色(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內建角色的使用者。 |
||
|
查看專案中已建立的角色列表。 |
||||
|
刪除專案中已存在的角色。 |
使用限制
僅華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華南1(深圳)地區支援規劃與管理租戶層級角色。
專案層級管理角色許可權說明
專案層級管理角色擁有的管理類許可權說明如下。
|
權限類別 |
客體 |
操作 |
說明 |
專案所有者 |
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控制台建立租戶層級角色的操作步驟如下:
-
登入MaxCompute控制台,在左上方選擇地區。
-
在角色管理頁簽,單擊新增角色。
-
在新增角色對話方塊,配置下表所列資訊。
參數名稱
說明
角色名稱
建立租戶層級角色的名稱。在阿里雲帳號內唯一。命名需要滿足如下要求:
-
以字母開頭
-
只能包含字母、底線(_)或數字
-
長度為6~64個字元
policy內容
角色的權限原則。您可以直接在介面上根據原則範本編輯策略代碼。
-
-
確認填寫無誤後,單擊確定。
修改角色(租戶層級)
僅支援修改角色的權限原則,不支援修改角色名稱。
通過MaxCompute控制台修改租戶層級角色的權限原則操作步驟如下:
-
登入MaxCompute控制台,在左上方選擇地區。
-
在角色管理頁簽的目標角色的操作列,單擊許可權管理。
-
在編輯角色對話方塊,單擊確定。
刪除角色(租戶層級)
通過MaxCompute控制台刪除租戶層級角色的操作步驟如下:
-
登入MaxCompute控制台,在左上方選擇地區。
-
在角色管理頁簽的目標角色的操作列,單擊刪除。
-
在刪除角色對話方塊,單擊確定。
建立角色(專案層級)
在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"報錯。