全部產品
Search
文件中心

Elastic Compute Service:使用標籤控制雲助手命令的執行

更新時間:Jun 19, 2024

當您對Elastic Compute Service資源綁定標籤(例如特定環境標籤、應用程式標籤或資源類型標籤等)進行精細化管理後,如果您需要篩選出指定標籤的ECS執行個體來批量執行雲助手命令或通過雲助手上傳檔案,則您需要為RAM使用者授予目標標籤的鑒權策略,RAM使用者才可以通過執行雲助手命令控制帶有該標籤的ECS執行個體,並對該ECS執行個體進行存取控制。本文介紹如何通過標籤控制雲助手命令的執行。

前提條件

  • 已建立RAM使用者。如未建立RAM使用者,具體操作,請參見建立RAM使用者

  • 已建立雲助手命令。如未建立雲助手命令,具體操作,請參見建立命令

工作原理

標籤和RAM使用者結合,將標籤作為權限原則的匹配條件,即可實現對ECS資源的精細化管理。

說明
  • 標籤由一組索引值對組成,可以用於標記ECS執行個體,實現資源的分類管理。更多資訊,請參見標籤概述

  • 存取控制RAM可基於權限原則,系統管理使用者身份,控制雲資源的訪問和操作許可權。您可以從地區、ECS執行個體、雲助手命令等維度設計自訂策略,並授權給RAM使用者使用,從而靈活控制RAM使用者使用雲助手命令的許可權。更多資訊,請參見RAM使用者概覽權限原則概覽

基於標籤控制RAM使用者權限(即標籤鑒權)的邏輯如下:

樣本情境說明

本文以如下情境為樣本,說明如何使用標籤鑒權控制雲助手命令。

  • RAM使用者只能將命令執行到帶有標籤(例如test:tony)的ECS執行個體上。

  • RAM使用者只能將檔案傳輸到帶有標籤(例如test:tony)的ECS執行個體上。

  • RAM使用者可以查詢標籤、執行個體或雲助手命令和執行結果。

操作步驟

本步驟將使用阿里雲帳號(主帳號)建立自訂策略UseTagAccessResources為例,將自訂策略UseTagAccessResources授權給RAM使用者後,RAM使用者只能將命令執行或者檔案上傳到帶有標籤test:tony的ECS執行個體上。

  1. 建立帶有標籤的ECS執行個體。

    本步驟以建立標籤為test:tony的ECS執行個體為例。具體操作,請參見建立帶特定標籤的資源

  2. 使用阿里雲帳號(主帳號)登入RAM控制台

  3. 建立自訂策略UseTagAccessResources

    具體操作,請參見建立自訂權限原則

    您可以在權限原則(Condition)中為ECS資源設定多個標籤條件來限制操作許可權,支援的標籤鑒權條件如下所示:

    標籤鑒權條件

    說明

    acs:RequestTag

    限制在請求中必須傳入特定的標籤。

    如果API請求中沒有標籤參數,則不能使用acs:RequestTag,否則會導致鑒權失敗。

    acs:ResourceTag

    限制指定的資源必須包含特定的標籤。

    如果API請求中沒有資源ID參數,則不能使用acs:ResourceTag,否則會導致鑒權失敗。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "ecs:InvokeCommand",
                    "ecs:RunCommand",
                    "ecs:StopInvocation",
                    "ecs:SendFile"
                ],
                "Resource": "acs:ecs:*:*:instance/*",
                "Condition": {
                    "StringEquals": {
                        "acs:ResourceTag/test": "tony"
                    }
                }
            },
            {
                "Effect": "Allow",
                "Action": [
                    "ecs:InvokeCommand",
                    "ecs:RunCommand",
                    "ecs:StopInvocation",
                    "ecs:SendFile"
                ],
                "Resource": "acs:ecs:*:*:command/*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "ecs:DescribeTag*",
                    "ecs:DescribeInstance*",
                    "ecs:DescribeCommands",
                    "ecs:CreateCommand",
                    "ecs:DeleteCommand",
                    "ecs:ModifyCommand",
                    "ecs:DescribeInvocationResults",
                    "ecs:DescribeSendFileResults",
                    "ecs:DescribeInstances",
                    "ecs:DescribeCloudAssistantStatus",
                    "ecs:DescribeInvocations",
                    "ecs:DescribeResourceByTags",
                    "ecs:DescribeTagKeys",
                    "ecs:DescribeTags",
                    "ecs:ListTagResources",
                    "ecs:DescribeManagedInstances"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": "oos:ListSecretParameters",
                "Resource": "*"
            }
        ]
    }

    以上策略可以實現如下許可權控制:

    • 允許在綁定test:tony標籤的ECS執行個體上執行雲助手命令或者發送遠程檔案,具體權限原則如下所示:

       {
             "Effect": "Allow",
             "Action": [
                "ecs:InvokeCommand",
                "ecs:RunCommand",
                "ecs:StopInvocation",
                "ecs:SendFile"
             ],
             "Resource": "acs:ecs:*:*:instance/*",
             "Condition": {
                 "StringEquals": {
                     "acs:ResourceTag/test": "tony"
                }
            }
       },
       {
            "Effect": "Allow",
            "Action": [
                "ecs:InvokeCommand",
                "ecs:RunCommand",
                "ecs:StopInvocation",
                "ecs:SendFile"
            ],
            "Resource": "acs:ecs:*:*:command/*"
      }
    • 允許查詢標籤、執行個體以及雲助手等資源,具體權限原則如下所示:

      {
           "Effect": "Allow",
           "Action": [
                 "ecs:DescribeTag*",
                 "ecs:DescribeInstance*",
                 "ecs:DescribeCommands",
                 "ecs:CreateCommand",
                 "ecs:DeleteCommand",
                 "ecs:ModifyCommand",
                 "ecs:DescribeInvocationResults",
                 "ecs:DescribeSendFileResults",
                 "ecs:DescribeInstances",
                 "ecs:DescribeCloudAssistantStatus",
                 "ecs:DescribeInvocations",
                 "ecs:DescribeResourceByTags",
                 "ecs:DescribeTagKeys",
                 "ecs:DescribeTags",
                 "ecs:ListTagResources",
                 "ecs:DescribeManagedInstances"
              ],
              "Resource": "*"
       },
      {
           "Effect": "Allow",
           "Action": "oos:ListSecretParameters",
           "Resource": "*"
      }
  4. 將自訂權限原則UseTagAccessResources授予您希望控制訪問的RAM使用者。

    具體操作,請參見為RAM角色授權

  5. 驗證權限原則是否生效。

    登入ECS管理主控台後,對待驗證的執行個體執行以下操作:

    說明

    對執行個體執行雲助手命令或者發送遠程檔案的同時,已經同步進行了查詢標籤、執行個體以及雲助手資源等操作。

    • 對不同標籤的ECS執行個體執行雲助手命令

      ECS雲助手頁面中的我的命令頁簽下,選擇已建立好的雲助手命令(以命令ID為c-hz02jt1ncrf****為例),對不同標籤的ECS執行個體執行雲助手命令。具體操作,請參見執行命令

      說明

      如果命令列表頁簽下還沒有建立好的雲助手命令,您也可以建立雲助手命令後再進行後續操作。具體操作,請參見建立命令

    • 對不同標籤的ECS執行個體發送遠程檔案

      ECS雲助手頁面的右上方位置,單擊傳送檔案,對不同標籤的ECS執行個體發送遠程檔案。具體操作,請參見上傳本地檔案到ECS執行個體

    如果權限原則已生效,上述操作的執行結果詳情,請參見執行結果。如果權限原則未生效,請參見常見問題進行排查。

