本文介紹了通過RAM的權限管理功能,創建相應的權限策略,從而對傳統型負載均衡(CLB)進行權限管理,以滿足RAM用戶操作CLB的多種需求。
背景信息
使用RAM對CLB進行權限管理前,請先了解以下系統策略:
AliyunSLBFullAccess:管理CLB的權限。
AliyunSLBReadOnlyAccess:只讀訪問CLB的權限。
當系統策略不能滿足您的需求時,您可以創建自定義策略。
使用RAM對CLB進行權限管理前,請先了解CLB的權限定義。更多信息,請參見RAM鑒權。
操作步驟
權限策略示例
示例1:授權RAM用戶管理兩臺指定的CLB實例。
假設您的賬號購買了多個實例,而作為RAM管理員,您希望僅授權其中的兩個實例給某個RAM用戶。實例ID分別為
lb-abcdxxxx001
、lb-abcdxxxx002
。{ "Statement": [ { "Effect": "Allow", "Action": "slb:*", "Resource": [ "acs:slb:*:*:loadbalancer/lb-abcdxxxx001", "acs:slb:*:*:loadbalancer/lb-abcdxxxx002" ] }, { "Effect": "Allow", "Action": "slb:Describe*", "Resource": "*" } ], "Version": "1" }
說明授予該權限策略的RAM用戶可以查看所有的實例及資源,但只能管理其中兩個實例。
Describe*
在權限策略中是必須的,否則用戶在控制臺將無法看到任何實例,但是使用API、CLI或SDK直接對兩個實例進行管理是可以的。
示例2:將ECS實例加入負載均衡器
slb-001
。實例ID為lb-abcdxxxx001
。{ "Statement": [ { "Effect": "Allow", "Action": "slb:AddBackendServers", "Resource": ["acs:slb:*:*:loadbalancer/slb-001"] }, { "Effect": "Allow", "Action": "slb:AddBackendServers", "Resource": ["acs:ecs:*:*:instance/lb-abcdxxxx001"] }, { "Effect": "Allow", "Action": "slb:DescribeLoadBalancers", "Resource": "acs:slb:*:*:loadbalancer/*" } ], "Version": "1" }
說明即使RAM用戶按照示例1被授予管理某個CLB實例的權限,但該RAM用戶在CLB實例中添加或移除ECS服務器或設置權重時,仍然提示沒有權限。原因是在負載均衡器中沒有授予關于ECS服務器的兩個權限:
CLB的資源權限
ECS服務器的權限
示例3:允許在特定CLB實例上執行任意ECS相關的操作。
{ "Statement": [{ "Effect": "Allow", "Action": "slb:*", "Resource": [ "acs:slb:*:*:loadbalancer/lb-abcdxxxx001", "acs:slb:*:*:loadbalancer/lb-abcdxxxx002" ] }, { "Effect": "Allow", "Action": "slb:Describe*", "Resource": "*" }, { "Effect": "Allow", "Action": "ecs:DescribeInstances", "Resource": "*" }, { "Effect": "Allow", "Action": "slb:*", "Resource": [ "acs:ecs:*:*:instance/i-instance001", "acs:ecs:*:*:instance/i-instance002" ] } ], "Version": "1" }
說明上述權限策略表示:允許RAM用戶在
lb-abcdxxxx001
和lb-abcdxxxx002
這兩個負載均衡器實例上執行所有管理操作,并允許在這兩個實例上執行與ECS資源相關的所有操作。例如:將ECS實例i-instance001
和i-instance002
添加為這兩個負載均衡實例的后端服務器或設置ECS服務器的權重等。使用此權限的過程中,RAM用戶在選擇ECS實例時可以看到所有實例的列表。