您可以為ECS執行個體綁定標籤,然後通過RAM的自訂策略指定授權的標籤,利用標籤限制RAM使用者只能查看和管理指定的ECS執行個體。
背景資訊
基於標籤限制RAM使用者權限(即標籤鑒權)的邏輯如下圖所示。
自訂策略中是通過條件(Condition)指定授權的標籤。標籤支援的Condition如下:
acs:RequestTag/<tag-key>
:請求中傳遞的標籤資訊。即使用者在調用API的時候,請求參數裡面必須攜帶的標籤。acs:ResourceTag/<tag-key>
:請求訪問的資源上綁定的標籤資訊。即使用者在操作某個資源的時候,資源上必須具備的標籤。
操作步驟
以下將提供一個樣本,僅允許RAM使用者(Alice)查看和管理綁定了標籤owner:alice
和environment:production
的ECS執行個體,無權查看和管理其他ECS執行個體。
在以下整個授權過程中,ECS執行個體可以正常工作,不會產生任何影響。
以下操作使用帳號管理員完成。
在RAM控制台,建立RAM使用者(Alice)。
具體操作,請參見建立RAM使用者。
為ECS執行個體綁定標籤。
本樣本中,需要為ECS執行個體綁定標籤
owner:alice
和environment:production
。以下兩種綁定標籤的方法您可以任選其一:
在RAM控制台,建立自訂策略(UseTagAccessRes)。
自訂策略內容如下所示。具體操作,請參見建立自訂權限原則。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/owner": [ "alice" ], "acs:ResourceTag/environment": [ "production" ] } } }, { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/owner": [ "alice" ], "acs:RequestTag/environment": [ "production" ] } } }, { "Effect": "Allow", "Action": [ "ecs:List*", "ecs:DescribeInstanceStatus", "ecs:DescribeInstanceVncUrl", "ecs:DescribeInstanceAutoRenewAttribute", "ecs:DescribeInstanceRamRole", "ecs:DescribeInstanceTypeFamilies", "ecs:DescribeInstanceTypes", "ecs:DescribeInstanceAttachmentAttributes", "ecs:DescribeInstancesFullStatus", "ecs:DescribeInstanceHistoryEvents", "ecs:DescribeInstanceMonitorData", "ecs:DescribeInstanceMaintenanceAttributes", "ecs:DescribeInstanceModificationPrice", "ecs:DescribeA*", "ecs:DescribeC*", "ecs:DescribeD*", "ecs:DescribeE*", "ecs:DescribeH*", "ecs:DescribeIm*", "ecs:DescribeInv*", "ecs:DescribeK*", "ecs:DescribeL*", "ecs:DescribeM*", "ecs:DescribeN*", "ecs:DescribeP*", "ecs:DescribeR*", "ecs:DescribeS*", "ecs:DescribeT*", "ecs:DescribeZ*", "vpc:DescribeVpcs", "vpc:DescribeVSwitches" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "ecs:DeleteTags", "ecs:UntagResources", "ecs:CreateTags", "ecs:TagResources" ], "Resource": "*" } ] }
策略說明:
策略內容
策略說明
{ "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/owner": "alice", "acs:RequestTag/environment": "production" } } }
允許通過標籤
owner:alice
和environment:production
篩選對應的ECS執行個體。{ "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/owner": [ "alice" ], "acs:ResourceTag/environment": [ "production" ] } } }
允許對綁定了標籤
owner:alice
和environment:production
的ECS執行個體進行管理操作。{ "Effect": "Allow", "Action": [ "ecs:List*", "ecs:DescribeInstanceStatus", "ecs:DescribeInstanceVncUrl", "ecs:DescribeInstanceAutoRenewAttribute", "ecs:DescribeInstanceRamRole", "ecs:DescribeInstanceTypeFamilies", "ecs:DescribeInstanceTypes", "ecs:DescribeInstanceAttachmentAttributes", "ecs:DescribeInstancesFullStatus", "ecs:DescribeInstanceHistoryEvents", "ecs:DescribeInstanceMonitorData", "ecs:DescribeInstanceMaintenanceAttributes", "ecs:DescribeInstanceModificationPrice", "ecs:DescribeA*", "ecs:DescribeC*", "ecs:DescribeD*", "ecs:DescribeE*", "ecs:DescribeH*", "ecs:DescribeIm*", "ecs:DescribeInv*", "ecs:DescribeK*", "ecs:DescribeL*", "ecs:DescribeM*", "ecs:DescribeN*", "ecs:DescribeP*", "ecs:DescribeR*", "ecs:DescribeS*", "ecs:DescribeT*", "ecs:DescribeZ*", "vpc:DescribeVpcs", "vpc:DescribeVSwitches" ], "Resource": "*" }
允許查看ECS執行個體的相關資訊。
{ "Effect": "Deny", "Action": [ "ecs:DeleteTags", "ecs:UntagResources", "ecs:CreateTags", "ecs:TagResources" ], "Resource": "*" }
不允許刪除、解除綁定、建立、綁定標籤。
避免RAM使用者因修改標籤導致沒有許可權。
在RAM控制台,為RAM使用者(Alice)授權。
其中,授權範圍選擇整個雲帳號,授權主體選擇RAM使用者(Alice),權限原則選擇自訂策略(UseTagAccessRes)。具體操作,請參見為RAM使用者授權。
結果驗證
使用RAM使用者(Alice)登入ECS控制台。
具體操作,請參見RAM使用者登入阿里雲控制台。
在左側導覽列,選擇 。
在頂部功能表列左上方處,選擇地區。
在執行個體頁面,單擊搜尋欄旁邊的標籤篩選,選擇
owner:alice
和environment:production
標籤。重要只有RAM使用者選擇了對應標籤後,RAM使用者才能看到綁定了該標籤的ECS執行個體。否則,RAM使用者無法看到任何ECS執行個體。
查看和管理僅綁定了
owner:alice
和environment:production
標籤的ECS執行個體。
相關文檔
ECS的RAM鑒權規則詳情,請參見鑒權規則。