

• AWS Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# 使用 Tools for Windows PowerShell 来创建 Parameter Store 参数
<a name="param-create-ps"></a>

您可以使用 AWS Tools for Windows PowerShell 创建 `String`、`StringList` 和 `SecureString` 参数类型。删除参数后，至少等待 30 秒才能创建具有相同名称的参数。

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

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

**Topics**
+ [创建字符串参数 (Tools for Windows PowerShell)](#param-create-ps-string)
+ [创建 StringList 参数 (Tools for Windows PowerShell)](#param-create-ps-stringlist)
+ [创建 SecureString 参数 (Tools for Windows PowerShell)](#param-create-ps-securestring)

## 创建字符串参数 (Tools for Windows PowerShell)
<a name="param-create-ps-string"></a>

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

   有关更多信息，请参阅[安装 AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html)。

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

   ```
   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 中为 Amazon Machine Image ID 使用本机参数支持](parameter-store-ec2-aliases.md)。

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

   ```
   Write-SSMParameter `
       -Name "/IAD/Web/SQL/IPaddress" `
       -Value "99.99.99.999" `
       -Type "String" `
       -Tags $tag
   ```

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

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

## 创建 StringList 参数 (Tools for Windows PowerShell)
<a name="param-create-ps-stringlist"></a>

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

   有关更多信息，请参阅[安装 AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html)。

1. 运行以下命令，创建 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` 类型。

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

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

## 创建 SecureString 参数 (Tools for Windows PowerShell)
<a name="param-create-ps-securestring"></a>

在创建 `SecureString` 参数前，请阅读关于此类型参数的要求。有关更多信息，请参阅 [使用 AWS CLI 来创建 SecureString 参数](param-create-cli.md#param-create-cli-securestring)。

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

**重要**  
Parameter Store 仅支持[对称加密 KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose-key-spec.html#symmetric-cmks)。不能使用[非对称加密 KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)来加密您的参数。要获取确定 KMS 密钥是对称还是非对称密钥的帮助，请参阅 *AWS Key Management Service 开发人员指南*中的[识别对称 KMS 密钥和非对称 KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html)。

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

   有关更多信息，请参阅[安装 AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html)。

1. 运行以下命令创建一个参数。将每个*示例资源占位符*替换为您自己的信息。
**注意**  
要创建带有标签的参数，请先创建 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
   ```

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

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

默认情况下，所有 `SecureString` 值均显示为密码文本。要解密 `SecureString` 值，用户必须有权调用 AWS KMS [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) API 操作。有关配置 AWS KMS 访问控制的信息，请参阅 *AWS Key Management Service 开发人员指南*中的 [AWS KMS 的身份验证和访问控制](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html)。

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