使用 AWS CLI 来创建 Parameter Store 参数
您可以使用 AWS Command Line Interface (AWS CLI) 创建 String
、StringList
和 SecureString
参数类型。删除参数后,至少等待 30 秒才能创建具有相同名称的参数。
参数不能被引用或嵌套在其他参数的值中。参数值中不能包含 {{}}
或 {{ssm:
。parameter-name
}}
注意
参数只在创建它的 AWS 区域 可用。
主题
使用 AWS CLI 来创建 String
参数
安装并配置 AWS Command Line Interface(AWS CLI)(如果尚未执行该操作)。
有关更多信息,请参阅安装或更新 AWS CLI 的最新版本。
-
运行以下命令,创建
String
类型参数。将每个示例资源占位符
替换为您自己的信息。- 或者 -
运行以下命令,创建一个包含 Amazon Machine Image (AMI) ID 作为参数值的参数。
--name
选项支持层次结构。有关层次结构的更多信息,请参阅 处理 Parameter Store 中的参数层次结构。仅当要创建包含 AMI ID 的参数时,才必须指定
--data-type
选项。它会验证您输入的参数值是否为格式正确的 Amazon Elastic Compute Cloud (Amazon EC2) AMI ID。对于所有其他参数,默认数据类型为text
,并且可以选择指定一个值。有关更多信息,请参阅 在 Parameter Store 中为 Amazon Machine Image ID 使用本机参数支持。重要
如果成功,则该命令返回参数的版本号。例外:如果您已将
aws:ec2:image
指定为数据类型,则响应中的新版本号并不意味着参数值已经过验证。有关更多信息,请参阅 在 Parameter Store 中为 Amazon Machine Image ID 使用本机参数支持。以下示例将两个键/值对标签添加到参数。
以下是在名称中使用参数层次结构创建明文
String
参数的示例。它会返回参数的版本号。有关参数层次结构的更多信息,请参阅 处理 Parameter Store 中的参数层次结构。 -
运行以下命令,查看最新参数值并验证新参数的详细信息。
aws ssm get-parameters --names "/Test/IAD/helloWorld"
系统将返回类似于以下内容的信息。
{ "InvalidParameters": [], "Parameters": [ { "Name": "/Test/IAD/helloWorld", "Type": "String", "Value": "My updated parameter value", "Version": 2, "LastModifiedDate": "2020-02-25T15:55:33.677000-08:00", "ARN": "arn:aws:ssm:us-east-2:123456789012:parameter/Test/IAD/helloWorld" } ] }
运行以下命令,更改参数值。它会返回参数的版本号。
aws ssm put-parameter --name "/Test/IAD/helloWorld" --value "My updated 1st parameter" --type String --overwrite
运行以下命令,查看参数值的历史记录。
aws ssm get-parameter-history --name "/Test/IAD/helloWorld"
运行以下命令,在命令中使用该参数。
aws ssm send-command --document-name "AWS-RunShellScript" --parameters '{"commands":["echo {{ssm:/Test/IAD/helloWorld}}"]}' --targets "Key=instanceids,Values=
instance-ids
"
如果您只想检索参数值,请运行以下命令。
aws ssm get-parameter --name testDataTypeParameter --query "Parameter.Value"
如果您只想使用 get-parameters
检索参数值,请运行以下命令。
aws ssm get-parameters --names "testDataTypeParameter" --query "Parameters[*].Value"
运行以下命令,查看参数元数据。
aws ssm describe-parameters --filters "Key=Name,Values=/Test/IAD/helloWorld"
注意
名称必须大写。
系统将返回类似于以下内容的信息。
{ "Parameters": [ { "Name": "helloworld", "Type": "String", "LastModifiedUser": "arn:aws:iam::123456789012:user/JohnDoe", "LastModifiedDate": 1494529763.156, "Version": 1, "Tier": "Standard", "Policies": [] } ] }
使用 AWS CLI 来创建 StringList 参数
安装并配置 AWS Command Line Interface(AWS CLI)(如果尚未执行该操作)。
有关更多信息,请参阅安装或更新 AWS CLI 的最新版本。
-
运行以下命令创建一个参数。将每个
示例资源占位符
替换为您自己的信息。注意
如果成功,则该命令返回参数的版本号。
此示例将两个键/值对添加到参数。(根据本地计算机上的操作系统类型,运行以下命令之一。从本地 Windows 计算机运行的版本包含转义字符(“\”),您需要从命令行工具运行命令。)
下面是一个使用参数层次结构的
StringList
示例。注意
StringList
中的项目必须用逗号 (,) 分隔。不能使用其他标点符号或特殊字符对列表中的项目进行转义。如果您有需要逗号的参数值,则使用String
类型。 -
运行
get-parameters
命令,验证该参数的详细信息。例如:aws ssm get-parameters --name "/IAD/ERP/Oracle/addUsers"
使用 AWS CLI 来创建 SecureString 参数
使用以下过程创建 SecureString
参数。将每个示例资源占位符
替换为您自己的信息。
重要
只会加密 SecureString
参数的值。不会加密参数名称、描述和其他属性。
重要
Parameter Store 仅支持对称加密 KMS 密钥。不能使用非对称加密 KMS 密钥来加密您的参数。要获取确定 KMS 密钥是对称还是非对称密钥的帮助,请参阅 AWS Key Management Service 开发人员指南中的识别对称 KMS 密钥和非对称 KMS 密钥。
安装并配置 AWS Command Line Interface(AWS CLI)(如果尚未执行该操作)。
有关更多信息,请参阅安装或更新 AWS CLI 的最新版本。
-
运行以下命令之一,创建使用
SecureString
数据类型的参数。如果您在自己的账户和区域中使用 AWS 托管式密钥创建
SecureString
参数,则无需提供--key-id
参数的值。注意
要使用分配给您的 AWS 账户和 AWS 区域的 AWS KMS key,请从命令中删除
key-id
参数。有关 AWS KMS keys 的更多信息,请参阅 AWS Key Management Service 开发人员指南中的 AWS Key Management Service 概念。要使用客户托管密钥而不是分配给您的账户的 AWS 托管式密钥,需要使用
--key-id
参数指定密钥。该参数支持以下 KMS 参数格式。-
密钥 Amazon Resource Name (ARN) 示例:
arn:aws:kms:us-east-2:123456789012:key/
key-id
-
别名 ARN 示例:
arn:aws:kms:us-east-2:123456789012:alias/
alias-name
-
密钥 ID 示例:
12345678-1234-1234-1234-123456789012
-
别名示例:
alias/MyAliasName
您可以使用 AWS Management Console 或 AWS KMS API 创建客户托管密钥。以下 AWS CLI 命令在您的 AWS 账户的当前 AWS 区域创建客户托管密钥。
aws kms create-key
使用以下格式的命令,利用您刚刚创建的密钥创建
SecureString
参数。以下示例对密码参数和 AWS KMS key 使用模糊名称 (
3l3vat3131
)。 -
-
运行以下命令验证参数的详细信息。
如果您不指定
with-decryption
参数,或者如果您指定no-with-decryption
参数,命令会返回加密的 GUID。 -
运行以下命令,查看参数元数据。
-
如果您使用的不是客户托管的 AWS KMS key,请运行以下命令更改参数值。
- 或者 -
如果您使用的是客户托管的 AWS KMS key,请运行以下命令之一更改参数值。
-
运行以下命令,查看最新的参数值。
-
运行以下命令,查看参数值的历史记录。
注意
您可以使用加密值手动创建参数。在本例中,由于值已经加密,因此您无需选择 SecureString
参数类型。如果您选择 SecureString
,将对您的参数进行双重加密。
默认情况下,所有 SecureString
值均显示为密码文本。要解密 SecureString
值,用户必须有权调用 AWS KMS Decrypt API 操作。有关配置 AWS KMS 访问控制的信息,请参阅 AWS Key Management Service 开发人员指南中的 AWS KMS 的身份验证和访问控制。
重要
如果更改用于加密参数的 KMS 密钥的别名,则还必须更新该参数用于引用 AWS KMS 的密钥别名。这仅适用于 KMS 密钥别名;除非删除整个密钥,否则别名附加到的密钥 ID 将保持不变。
使用 AWS CLI 来创建多行参数
您可以使用 AWS CLI 来创建带换行符的参数。使用换行符将文本分成更长的参数值,使其易于阅读,或者,例如,更新网页的多段参数内容。您可以将内容包含在 JSON 文件中并使用 --cli-input-json
选项,使用诸如 \n
等换行符,如以下示例所示。
安装并配置 AWS Command Line Interface(AWS CLI)(如果尚未执行该操作)。
有关更多信息,请参阅安装或更新 AWS CLI 的最新版本。
-
运行以下命令,创建多行参数。
以下示例显示
MultiLineParameter.json
文件的内容。{ "Value": "<para>Paragraph One</para>\n<para>Paragraph Two</para>\n<para>Paragraph Three</para>" }
保存的参数值的存储方式如下。
<para>Paragraph One</para> <para>Paragraph Two</para> <para>Paragraph Three</para>