MaxCompute支援使用者在MaxCompute控制台通過角色為RAM帳號(RAM使用者、RAM角色)授予相應的MaxCompute許可權。本文為您介紹各類許可權的授權操作步驟與樣本。
專案級管理類許可權授權
MaxCompute專案級管理類許可權主要包括進行專案安全配置、專案級使用者與角色許可權管理、Package管理、Label許可權管控、清理到期許可權等,更多資訊請參見專案管理類許可權一覽表。
操作步驟
登入MaxCompute控制台,在左上方選擇地區。
在左側導覽列選擇工作區 > 專案管理。
在專案管理頁面,單擊目標專案操作列的管理。
在角色許可權頁簽,您可以建立管理類(Admin)角色或修改已有的管理類(Admin)角色許可權。
說明預設只有阿里雲帳號(主帳號)有許可權對專案進行角色管理,如果您需要以RAM帳號(RAM使用者/RAM角色)進行,需要擁有對應專案的系統管理權限角色。
建立管理類(Admin)角色
在專案配置頁面,單擊角色許可權。
在角色許可權頁簽,單擊新增專案層級角色。
在建立角色對話方塊,建立管理類(Admin)角色,填寫Policy授權策略。
單擊確定,完成建立角色與授權。
修改已有的管理類(Admin)角色許可權
在專案配置頁面,單擊角色許可權。
在角色許可權頁簽,單擊目標角色操作列的編輯角色,進行Policy授權策略修改。
單擊確定,完成已有角色權限原則修改。
相關Action及Resource取值請參見專案管理類許可權一覽表。本文檔依據管理模組提供部分Policy授權樣本。
單擊目標角色操作列的成員管理,在成員管理對話方塊可以查看角色成員、將角色賦予使用者或將使用者從角色裡移除(即收回賦予使用者的角色)。
Policy樣本
同一模組的管理類許可權一般會涉及多類操作及多類資源許可權,因此樣本中大多使用萬用字元
*
表達,實現一次操作對一組對象進行授權。相關Action及Resource取值請參見專案管理類許可權一覽表。
需要將樣本中的
project_name
替換為待授權的MaxCompute專案名稱。
支援角色管理類許可權的Policy樣本。
{ "Statement": [ { "Action": [ "odps:*" ], "Effect": "Allow", "Resource": [ "acs:odps:*:projects/project_name/authorization/roles", "acs:odps:*:projects/project_name/authorization/roles/*/*" ] } ], "Version": "1" }
支援Package管理類許可權的Policy樣本。
{ "Statement": [ { "Action": [ "odps:*" ], "Effect": "Allow", "Resource": [ "acs:odps:*:projects/project_name/authorization/packages", "acs:odps:*:projects/project_name/authorization/packages/*", "acs:odps:*:projects/project_name/authorization/packages/*/*/*" ] } ], "Version": "1" }
說明在控制台進行Package管理依賴Project的
list
許可權,因此需要先授予執行人當前Project的list
許可權,通過控制台的授權請參見專案級對象操作許可權授權;通過命令列授權請參見通過命令系統管理使用者許可權。支援修改專案安全配置的系統管理權限Policy樣本。
{ "Statement":[ { "Action":[ "odps:*" ], "Effect":"Allow", "Resource":[ "acs:odps:*:projects/project_name/authorization/configurations/*" ] } ], "Version":"1" }
支援專案使用者管理的Policy樣本。
{ "Statement":[ { "Action":[ "odps:*" ], "Effect":"Allow", "Resource":[ "acs:odps:*:projects/project_name/authorization/users" ] } ], "Version":"1" }
支援所有管理類許可權的Policy樣本。
{ "Statement":[ { "Action":[ "odps:*" ], "Effect":"Allow", "Resource":[ "acs:odps:*:projects/project_name/authorization/*" ] } ], "Version":"1" }
專案級對象操作許可權授權
專案級對象操作許可權主要包括對專案(Project)、表(Table)、函數(Function)、資源(Resource)等專案及專案內對象的操作許可權,如CreateTable、CreateInstacne、SelectTable等。更多資訊請參見專案及專案內對象許可權一覽表。
操作步驟
登入MaxCompute控制台,在左上方選擇地區。
在左側導覽列選擇工作區 > 專案管理。
在專案管理頁面,單擊目標專案操作列的管理。
在角色許可權頁簽,您可以建立資源操作類(Resource)角色或修改已有的資源操作類(Resource)角色許可權。
說明預設只有阿里雲帳號有許可權對專案進行角色管理,如果您需要以RAM帳號(RAM使用者/RAM角色)操作,需要擁有對應專案的系統管理權限角色。
建立資源操作類(Resource)角色
在專案配置頁面,單擊角色許可權。
在角色許可權頁簽,單擊新增專案層級角色。
在建立角色對話方塊,建立資源操作類(Resource)角色,進行ACL授權或Policy授權策略填寫。
單擊確定,完成建立角色與授權。
修改已有的資源操作類(Resource)角色許可權
在專案配置頁面,單擊角色許可權。
在角色許可權頁簽,單擊目標角色操作列的編輯角色,進行ACL授權或Policy授權策略修改。
單擊確定,完成已有角色權限原則修改。
相關許可權請參見專案及專案內對象許可權一覽表。本文檔提供控制台ACL及Policy授權樣本,詳情請參見專案級管理類許可權授權。
單擊目標角色操作列的成員管理,在成員管理對話方塊可以查看角色成員、將角色賦予使用者或將使用者從角色裡移除(即收回賦予使用者的角色)。
授權樣本
專案級對象操作許可權的Action及Object請參見專案及專案內對象許可權一覽表。
需要將樣本中的
project_name
替換為待授權的MaxCompute專案名稱。
樣本一:通過ACL方式為資源操作類(Resource)角色授予在專案(Project)中建立表(CreateTable)、建立執行個體(CreateInstance)、查看專案所有類型的對象列表(List)、讀取所有表(Table)的元資訊(Describe)和表資料(Select)的許可權。
授予在專案中建立表、建立執行個體以及查看所有對象列表許可權。
授予讀取所有表的元資訊(Describe)和表資料(Select)的許可權。
說明提交的時候請不要關閉進度條或頁面,否則授權將會中斷。
樣本二:通過Policy方式為資源操作類(Resource)角色授予在專案(Project)中建立表(CreateTable)、建立執行個體(CreateInstance)、查看專案所有類型的對象列表(List)、讀取所有表(Table)的元資訊(Describe)和表資料(Select)的許可權。
{ "Statement": [{ "Action": ["odps:CreateTable","odps:CreateInstance","odps:List"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name"]}, { "Action": ["odps:Describe","odps:Select"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/tables/*"]}], "Version": "1"}
樣本三:通過Policy方式為資源操作類(Resource)角色授予在專案內所有tmp開頭的表(Table)的元資訊(Describe)和表查詢(Select),讀取、更新所有資源,讀取、更新所有函數的許可權,並禁止刪除所有表。
{ "Statement": [{ "Action": ["odps:Describe","odps:Select"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/tables/tmp_*"]}, { "Action": ["odps:Read","odps:Write"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/resources/*"]}, { "Action": ["odps:Read","odps:Write"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/functions/*"]}, { "Action": ["odps:Drop"], "Effect": "Deny", "Resource": ["acs:odps:*:projects/project_name/tables/*"]}], "Version": "1"}
如果專案開啟了按Schema儲存(Schema操作),則需將策略修改為:
{ "Statement": [{ "Action": ["odps:Describe","odps:Select"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/schemas/*/tables/tmp_*"]}, { "Action": ["odps:Read","odps:Write"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/schemas/*/resources/*"]}, { "Action": ["odps:Read","odps:Write"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/schemas/*/functions/*"]}, { "Action": ["odps:Drop"], "Effect": "Deny", "Resource": ["acs:odps:*:projects/project_name/schemas/*/tables/*"]}], "Version": "1"}
租戶層級管理類許可權授權
租戶層級管理類許可權指租戶層級使用者與角色許可權管理,包括添加/刪除租戶使用者、建立/刪除租戶層級角色、查看租戶層級使用者/角色列表及許可權內容、將租戶層級角色授予使用者、取消使用者被授予的租戶層級角色、將租戶層級角色添加至專案、移出專案內的租戶層級角色等。
僅阿里雲帳號或者具備租戶層級Super_Administrator和Admin角色的使用者可操作租戶層級許可權管理。
若希望授予RAM帳號(RAM使用者/RAM角色)管理類許可權,僅支援通過阿里雲帳號賦予RAM帳號Super_Administrator和Admin角色以實現許可權授予。但租戶層級Super_Administrator和Admin角色系統管理權限較大(具體許可權請參見角色規劃),請謹慎操作。租戶層級角色資訊請參見租戶層級角色授權。
登入MaxCompute控制台,在左上方選擇地區。
在左側導覽列選擇租戶管理 > 使用者管理。
在使用者管理頁面,單擊待授權使用者操作列的修改角色,在編輯角色對話方塊選擇相應角色授予。
租戶層級對象操作許可權授權
租戶層級對象操作許可權包括對租戶級對象Quota和網路連接(Networklink)的操作。例如use quota
、CreateNetworkLink
等。租戶層級對象操作還包括實現一帳號管理多個Project對象,提升許可權管理的便捷性。更多租戶層級角色資訊請參見租戶層級角色授權。
操作步驟
登入MaxCompute控制台,在左上方選擇地區。
在左側導覽列選擇租戶管理 > 角色管理。
在角色管理頁面,建立新的租戶級角色或管理已有自訂角色的許可權。
說明僅阿里雲帳號或者具備租戶層級Super_Administrator和Admin角色的使用者可操作租戶層級許可權管理。
新增租戶級角色
在角色管理頁面,單擊新增角色。
在新增角色對話方塊,配置如下資訊。
參數名稱
說明
角色名稱
建立賬戶層級角色的名稱。在阿里雲帳號內唯一。命名需要滿足如下要求:以字母開頭。只能包含字母、底線(_)或數字。長度為6~64個字元。
policy內容
角色的權限原則。您可以直接在介面上根據原則範本編輯策略代碼。
單擊確定,完成建立租戶級角色與授權。
修改已有的已有租戶級角色許可權
在角色管理頁面,單擊目標角色操作列的許可權管理,修改Policy授權策略。
單擊確定,完成已有角色的權限原則修改。
在使用者管理頁面,單擊待授權使用者操作列的修改角色,在編輯角色對話方塊選擇相應角色授予。
Policy樣本
樣本中使用萬用字元
*
表達,實現一次操作對一組對象進行授權。具體的Action及Resource請參見租戶內對象許可權一覽表。
樣本一:為租戶級角色授予所有Region下所有Quota的Usage操作及所有Networklinks的
CreateNetworkLink
、List
和Execute
操作許可權。{ "Statement":[ { "Action":[ "odps:Usage" ], "Effect":"Allow", "Resource":[ "acs:odps:*:regions/*/quotas/*" ] }, { "Action":[ "odps:CreateNetworkLink", "odps:List", "odps:Execute" ], "Effect":"Allow", "Resource":[ "acs:odps:*:networklinks/*" ] } ], "Version":"1" }
樣本二:為租戶級角色授予MaxCompute專案
project_1
和project_2
的所有操作許可權。{ "Statement":[ { "Action":[ "odps:*" ], "Effect":"Allow", "Resource":[ "acs:odps:*:projects/project_1", "acs:odps:*:projects/project_1/*", "acs:odps:*:projects/project_2", "acs:odps:*:projects/project_2/*" ] } ], "Version":"1" }
說明通過租戶層級角色對Project對象授權後,需要將對應的租戶級角色添加到Project中才會生效,因此需要Project的Owner或擁有Project Super_Administrator或Admin角色添加租戶角色,在角色許可權頁簽,角色層級選擇租戶,單擊目標角色操作列的啟用。