使用標(biāo)簽控制云助手命令的執(zhí)行
當(dāng)您對云服務(wù)器ECS資源綁定標(biāo)簽(例如特定環(huán)境標(biāo)簽、應(yīng)用程序標(biāo)簽或資源類型標(biāo)簽等)進(jìn)行精細(xì)化管理后,如果您需要篩選出指定標(biāo)簽的ECS實(shí)例來批量執(zhí)行云助手命令或通過云助手上傳文件,則您需要為RAM用戶授予目標(biāo)標(biāo)簽的鑒權(quán)策略,RAM用戶才可以通過執(zhí)行云助手命令控制帶有該標(biāo)簽的ECS實(shí)例,并對該ECS實(shí)例進(jìn)行訪問控制。本文介紹如何通過標(biāo)簽控制云助手命令的執(zhí)行。
前提條件
已創(chuàng)建RAM用戶。如未創(chuàng)建RAM用戶,具體操作,請參見創(chuàng)建RAM用戶。
已創(chuàng)建云助手命令。如未創(chuàng)建云助手命令,具體操作,請參見創(chuàng)建命令。
工作原理
標(biāo)簽和RAM用戶結(jié)合,將標(biāo)簽作為權(quán)限策略的匹配條件,即可實(shí)現(xiàn)對ECS資源的精細(xì)化管理。
標(biāo)簽由一組鍵值對組成,可以用于標(biāo)記ECS實(shí)例,實(shí)現(xiàn)資源的分類管理。更多信息,請參見標(biāo)簽概述。
訪問控制RAM可基于權(quán)限策略,管理用戶身份,控制云資源的訪問和操作權(quán)限。您可以從地域、ECS實(shí)例、云助手命令等維度設(shè)計(jì)自定義策略,并授權(quán)給RAM用戶使用,從而靈活控制RAM用戶使用云助手命令的權(quán)限。更多信息,請參見RAM用戶概覽和權(quán)限策略概覽。
基于標(biāo)簽控制RAM用戶權(quán)限(即標(biāo)簽鑒權(quán))的邏輯如下:
示例場景說明
本文以如下場景為示例,說明如何使用標(biāo)簽鑒權(quán)控制云助手命令。
RAM用戶只能將命令執(zhí)行到帶有標(biāo)簽(例如test:tony)的ECS實(shí)例上。
RAM用戶只能將文件傳輸?shù)綆в袠?biāo)簽(例如test:tony)的ECS實(shí)例上。
RAM用戶可以查詢標(biāo)簽、實(shí)例或云助手命令和執(zhí)行結(jié)果。
操作步驟
本步驟將使用阿里云賬號(主賬號)新建自定義策略UseTagAccessResources
為例,將自定義策略UseTagAccessResources
授權(quán)給RAM用戶后,RAM用戶只能將命令執(zhí)行或者文件上傳到帶有標(biāo)簽test:tony
的ECS實(shí)例上。
創(chuàng)建帶有標(biāo)簽的ECS實(shí)例。
本步驟以創(chuàng)建標(biāo)簽為
test:tony
的ECS實(shí)例為例。具體操作,請參見創(chuàng)建帶特定標(biāo)簽的資源。使用阿里云賬號(主賬號)登錄RAM控制臺。
創(chuàng)建自定義策略
UseTagAccessResources
。具體操作,請參見創(chuàng)建自定義權(quán)限策略。
您可以在權(quán)限策略(Condition)中為ECS資源設(shè)置多個(gè)標(biāo)簽條件來限制操作權(quán)限,支持的標(biāo)簽鑒權(quán)條件如下所示:
標(biāo)簽鑒權(quán)條件
說明
acs:RequestTag
限制在請求中必須傳入特定的標(biāo)簽。
如果API請求中沒有標(biāo)簽參數(shù),則不能使用
acs:RequestTag
,否則會導(dǎo)致鑒權(quán)失敗。acs:ResourceTag
限制指定的資源必須包含特定的標(biāo)簽。
如果API請求中沒有資源ID參數(shù),則不能使用
acs:ResourceTag
,否則會導(dǎo)致鑒權(quán)失敗。{ "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": "*" } ] }
以上策略可以實(shí)現(xiàn)如下權(quán)限控制:
允許在綁定
test:tony
標(biāo)簽的ECS實(shí)例上執(zhí)行云助手命令或者發(fā)送遠(yuǎn)程文件,具體權(quán)限策略如下所示:{ "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/*" }
允許查詢標(biāo)簽、實(shí)例以及云助手等資源,具體權(quán)限策略如下所示:
{ "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": "*" }
將自定義權(quán)限策略
UseTagAccessResources
授予您希望控制訪問的RAM用戶。具體操作,請參見為RAM角色授權(quán)。
驗(yàn)證權(quán)限策略是否生效。
登錄ECS管理控制臺后,對待驗(yàn)證的實(shí)例執(zhí)行以下操作:
說明對實(shí)例執(zhí)行云助手命令或者發(fā)送遠(yuǎn)程文件的同時(shí),已經(jīng)同步進(jìn)行了查詢標(biāo)簽、實(shí)例以及云助手資源等操作。
對不同標(biāo)簽的ECS實(shí)例執(zhí)行云助手命令
在ECS云助手頁面中的我的命令頁簽下,選擇已創(chuàng)建好的云助手命令(以命令I(lǐng)D為
c-hz02jt1ncrf****
為例),對不同標(biāo)簽的ECS實(shí)例執(zhí)行云助手命令。具體操作,請參見執(zhí)行命令。說明如果命令列表頁簽下還沒有創(chuàng)建好的云助手命令,您也可以創(chuàng)建云助手命令后再進(jìn)行后續(xù)操作。具體操作,請參見創(chuàng)建命令。
對不同標(biāo)簽的ECS實(shí)例發(fā)送遠(yuǎn)程文件
在ECS云助手頁面的右上角位置,單擊發(fā)送文件,對不同標(biāo)簽的ECS實(shí)例發(fā)送遠(yuǎn)程文件。具體操作,請參見上傳本地文件到ECS實(shí)例。
如果權(quán)限策略已生效,上述操作的執(zhí)行結(jié)果詳情,請參見執(zhí)行結(jié)果。如果權(quán)限策略未生效,請參見常見問題進(jìn)行排查。
執(zhí)行結(jié)果
在ECS實(shí)例中執(zhí)行云助手命令
ECS實(shí)例已綁定
test:tony
標(biāo)簽,則執(zhí)行云助手命令時(shí)顯示執(zhí)行成功。ECS實(shí)例未綁定
test:tony
標(biāo)簽,則執(zhí)行云助手命令時(shí)顯示執(zhí)行失敗。
發(fā)送遠(yuǎn)程文件到ECS實(shí)例中
ECS實(shí)例已綁定
test:tony
標(biāo)簽,則發(fā)送遠(yuǎn)程文件時(shí)顯示執(zhí)行成功。ECS實(shí)例未綁定
test:tony
標(biāo)簽,則發(fā)送遠(yuǎn)程文件時(shí)顯示執(zhí)行失敗。
常見問題
如果權(quán)限策略控制功能未生效,怎么辦?
如果權(quán)限控制功能未生效,請檢查授權(quán)的RAM用戶權(quán)限是否已經(jīng)對Action中的以下幾個(gè)參數(shù)設(shè)置了Allow操作。如果該參數(shù)已設(shè)置了Allow操作,請您將該權(quán)限策略從RAM用戶權(quán)限中移除。
ecs:InvokeCommand
ecs:RunCommand
ecs:StopInvocation
ecs:SendFile
例如,如果自定義權(quán)限策略中存在如下所示的策略,請您將該權(quán)限策略從RAM用戶權(quán)限中移除。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:InvokeCommand",
"ecs:RunCommand",
"ecs:StopInvocation",
"ecs:SendFile"
],
"Resource": "*"
}
]
}
相關(guān)文檔
除了使用標(biāo)簽控制云助手命令的執(zhí)行外,您還可以為RAM用戶授權(quán)特定的策略,使該RAM用戶能夠通過標(biāo)簽控制ECS實(shí)例的訪問。具體操作,請參見使用標(biāo)簽控制資源的訪問。
除了使用標(biāo)簽控制云助手命令的執(zhí)行外,您還可以為您的ECS實(shí)例綁定相同標(biāo)簽并通過云監(jiān)控的智能標(biāo)簽同步功能,將它們自動(dòng)添加至同一個(gè)應(yīng)用分組,實(shí)現(xiàn)自動(dòng)化分組監(jiān)控,監(jiān)控內(nèi)容包括ECS實(shí)例的健康狀態(tài)、CPU使用率和內(nèi)存使用率等。具體操作,請參見基于標(biāo)簽的自動(dòng)化分組監(jiān)控。
如果您的標(biāo)簽不再適用于管理和檢索資源,您可以從該資源解綁標(biāo)簽。具體操作,請參見解綁或刪除標(biāo)簽。