您可以按需為RAM使用者和RAM角色賦予不同的許可權,僅具有許可權的RAM使用者和RAM角色才可以在ASM控制台上進行建立網格執行個體、更新Service Mesh功能配置等操作,避免因暴露阿里雲帳號密鑰而造成安全風險。本文以RAM使用者為例,介紹如何為RAM使用者和RAM角色進行RAM授權。
前提條件
已建立RAM使用者和RAM角色。具體操作,請參見建立RAM使用者和建立可信實體為阿里雲帳號的RAM角色。
已瞭解授權策略語言的基本結構和文法。更多資訊,請參見權限原則文法和結構。
背景資訊
RAM使用者和RAM角色的使用情境不同,授與權限也不同,具體區別如下:
如果RAM使用者和RAM角色只需要Service Mesh的操作許可權,不涉及叢集的操作,您只需要授予RAM使用者Service Mesh許可權。具體操作,請參見授予RAM使用者和RAM角色系統策略和授予RAM使用者和RAM角色自訂策略。
如果RAM使用者和RAM角色需要Service Mesh和叢集的操作許可權(例如添加或刪除網格內的ACK叢集),您需要授予RAM使用者Service Mesh和對應叢集的許可權。具體操作,請參見授予RAM使用者和RAM角色系統策略、授予RAM使用者和RAM角色自訂策略和授予RAM使用者叢集許可權。
授予RAM使用者和RAM角色系統策略
ASM預設已建立AliyunASMReadOnlyAccess和AliyunASMFullAccess策略,您直接授權使用即可。以下為系統策略的詳細介紹:
AliyunASMReadOnlyAccess
唯讀管理阿里雲Service Mesh(ASM)的許可權,僅看Service Mesh狀態等唯讀介面許可權,無法對Service Mesh進行變更操作。
AliyunASMFullAccess
管理阿里雲Service Mesh(ASM)的許可權,RAM使用者擁有該授權後,對於鏡像資源的許可權等同於阿里雲帳號,可以做任意操作。
以下以授予AliyunASMReadOnlyAccess權限原則為例,介紹如何授予RAM使用者系統策略。關於RAM使用者授權和RAM角色授權的更多資訊,請參見管理RAM使用者的許可權和管理RAM角色的許可權。
登入RAM控制台
在左側導覽列,選擇。
在用户頁面,找到已經建立好的RAM使用者,單擊操作列的新增授權。
您也可以選中多個RAM使用者,單擊使用者列表下方的新增授權,為多個RAM使用者新增授權。
在新增授权面板,為RAM使用者添加許可權。
選擇資源範圍:
帳號層級:許可權在當前阿里雲帳號內全部資源生效。適用於通用、無需按資源群組隔離的情境。
資源群組層級:許可權僅在指定資源群組內生效。適用於多團隊共用一個帳號、需按資源群組隔離許可權的情境。如果RAM使用者被授予了資源群組層級的許可權,該使用者登入控制台後,必須在頂部導覽列將資源範圍切換到被授權的資源群組,才能正常訪問和管理該資源群組內的資源。
說明系統會自動標識出高風險系統策略(例如:AdministratorAccess、AliyunRAMFullAccess等),這些策略通常包含對所有雲資源的完全控制許可權或對存取控制(RAM)的完全系統管理權限等,請謹慎授予。
資源群組授權樣本,請參見使用資源群組限制RAM使用者管理指定的ECS執行個體。
選擇授權主體:
授權主體即需要添加許可權的RAM使用者。如果是從使用者頁面發起,系統會自動選擇當前的RAM使用者。如果是從授權頁面發起,需要手動選擇RAM使用者,支援批量選中多個。
在所有策略類型下單擊系统策略,在文字框中輸入AliyunASMReadOnlyAccess,然後單擊AliyunASMReadOnlyAccess。
說明每次最多綁定5條策略,如需綁定更多策略,請分次操作。
單擊確認新增授權。
確認授權綁定操作結果,單擊關閉。
授予RAM使用者和RAM角色自訂策略
如果您想對許可權進行細粒度控制,您可以自訂策略,然後授予RAM使用者和RAM角色自訂策略許可權。
建立授予訪問ASM執行個體的權限原則
使用Resource Access Management員登入RAM控制台。
在左側導覽列,選擇。
在权限策略頁面,單擊创建权限策略。
在创建权限策略頁面,單擊腳本編輯頁簽。
頁面顯示 JSON 編輯器,預設原則範本包含
Version(值為"1")和Statement數組,其中每條語句包括Effect(預設"Allow")、Action(待填寫)、Resource(待填寫)和Condition欄位。請根據實際需求在Action和Resource中填入對應的操作和資源。輸入您的授權策略內容,然後單擊繼續編輯基本信息。
通過改變
Statement中的Action欄位,可以實現API的細粒度鑒權。本文以授予受限存取權限策略為例,受限存取權限策略包括除RBAC授權之外的Service Mesh的所有RAM許可權,擁有該許可權的RAM使用者不可以對其他使用者進行RBAC授權,但擁有除此之外的其他所有許可權。關於權限原則文法結構的詳情,請參見權限原則文法和結構。{ "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" }在基本信息地區輸入策略名稱稱,本文設定為ASMPolicy1,然後單擊确定。
授予RAM使用者和RAM角色權限原則
本文以授予RAM使用者權限為例,關於RAM角色許可權的具體操作,請參見管理RAM角色的許可權。
使用Resource Access Management員登入RAM控制台。
在左側導覽列,選擇。
在用户頁面,找到已經建立好的RAM使用者,單擊操作列的新增授權。
您也可以選中多個RAM使用者,單擊使用者列表下方的新增授權,為多個RAM使用者新增授權。
在新增授权面板,為RAM使用者添加許可權。
選擇資源範圍:
帳號層級:許可權在當前阿里雲帳號內全部資源生效。適用於通用、無需按資源群組隔離的情境。
資源群組層級:許可權僅在指定資源群組內生效。適用於多團隊共用一個帳號、需按資源群組隔離許可權的情境。如果RAM使用者被授予了資源群組層級的許可權,該使用者登入控制台後,必須在頂部導覽列將資源範圍切換到被授權的資源群組,才能正常訪問和管理該資源群組內的資源。
說明系統會自動標識出高風險系統策略(例如:AdministratorAccess、AliyunRAMFullAccess等),這些策略通常包含對所有雲資源的完全控制許可權或對存取控制(RAM)的完全系統管理權限等,請謹慎授予。
資源群組授權樣本,請參見使用資源群組限制RAM使用者管理指定的ECS執行個體。
選擇授權主體:
授權主體即需要添加許可權的RAM使用者。如果是從使用者頁面發起,系統會自動選擇當前的RAM使用者。如果是從授權頁面發起,需要手動選擇RAM使用者,支援批量選中多個。
在所有策略類型下單擊自定义策略,在文字框中輸入ASMPolicy1,然後單擊ASMPolicy1。
說明每次最多綁定5條策略,如需綁定更多策略,請分次操作。
單擊確認新增授權。
確認授權綁定操作結果,單擊關閉。
自訂策略情境樣本
情境一:授予單個網格執行個體的系統管理權限
您可以使用以下指令碼建立擁有單個網格執行個體系統管理權限的策略,授予RAM使用者或RAM角色該權限原則後,RAM使用者或RAM角色只能管理指定ID的網格執行個體。
建立權限原則時,請將以下指令碼中的<ServicemeshId>替換成實際需要授權的網格執行個體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資源的讀寫權限
ASM預設提供的AliyunASMReadOnlyAccess系統策略可以授予RAM使用者或RAM角色唯讀管理阿里雲Service MeshASM的許可權,但被授予此許可權的RAM使用者或RAM角色無法管理網格中的Istio資源。
您可以使用以下指令碼建立擁有Istio資源讀寫權限的策略,授予RAM使用者或RAM角色該權限原則後,RAM使用者或RAM角色可以正常使用ASM控制台管理網格中的Istio資源,同時無法對網格的其它部分(例如功能設定等)進行任何變更。
{
"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"
}情境三:授予對其它使用者或角色進行RBAC授權的許可權
您可以使用以下指令碼建立擁有對其它使用者或角色進行RBAC授權的權限原則,授予RAM使用者或RAM角色該權限原則後,RAM使用者或RAM角色可以使用ASM控制台管理其它RAM角色或RAM使用者的RBAC許可權,同時無法操作或查看任何網格執行個體。
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"servicemesh:DescribeUserPermissions",
"servicemesh:GrantUserPermissions",
"servicemesh:DescribeServiceMeshes",
"servicemesh:DescribeUsersWithPermissions"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ims:ListUserBasicInfos",
"Resource": "*"
}
],
"Version": "1"
}