全部產品
Search
文件中心

Resource Access Management:使用標籤限制RAM使用者管理指定的ECS執行個體

更新時間:May 27, 2024

您可以為ECS執行個體綁定標籤,然後通過RAM的自訂策略指定授權的標籤,利用標籤限制RAM使用者只能查看和管理指定的ECS執行個體。

背景資訊

基於標籤限制RAM使用者權限(即標籤鑒權)的邏輯如下圖所示。

自訂策略中是通過條件(Condition)指定授權的標籤。標籤支援的Condition如下:

  • acs:RequestTag/<tag-key>:請求中傳遞的標籤資訊。即使用者在調用API的時候,請求參數裡面必須攜帶的標籤。

  • acs:ResourceTag/<tag-key>:請求訪問的資源上綁定的標籤資訊。即使用者在操作某個資源的時候,資源上必須具備的標籤。

操作步驟

以下將提供一個樣本,僅允許RAM使用者(Alice)查看和管理綁定了標籤owner:aliceenvironment:production的ECS執行個體,無權查看和管理其他ECS執行個體。

說明

在以下整個授權過程中,ECS執行個體可以正常工作,不會產生任何影響。

以下操作使用帳號管理員完成。

  1. RAM控制台,建立RAM使用者(Alice)。

    具體操作,請參見建立RAM使用者

  2. 為ECS執行個體綁定標籤。

    本樣本中,需要為ECS執行個體綁定標籤owner:aliceenvironment:production

    以下兩種綁定標籤的方法您可以任選其一:

  3. 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:aliceenvironment:production篩選對應的ECS執行個體。

    {
    	"Effect": "Allow",
    	"Action": "ecs:*",
    	"Resource": "*",
    	"Condition": {
    		"StringEquals": {
    			"acs:ResourceTag/owner": [
    				"alice"
    			],
    			"acs:ResourceTag/environment": [
    				"production"
    			]
    		}
    	}
    }

    允許對綁定了標籤owner:aliceenvironment: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使用者因修改標籤導致沒有許可權。

  4. RAM控制台,為RAM使用者(Alice)授權。

    其中,授權範圍選擇整個雲帳號,授權主體選擇RAM使用者(Alice),權限原則選擇自訂策略(UseTagAccessRes)。具體操作,請參見為RAM使用者授權

結果驗證

  1. 使用RAM使用者(Alice)登入ECS控制台

    具體操作,請參見RAM使用者登入阿里雲控制台

  2. 在左側導覽列,選擇執行個體與鏡像 > 執行個體

  3. 在頂部功能表列左上方處,選擇地區。

  4. 執行個體頁面,單擊搜尋欄旁邊的標籤篩選,選擇owner:aliceenvironment:production標籤。

    image.png

    重要

    只有RAM使用者選擇了對應標籤後,RAM使用者才能看到綁定了該標籤的ECS執行個體。否則,RAM使用者無法看到任何ECS執行個體。

  5. 查看和管理僅綁定了owner:aliceenvironment:production標籤的ECS執行個體。

相關文檔

ECS的RAM鑒權規則詳情,請參見鑒權規則