MaxCompute支持用戶在MaxCompute控制臺通過角色為RAM賬號(RAM用戶、RAM角色)授予相應的MaxCompute權限。本文為您介紹各類權限的授權操作步驟與示例。
項目級管理類權限授權
MaxCompute項目級管理類權限主要包括進行項目安全配置、項目級用戶與角色權限管理、Package管理、Label權限管控、清理過期權限等,更多信息請參見項目管理類權限一覽表。
操作步驟
登錄MaxCompute控制臺,在左上角選擇地域。
在左側導航欄選擇工作區 > 項目管理。
在項目管理頁面,單擊目標項目操作列的管理。
在角色權限頁簽,您可以創建管理類(Admin)角色或修改已有的管理類(Admin)角色權限。
說明默認只有阿里云賬號(主賬號)有權限對項目進行角色管理,如果您需要以RAM賬號(RAM用戶/RAM角色)進行,需要擁有對應項目的管理權限角色。
創建管理類(Admin)角色
在項目配置頁面,單擊角色權限。
在角色權限頁簽,單擊新增項目級別角色。
在新建角色對話框,創建管理類(Admin)角色,填寫Policy授權策略。
單擊確定,完成新建角色與授權。
修改已有的管理類(Admin)角色權限
在項目配置頁面,單擊角色權限。
在角色權限頁簽,單擊目標角色操作列的編輯角色,進行Policy授權策略修改。
單擊確定,完成已有角色權限策略修改。
相關Action及Resource取值請參見項目管理類權限一覽表,授權語法請參見Policy概況。本文檔依據管理模塊提供部分Policy授權示例。
單擊目標角色操作列的成員管理,在成員管理對話框可以查看角色成員、將角色賦予用戶或將用戶從角色里移除(即收回賦予用戶的角色)。
Policy示例
同一模塊的管理類權限一般會涉及多類操作及多類資源權限,因此示例中大多使用通配符
*
表達,實現一次操作對一組對象進行授權。相關Action及Resource取值請參見項目管理類權限一覽表。
授權語法請參見Policy概況。
需要將示例中的
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授權策略修改。
單擊確定,完成已有角色權限策略修改。
相關權限請參見項目及項目內對象權限一覽表,授權語法請參見Policy概況。本文檔提供控制臺ACL及Policy授權示例,詳情請參見項目級管理類權限授權。
單擊目標角色操作列的成員管理,在成員管理對話框可以查看角色成員、將角色賦予用戶或將用戶從角色里移除(即收回賦予用戶的角色)。
授權示例
項目級對象操作權限的Action及Object請參見項目及項目內對象權限一覽表。
授權語法請參見Policy概況。
需要將示例中的
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請參見租戶內對象權限一覽表。
授權語法請參見Policy概況。
示例一:為租戶級角色授予所有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角色添加租戶角色,在角色權限頁簽,角色級別選擇租戶,單擊目標角色操作列的啟用。