在云助手命令中使用自定义参数,可以更加灵活地编写脚本,提高命令的复用性。同时,运维编排服务OOS提供参数仓库功能,支持普通参数和加密参数。您可以在云助手命令中结合OOS的参数仓库功能,更为方便和安全地管理自定义参数。
前提条件
背景信息
在云助手命令中,您可以直接使用{{parameterName}}
方式表示自定义参数。例如云助手命令adduser {{username}}
,表示为Linux实例添加用户名。此时,username表示一个自定义参数,您可以在RunCommand或InvokeCommand的Parameters参数中传入具体的取值。
通过引用运维编排服务参数仓库中的参数,您可以以更灵活的方式使用参数。参数仓库定义的参数分为普通参数和加密参数,云助手分别以
{{oos:}}
和{{oos-secret:}}
的方式定义普通参数和加密参数。
- 如果您的参数不涉及敏感数据,建议使用普通参数。操作示例,请参见在云助手命令中使用普通参数。
- 如果您的参数涉及敏感数据(例如密码等),建议使用加密参数。操作示例,请参见在云助手命令中使用加密参数。
在云助手命令中使用普通参数
如果您使用RAM用户执行云助手命令,需要为RAM用户配置策略。具体操作,请参见创建自定义策略和为RAM用户授权。允许RAM用户使用普通参数执行云助手命令,需要使用云助手和参数仓库相关的API权限。具体RAM权限策略如下:
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:DescribeInstances",
"ecs:DescribeTagKeys",
"ecs:DescribeTags",
"ecs:CreateCommand",
"ecs:DescribeCommands",
"ecs:InvokeCommand",
"ecs:RunCommand",
"ecs:DeleteCommand",
"ecs:DescribeInvocations",
"ecs:DescribeInvocationResults",
"ecs:StopInvocation",
"ecs:DescribeCloudAssistantStatus",
"ecs:InstallCloudAssistant",
"oos:GetParameters",
"oos:GetParameter"
],
"Resource": "*"
}
],
"Version": "1"
}
如果您的命令不涉及敏感数据,可以使用普通参数。本节以在Linux实例中增加新用户为例,介绍如何在云助手命令中使用OOS参数仓库的普通参数。
在云助手命令中使用加密参数
如果您使用RAM用户执行云助手命令,需要为RAM用户配置策略。具体操作,请参见创建自定义策略和为RAM用户授权。允许RAM用户使用加密参数执行云助手命令,需要使用云助手、参数仓库及KMS相关的API权限。具体RAM权限策略如下:
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:DescribeInstances",
"ecs:DescribeTagKeys",
"ecs:DescribeTags",
"ecs:CreateCommand",
"ecs:DescribeCommands",
"ecs:InvokeCommand",
"ecs:RunCommand",
"ecs:DeleteCommand",
"ecs:DescribeInvocations",
"ecs:DescribeInvocationResults",
"ecs:StopInvocation",
"ecs:DescribeCloudAssistantStatus",
"ecs:InstallCloudAssistant",
"oos:GetParameters",
"oos:GetSecretParameters",
"oos:GetParameter",
"oos:GetSecretParameter",
"kms:GetSecretValue"
],
"Resource": "*"
}
],
"Version": "1"
}
如果您的命令涉及敏感数据(例如服务器密码、数据库密码等),建议使用加密参数,以提高命令的安全性。本节以在Linux实例中修改用户密码为例,介绍如何在云助手命令中使用OOS参数仓库的加密参数。
说明 执行以下操作前,实例中需要已经创建目标用户。关于如何为Linux实例添加新用户,请参见在云助手命令中使用普通参数。