當您對Elastic Compute Service資源綁定標籤(例如特定環境標籤、應用程式標籤或資源類型標籤等)進行精細化管理後,如果您需要篩選出指定標籤的ECS執行個體來批量執行雲助手命令或通過雲助手上傳檔案,則您需要為RAM使用者授予目標標籤的鑒權策略,RAM使用者才可以通過執行雲助手命令控制帶有該標籤的ECS執行個體,並對該ECS執行個體進行存取控制。本文介紹如何通過標籤控制雲助手命令的執行。
前提條件
工作原理
標籤和RAM使用者結合,將標籤作為權限原則的匹配條件,即可實現對ECS資源的精細化管理。
基於標籤控制RAM使用者權限(即標籤鑒權)的邏輯如下:
樣本情境說明
本文以如下情境為樣本,說明如何使用標籤鑒權控制雲助手命令。
RAM使用者只能將命令執行到帶有標籤(例如test:tony)的ECS執行個體上。
RAM使用者只能將檔案傳輸到帶有標籤(例如test:tony)的ECS執行個體上。
RAM使用者可以查詢標籤、執行個體或雲助手命令和執行結果。
操作步驟
本步驟將使用阿里雲帳號(主帳號)建立自訂策略UseTagAccessResources
為例,將自訂策略UseTagAccessResources
授權給RAM使用者後,RAM使用者只能將命令執行或者檔案上傳到帶有標籤test:tony
的ECS執行個體上。
建立帶有標籤的ECS執行個體。
本步驟以建立標籤為
test:tony
的ECS執行個體為例。具體操作,請參見建立帶特定標籤的資源。使用阿里雲帳號(主帳號)登入RAM控制台。
建立自訂策略
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": "*" }
將自訂權限原則
UseTagAccessResources
授予您希望控制訪問的RAM使用者。具體操作,請參見為RAM角色授權。
驗證權限原則是否生效。
登入ECS管理主控台後,對待驗證的執行個體執行以下操作:
說明對執行個體執行雲助手命令或者發送遠程檔案的同時,已經同步進行了查詢標籤、執行個體以及雲助手資源等操作。
對不同標籤的ECS執行個體執行雲助手命令
在ECS雲助手頁面中的我的命令頁簽下,選擇已建立好的雲助手命令(以命令ID為
c-hz02jt1ncrf****
為例),對不同標籤的ECS執行個體執行雲助手命令。具體操作,請參見執行命令。說明如果命令列表頁簽下還沒有建立好的雲助手命令,您也可以建立雲助手命令後再進行後續操作。具體操作,請參見建立命令。
對不同標籤的ECS執行個體發送遠程檔案
在ECS雲助手頁面的右上方位置,單擊傳送檔案,對不同標籤的ECS執行個體發送遠程檔案。具體操作,請參見上傳本地檔案到ECS執行個體。
執行結果
在ECS執行個體中執行雲助手命令
ECS執行個體已綁定
test:tony
標籤,則執行雲助手命令時顯示執行成功。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使用率和記憶體使用量率等。具體操作,請參見基於標籤的自動化分組監控。
如果您的標籤不再適用於管理和檢索資源,您可以從該資源解除綁定標籤。具體操作,請參見解除綁定或刪除標籤。