執行結果

  • 在ECS執行個體中執行雲助手命令

    • ECS執行個體已綁定test:tony標籤,則執行雲助手命令時顯示執行成功。命令執行-zh

    • ECS執行個體未綁定test:tony標籤,則執行雲助手命令時顯示執行失敗。失敗提示

  • 發送遠程檔案到ECS執行個體中

    • ECS執行個體已綁定test:tony標籤,則發送遠程檔案時顯示執行成功。檔案發送

    • ECS執行個體未綁定test:tony標籤,則發送遠程檔案時顯示執行失敗。失敗

常見問題

如果權限原則控制功能未生效,怎麼辦?

如果許可權控制功能未生效,請檢查授權的RAM使用者權限是否已經對Action中的以下幾個參數設定了Allow操作。如果該參數已設定了Allow操作,請您將該權限原則從RAM使用者權限中移除。

  • ecs:InvokeCommand

  • ecs:RunCommand

  • ecs:StopInvocation

  • ecs:SendFile

例如,如果自訂權限原則中存在如下所示的策略,請您將該權限原則從RAM使用者權限中移除。

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:InvokeCommand",
                "ecs:RunCommand",
                "ecs:StopInvocation",
                "ecs:SendFile"
            ],
            "Resource": "*"
        }
    ]
}

相關文檔

  • 除了使用標籤控制雲助手命令的執行外,您還可以為RAM使用者授權特定的策略,使該RAM使用者能夠通過標籤控制ECS執行個體的訪問。具體操作,請參見使用標籤控制資源的訪問

  • 除了使用標籤控制雲助手命令的執行外,您還可以為您的ECS執行個體綁定相同標籤並通過CloudMonitor的智能標籤同步功能,將它們自動添加至同一個應用分組,實現自動化分組監控,監控內容包括ECS執行個體的健康狀態、CPU使用率和記憶體使用量率等。具體操作,請參見基於標籤的自動化分組監控

  • 如果您的標籤不再適用於管理和檢索資源,您可以從該資源解除綁定標籤。具體操作,請參見解除綁定或刪除標籤