

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

# 了解参数类型
<a name="what-is-a-parameter"></a>

*参数*是存储在 Parameter Store 中的任何数据片段，例如文本块、名称列表、AMI ID、许可证密钥等。可以在脚本、命令和 SSM 文档中集中安全地引用此数据。

在引用参数时，请使用以下惯例指定参数名称。

{{`ssm:{{parameter-name}}`}}

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

Parameter Store 支持三种类型的参数：`String`、`StringList` 和 `SecureString`。

有一个例外，当创建或更新参数时，您将以明文形式输入参数值，并且 Parameter Store 不对输入的文本执行验证。但是，对于 `String` 参数，您可以将数据类型指定为 `aws:ec2:image`，并且 Parameter Store 会验证您输入的值是否为 Amazon EC2 AMI 的正确格式；例如：`ami-12345abcdeEXAMPLE`。

## 参数类型：String
<a name="parameter-type-string"></a>

默认情况下，`String` 参数的值由您输入的任何文本数据块组成。例如：
+ `abc123`
+ `Example Corp`
+ `<img src="images/bannerImage1.png"/>`

## 参数类型：StringList
<a name="parameter-type-stringlist"></a>

`StringList` 参数值包含以逗号分隔的值列表，如下面的示例所示。

`Monday,Wednesday,Friday`

`CSV,TSV,CLF,ELF,JSON`

## 参数类型：SecureString
<a name="parameter-type-securestring"></a>

`SecureString` 参数的值是需要以安全的方式存储和引用的任何敏感数据。如果有不希望用户更改或以明文形式引用的数据（例如轻量级密钥或许可证密钥），请使用 `SecureString` 数据类型创建这些参数。

建议您在以下情形中使用 `SecureString` 参数：
+ 您想要跨 AWS 服务使用数据/参数，但又不想以明文形式在命令、函数、代理日志或 CloudTrail 日志中公开这些值。
+ 您想要控制可以访问敏感数据的人。
+ 您希望在有人访问敏感数据时进行审核 (CloudTrail)。
+ 您希望对您的敏感数据进行加密，并想用自己的加密密钥管理访问。

您可以将 `SecureString` 参数类型用于要加密的文本数据，例如不需要轮换的轻量级密钥、机密配置数据或需要保护的任何其他类型的数据。`SecureString` 数据会使用 AWS KMS 密钥进行加密和解密。您可以使用 AWS 提供的默认 KMS 密钥，也可以创建和使用您自己的 AWS KMS key。（如果您想要限制用户对 `SecureString` 参数的访问，可以使用自己的 AWS KMS key。有关更多信息，请参阅 [有关使用 AWS 默认密钥和客户托管密钥的 IAM 权限](sysman-paramstore-access.md#ps-kms-permissions)。）

**重要**  
请注意以下重要信息。  
如果您管理需要自动轮换、跨账户访问或精细审核日志记录的凭证，则建议使用 [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)。Secrets Manager 专为管理数据库凭证、API 密钥和受支持的第三方软件提供的密钥等密钥而设计。有关更多信息，请参阅《AWS Secrets Manager 用户指南》**中的[什么是 AWS Secrets Manager？](https://docs.aws.amazon.com//secretsmanager/latest/userguide/intro.html)。
请勿将敏感数据存储在 `String` 或 `StringList` 的参数中。对于必须保持加密状态的所有敏感数据，请仅使用 `SecureString` 参数类型。
只会加密 `SecureString` 参数的*值*。不会加密参数名称、描述和其他属性。

您还可以将 `SecureString` 参数与其他 AWS 服务结合使用。在以下示例中，Lambda 函数使用 [GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html) API 检索 `SecureString` 参数。

```
import json
import boto3
ssm = boto3.client('ssm', 'us-east-2')
def get_parameters():
    response = ssm.get_parameters(
        Names=['LambdaSecureString'],WithDecryption=True
    )
    for parameter in response['Parameters']:
        return parameter['Value']
        
def lambda_handler(event, context):
    value = get_parameters()
    print("value1 = " + value)
    return value  # Echo back the first key value
```

**AWS KMS 加密和定价**  
如果您在创建参数时选择了 `SecureString` 参数类型，Systems Manager 将使用 AWS KMS 加密参数值。

**重要**  
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)。

创建 `SecureString` 参数不收取 Parameter Store 任何费用，但使用 AWS KMS 加密的费用确实适用。有关更多信息，请参阅 [AWS Key Management Service 定价](https://aws.amazon.com/kms/pricing)。

有关 AWS 托管式密钥和客户管理型密钥的更多信息，请参阅《*AWS Key Management Service 开发人员指南*》中的 [AWS Key Management Service 概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)。有关 Parameter Store 和 AWS KMS 加密的更多信息，请参阅 [AWS Systems ManagerParameter Store 如何使用 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/services-parameter-store.html)。

**注意**  
要查看 AWS 托管式密钥，请使用 AWS KMS `DescribeKey` 操作。此 AWS Command Line Interface（AWS CLI）示例使用 `DescribeKey` 查看 AWS 托管式密钥。  

```
aws kms describe-key --key-id alias/aws/ssm
```