使用 Tools for Windows PowerShell 创建 Parameter Store 参数 - AWS Systems Manager

使用 Tools for Windows PowerShell 创建 Parameter Store 参数

您可以使用 AWS Tools for Windows PowerShell 创建 StringStringListSecureString 参数类型。删除参数后,至少等待 30 秒才能创建具有相同名称的参数。

参数不能被引用或嵌套在其他参数的值中。参数值中不能包含 {{}}{{ssm:parameter-name}}

注意

参数只在创建它的 AWS 区域可用。

创建 String 参数 (Tools for Windows PowerShell)

  1. 如果您尚未安装和配置 AWS Tools for PowerShell(适用于 Windows PowerShell 的工具),请执行这些操作。

    有关信息,请参阅安装 AWS Tools for PowerShell

  2. 运行以下命令,创建一个包含纯文本值的参数。将每个示例资源占位符替换为您自己的信息。

    Write-SSMParameter ` -Name "parameter-name" ` -Value "parameter-value" ` -Type "String"

    - 或者 -

    运行以下命令,创建一个包含 Amazon Machine Image (AMI) ID 作为参数值的参数。

    注意

    要创建带有标签的参数,请先创建 service.model.tag 作为变量。下面是一个例子。

    $tag = New-Object Amazon.SimpleSystemsManagement.Model.Tag $tag.Key = "tag-key" $tag.Value = "tag-value"
    Write-SSMParameter ` -Name "parameter-name" ` -Value "an-AMI-id" ` -Type "String" ` -DataType "aws:ec2:image" ` -Tags $tag

    仅当要创建包含 AMI ID 的参数时,才必须指定 -DataType 选项。对于所有其他参数,默认数据类型为 text。有关更多信息,请参阅 在 Parameter Store 中为亚马逊机器映像 ID 使用本机参数支持

    以下是使用参数层次结构的示例。

    Write-SSMParameter ` -Name "/IAD/Web/SQL/IPaddress" ` -Value "99.99.99.999" ` -Type "String" ` -Tags $tag
  3. 运行以下命令验证参数的详细信息。

    (Get-SSMParameterValue -Name "the-parameter-name-you-specified").Parameters

创建 StringList 参数 (Tools for Windows PowerShell)

  1. 如果您尚未安装和配置 AWS Tools for PowerShell(适用于 Windows PowerShell 的工具),请执行这些操作。

    有关信息,请参阅安装 AWS Tools for PowerShell

  2. 运行以下命令,创建 StringList 参数。将每个示例资源占位符替换为您自己的信息。

    注意

    要创建带有标签的参数,请先创建 service.model.tag 作为变量。下面是一个例子。

    $tag = New-Object Amazon.SimpleSystemsManagement.Model.Tag $tag.Key = "tag-key" $tag.Value = "tag-value"
    Write-SSMParameter ` -Name "parameter-name" ` -Value "a-comma-separated-list-of-values" ` -Type "StringList" ` -Tags $tag

    如果成功,则该命令返回参数的版本号。

    下面是一个例子。

    Write-SSMParameter ` -Name "stringlist-parameter" ` -Value "Milana,Mariana,Mark,Miguel" ` -Type "StringList" ` -Tags $tag
    注意

    StringList 中的项目必须用逗号 (,) 分隔。不能使用其他标点符号或特殊字符对列表中的项目进行转义。如果您有需要逗号的参数值,则使用 String 类型。

  3. 运行以下命令验证参数的详细信息。

    (Get-SSMParameterValue -Name "the-parameter-name-you-specified").Parameters

创建 SecureString 参数 (Tools for Windows PowerShell)

在创建 SecureString 参数前,请阅读关于此类型参数的要求。有关更多信息,请参阅 使用 AWS CLI 创建 SecureString 参数

重要

只会加密 SecureString 参数的。不会加密参数名称、描述和其他属性。

重要

Parameter Store 仅支持对称加密 KMS 密钥。不能使用非对称加密 KMS 密钥来加密您的参数。要获取确定 KMS 密钥是对称还是非对称密钥的帮助,请参阅《AWS Key Management Service 开发人员指南》中的识别对称 KMS 密钥和非对称 KMS 密钥

  1. 如果您尚未安装和配置 AWS Tools for PowerShell(适用于 Windows PowerShell 的工具),请执行这些操作。

    有关信息,请参阅安装 AWS Tools for PowerShell

  2. 运行以下命令创建一个参数。将每个示例资源占位符替换为您自己的信息。

    注意

    要创建带有标签的参数,请先创建 service.model.tag 作为变量。下面是一个例子。

    $tag = New-Object Amazon.SimpleSystemsManagement.Model.Tag $tag.Key = "tag-key" $tag.Value = "tag-value"
    Write-SSMParameter ` -Name "parameter-name" ` -Value "parameter-value" ` -Type "SecureString" ` -KeyId "an AWS KMS key ID, an AWS KMS key ARN, an alias name, or an alias ARN" ` -Tags $tag

    如果成功,则该命令返回参数的版本号。

    注意

    要使用分配给您的账户的 AWS 托管式密钥,请移除命令中的 -KeyId 参数。

    以下示例使用了一个密码参数的模糊名称(3l3vat3131)和一个 AWS 托管式密钥。

    Write-SSMParameter ` -Name "/Finance/Payroll/3l3vat3131" ` -Value "P@sSwW)rd" ` -Type "SecureString"` -Tags $tag
  3. 运行以下命令验证参数的详细信息。

    (Get-SSMParameterValue -Name "the-parameter-name-you-specified" –WithDecryption $true).Parameters

默认情况下,所有 SecureString 值均显示为密码文本。要解密 SecureString 值,用户必须有权调用 AWS KMS Decrypt API 操作。有关配置 AWS KMS 访问控制的信息,请参阅《AWS Key Management Service 开发人员指南》中的 AWS KMS 的身份验证和访问控制

重要

如果更改用于加密参数的 KMS 密钥的别名,则还必须更新该参数用于引用 AWS KMS 的密钥别名。这仅适用于 KMS 密钥别名;除非删除整个密钥,否则别名附加到的密钥 ID 将保持不变。