為RAM用戶和RAM角色授權(quán)
您可以按需為RAM用戶和RAM角色賦予不同的權(quán)限,僅具有權(quán)限的RAM用戶和RAM角色才可以在ASM控制臺上進(jìn)行創(chuàng)建網(wǎng)格實(shí)例、更新服務(wù)網(wǎng)格功能配置等操作,避免因暴露阿里云賬號密鑰而造成安全風(fēng)險。本文以RAM用戶為例,介紹如何為RAM用戶和RAM角色進(jìn)行RAM授權(quán)。
前提條件
已創(chuàng)建RAM用戶和RAM角色。具體操作,請參見創(chuàng)建RAM用戶和創(chuàng)建可信實(shí)體為阿里云賬號的RAM角色。
已了解授權(quán)策略語言的基本結(jié)構(gòu)和語法。更多信息,請參見權(quán)限策略語法和結(jié)構(gòu)。
背景信息
RAM用戶和RAM角色的使用場景不同,授予的權(quán)限也不同,具體區(qū)別如下:
如果RAM用戶和RAM角色只需要服務(wù)網(wǎng)格的操作權(quán)限,不涉及集群的操作,您只需要授予RAM用戶服務(wù)網(wǎng)格權(quán)限。具體操作,請參見授予RAM用戶和RAM角色系統(tǒng)策略和授予RAM用戶和RAM角色自定義策略。
如果RAM用戶和RAM角色需要服務(wù)網(wǎng)格和集群的操作權(quán)限(例如添加或刪除網(wǎng)格內(nèi)的ACK集群),您需要授予RAM用戶服務(wù)網(wǎng)格和對應(yīng)集群的權(quán)限。具體操作,請參見授予RAM用戶和RAM角色系統(tǒng)策略、授予RAM用戶和RAM角色自定義策略和授予RAM用戶集群權(quán)限。
授予RAM用戶和RAM角色系統(tǒng)策略
ASM默認(rèn)已創(chuàng)建AliyunASMReadOnlyAccess和AliyunASMFullAccess策略,您直接授權(quán)使用即可。以下為系統(tǒng)策略的詳細(xì)介紹:
AliyunASMReadOnlyAccess
只讀管理阿里云服務(wù)網(wǎng)格(ASM)的權(quán)限,僅看服務(wù)網(wǎng)格狀態(tài)等只讀接口權(quán)限,無法對服務(wù)網(wǎng)格進(jìn)行變更操作。
AliyunASMFullAccess
管理阿里云服務(wù)網(wǎng)格(ASM)的權(quán)限,RAM用戶擁有該授權(quán)后,對于鏡像資源的權(quán)限等同于阿里云賬號,可以做任意操作。
以下以授予AliyunASMReadOnlyAccess權(quán)限策略為例,介紹如何授予RAM用戶系統(tǒng)策略。關(guān)于RAM用戶授權(quán)和RAM角色授權(quán)的更多信息,請參見為RAM用戶授權(quán)和為RAM角色授權(quán)。
使用RAM管理員登錄RAM控制臺。
在左側(cè)導(dǎo)航欄,選擇
。在用戶頁面,單擊目標(biāo)RAM用戶操作列的添加權(quán)限。
您也可以選中多個RAM用戶,單擊用戶列表下方的添加權(quán)限,為RAM用戶批量授權(quán)。
在新增授權(quán)面板,為RAM用戶添加權(quán)限。
選擇資源范圍。
賬號級別:權(quán)限在當(dāng)前阿里云賬號內(nèi)生效。
資源組級別:權(quán)限在指定的資源組內(nèi)生效。
重要指定資源組授權(quán)生效的前提是該云服務(wù)及資源類型已支持資源組,詳情請參見支持資源組的云服務(wù)。資源組授權(quán)示例,請參見使用資源組限制RAM用戶管理指定的ECS實(shí)例。
選擇授權(quán)主體。
授權(quán)主體即需要添加權(quán)限的RAM用戶。系統(tǒng)會自動選擇當(dāng)前的RAM用戶。
在所有策略類型下單擊系統(tǒng)策略,在文本框中輸入AliyunASMReadOnlyAccess,然后單擊AliyunASMReadOnlyAccess。
說明每次最多綁定5條策略,如需綁定更多策略,請分次操作。
單擊確認(rèn)新增授權(quán)。
單擊關(guān)閉。
授予RAM用戶和RAM角色自定義策略
如果您想對權(quán)限進(jìn)行細(xì)粒度控制,您可以自定義策略,然后授予RAM用戶和RAM角色自定義策略權(quán)限。
創(chuàng)建授予訪問ASM實(shí)例的權(quán)限策略
使用RAM管理員登錄RAM控制臺。
在左側(cè)導(dǎo)航欄,選擇 。
在權(quán)限策略頁面,單擊創(chuàng)建權(quán)限策略。
在創(chuàng)建權(quán)限策略頁面,單擊腳本編輯頁簽。
輸入您的授權(quán)策略內(nèi)容,然后單擊繼續(xù)編輯基本信息。
通過改變
Statement
中的Action
字段,可以實(shí)現(xiàn)API的細(xì)粒度鑒權(quán)。本文以授予受限訪問權(quán)限策略為例,受限訪問權(quán)限策略包括除RBAC授權(quán)之外的服務(wù)網(wǎng)格的所有RAM權(quán)限,擁有該權(quán)限的RAM用戶不可以對其他用戶進(jìn)行RBAC授權(quán),但擁有除此之外的其他所有權(quán)限。關(guān)于權(quán)限策略語法結(jié)構(gòu)的詳情,請參見權(quán)限策略語法和結(jié)構(gòu)。{ "Statement": [ { "Effect": "Allow", "Action": [ "servicemesh:Add*", "servicemesh:CRBatchDeletion", "servicemesh:Create*", "servicemesh:Delete*", "servicemesh:Describe*", "servicemesh:Enable*", "servicemesh:Disable*", "servicemesh:Get*", "servicemesh:InvokeApiServer", "servicemesh:List*", "servicemesh:Modify*", "servicemesh:Re*", "servicemesh:Run*", "servicemesh:Set*", "servicemesh:Sync*", "servicemesh:Update*", "servicemesh:Upgrade*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "log:ListLogStores", "log:ListDashboard", "log:GetDashboard", "log:ListSavedSearch", "log:ListProject" ], "Resource": "*" }, { "Effect": "Allow", "Action": "log:GetLogStoreLogs", "Resource": "acs:log:*:*:project/*/logstore/audit-*" }, { "Effect": "Allow", "Action": "log:GetLogStoreLogs", "Resource": "acs:log:*:*:project/*/logstore/istio-*" }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "servicemesh.aliyuncs.com" } } } ], "Version": "1" }
在基本信息區(qū)域輸入策略名稱,本文設(shè)置為ASMPolicy1,然后單擊確定。
授予RAM用戶和RAM角色權(quán)限策略
本文以授予RAM用戶權(quán)限為例,關(guān)于RAM角色權(quán)限的具體操作,請參見為RAM角色授權(quán)。
使用RAM管理員登錄RAM控制臺。
在左側(cè)導(dǎo)航欄,選擇
。在用戶頁面,單擊目標(biāo)RAM用戶操作列的添加權(quán)限。
您也可以選中多個RAM用戶,單擊用戶列表下方的添加權(quán)限,為RAM用戶批量授權(quán)。
在添加權(quán)限對話框,設(shè)置授權(quán)范圍為整個云賬號,系統(tǒng)會自動填入當(dāng)前的RAM用戶為授權(quán)主體,在選擇權(quán)限下單擊自定義策略,輸入創(chuàng)建的權(quán)限策略名稱ASMPolicy1,單擊ASMPolicy1,然后單擊確定。
自定義策略場景示例
場景一:授予單個網(wǎng)格實(shí)例的管理權(quán)限
您可以使用以下腳本創(chuàng)建擁有單個網(wǎng)格實(shí)例管理權(quán)限的策略,授予RAM用戶或RAM角色該權(quán)限策略后,RAM用戶或RAM角色只能管理指定ID的網(wǎng)格實(shí)例。
創(chuàng)建權(quán)限策略時,請將以下腳本中的<ServicemeshId>
替換成實(shí)際需要授權(quán)的網(wǎng)格實(shí)例ID。
{
"Statement": [
{
"Effect": "Allow",
"Action": "servicemesh:*",
"Resource": "acs:servicemesh:*:*:servicemesh/<ServicemeshId>"
},
{
"Effect": "Allow",
"Action": "servicemesh:DescribeServiceMeshes",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "log:GetLogStoreLogs",
"Resource": "acs:log:*:*:project/*/logstore/audit-<ServicemeshId>"
},
{
"Effect": "Allow",
"Action": "log:GetLogStoreLogs",
"Resource": "acs:log:*:*:project/*/logstore/istio-<ServicemeshId>"
}
],
"Version": "1"
}
場景二:授予使用ASM控制臺管理Istio資源的讀寫權(quán)限
ASM默認(rèn)提供的AliyunASMReadOnlyAccess系統(tǒng)策略可以授予RAM用戶或RAM角色只讀管理阿里云服務(wù)網(wǎng)格ASM的權(quán)限,但被授予此權(quán)限的RAM用戶或RAM角色無法管理網(wǎng)格中的Istio資源。
您可以使用以下腳本創(chuàng)建擁有Istio資源讀寫權(quán)限的策略,授予RAM用戶或RAM角色該權(quán)限策略后,RAM用戶或RAM角色可以正常使用ASM控制臺管理網(wǎng)格中的Istio資源,同時無法對網(wǎng)格的其它部分(例如功能設(shè)置等)進(jìn)行任何變更。
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"servicemesh:List*",
"servicemesh:Describe*",
"servicemesh:Get*",
"servicemesh:InvokeApiServer"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"log:ListLogStores",
"log:ListDashboard",
"log:GetDashboard",
"log:ListSavedSearch"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "log:GetLogStoreLogs",
"Resource": "acs:log:*:*:project/*/logstore/audit-*"
}
],
"Version": "1"
}
場景三:授予對其它用戶或角色進(jìn)行RBAC授權(quán)的權(quán)限
您可以使用以下腳本創(chuàng)建擁有對其它用戶或角色進(jìn)行RBAC授權(quán)的權(quán)限策略,授予RAM用戶或RAM角色該權(quán)限策略后,RAM用戶或RAM角色可以使用ASM控制臺管理其它RAM角色或RAM用戶的RBAC權(quán)限,同時無法操作或查看任何網(wǎng)格實(shí)例。
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"servicemesh:DescribeUserPermissions",
"servicemesh:GrantUserPermissions",
"servicemesh:DescribeServiceMeshes",
"servicemesh:DescribeUsersWithPermissions"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ims:ListUserBasicInfos",
"Resource": "*"
}
],
"Version": "1"
}