

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

# 在 Parameter Store 中分配参数策略
<a name="parameter-store-policies"></a>

参数策略让您可以将特定条件分配到参数（如到期日期或*存活时间*），通过这种方式来帮助您管理一组不断增加的参数。参数策略在强制您更新或删除 Parameter Store（AWS Systems Manager 中的一项工具）中存储的密码和配置数据时尤其有用。Parameter Store 提供以下策略类型：`Expiration`、`ExpirationNotification` 和 `NoChangeNotification`。

**注意**  
要实施密码轮换生命周期，请使用 AWS Secrets Manager。您可以使用 Secrets Manager 在数据库凭证、API 密钥和其他密钥的整个生命周期内对其进行轮换、管理和检索。有关更多信息，请参阅 *AWS Secrets Manager 用户指南*中的[什么是AWS Secrets Manager？](https://docs.aws.amazon.com//secretsmanager/latest/userguide/intro.html)。

Parameter Store 通过使用异步的定期扫描强制实施参数策略。创建策略后，您无需执行其他操作来强制实施策略。Parameter Store 会根据您指定的条件独立执行策略定义的操作。

**注意**  
参数策略可用于使用高级参数层的参数。有关更多信息，请参阅 [管理参数层](parameter-store-advanced-parameters.md)。

参数策略是一个 JSON 数组，如下表所示。您可以在创建新的高级参数时分配策略，也可以通过更新参数应用策略。Parameter Store 支持以下类型的参数策略。


| Policy | Details | 示例 | 
| --- | --- | --- | 
|  **过期**  |  此策略将删除参数。您可以使用 `ISO_INSTANT` 格式或 `ISO_OFFSET_DATE_TIME` 格式指定特定日期和时间。要更改需要删除参数的时间，请更新策略。更新*参数*不会影响附加到参数的策略的到期日期或时间。当到达到期日期和时间时，Parameter Store 将删除参数。  此示例使用 `ISO_INSTANT` 格式。您还可以使用 `ISO_OFFSET_DATE_TIME` 格式指定日期和时间。以下是一个示例：`2019-11-01T22:13:48.87+10:30:00`。   |  <pre>{<br />    "Type": "Expiration",<br />    "Version": "1.0",<br />    "Attributes": {<br />        "Timestamp": "2018-12-02T21:34:33.000Z"<br />    }<br />}</pre>  | 
|  **ExpirationNotification**  |  该策略在 Amazon EventBridge (EventBridge) 中启动一个事件，以通知您到期信息。使用此策略，您可以在到达到期时间之前收到通知（以天或小时为单位）。  |  <pre>{<br />    "Type": "ExpirationNotification",<br />    "Version": "1.0",<br />    "Attributes": {<br />        "Before": "15",<br />        "Unit": "Days"<br />    }<br />}</pre>  | 
|  **NoChangeNotification**  |  如果参数在指定时间段内*未*被修改，该策略将在 EventBridge 中启动一个事件。例如，当在一段时间内需要更改密码时，此策略类型非常有用。 此策略通过读取参数的 `LastModifiedTime` 属性确定何时发送通知。如果您更改或编辑参数，系统会根据 `LastModifiedTime` 的新值重置通知时间段。  |  <pre>{<br />    "Type": "NoChangeNotification",<br />    "Version": "1.0",<br />    "Attributes": {<br />        "After": "20",<br />        "Unit": "Days"<br />    }<br />}</pre>  | 

您可向参数分配多个策略。例如，您可以分配 `Expiration` 和 `ExpirationNotification` 策略，让系统启动 EventBridge 事件以通知您即将删除参数。您最多可向参数分配是十 (10) 个策略。

以下示例展示了一个 [PutParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html) API 请求的请求语法，该请求将四个策略分配到名为 `ProdDB3` 的新 `SecureString` 参数。

```
{
    "Name": "ProdDB3",
    "Description": "Parameter with policies",
    "Value": "P@ssW*rd21",
    "Type": "SecureString",
    "Overwrite": "True",
    "Policies": [
        {
            "Type": "Expiration",
            "Version": "1.0",
            "Attributes": {
                "Timestamp": "2018-12-02T21:34:33.000Z"
            }
        },
        {
            "Type": "ExpirationNotification",
            "Version": "1.0",
            "Attributes": {
                "Before": "30",
                "Unit": "Days"
            }
        },
        {
            "Type": "ExpirationNotification",
            "Version": "1.0",
            "Attributes": {
                "Before": "15",
                "Unit": "Days"
            }
        },
        {
            "Type": "NoChangeNotification",
            "Version": "1.0",
            "Attributes": {
                "After": "20",
                "Unit": "Days"
            }
        }
    ]
}
```

## 将策略添加到现有参数
<a name="sysman-paramstore-su-policy-create"></a>

本部分包括有关如何使用 AWS Systems Manager 控制台、AWS Command Line Interface (AWS CLI) 和 AWS Tools for Windows PowerShell 将策略添加到现有参数的信息。有关如何创建包含策略的新参数的信息，请参阅 [在 Systems Manager 中创建 Parameter Store 参数](sysman-paramstore-su-create.md)。

**Topics**
+ [

### 使用控制台将策略添加到现有参数
](#sysman-paramstore-policy-create-console)
+ [

### 使用 AWS CLI 将策略添加到现有参数
](#sysman-paramstore-policy-create-cli)
+ [

### 将策略添加到现有参数 (Tools for Windows PowerShell)
](#sysman-paramstore-policy-create-ps)

### 使用控制台将策略添加到现有参数
<a name="sysman-paramstore-policy-create-console"></a>

按照以下过程，使用 Systems Manager 控制台将策略添加到现有参数。

**将策略添加到现有参数**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，请选择 **Parameter Store**。

1. 选择要更新以包含策略的参数旁边的选项，然后选择**编辑**。

1. 选择 **Advanced**（高级）。

1. （可选）在 **Parameter policies (参数策略)** 部分中，选择 **Enabled (已启用)**。您可以为此参数指定到期日期以及一个或多个通知策略。

1. 选择**保存更改**。

**重要**  
Parameter Store 会在参数上保留策略，直至您使用新策略覆盖这些策略或删除这些策略。
要从现有参数中删除所有策略，请编辑参数并使用括号和大括号应用空策略，如下所示：`[{}]`
如果您向已有策略的参数添加新策略，Systems Manager 将覆盖附加到该参数的策略。现有策略将被删除。如果您希望向已有一个或多个策略的参数添加新策略，请复制并粘贴原始策略，键入新策略，然后保存所做的更改。

### 使用 AWS CLI 将策略添加到现有参数
<a name="sysman-paramstore-policy-create-cli"></a>

使用以下过程，使用 AWS CLI 将策略添加到现有参数。

**将策略添加到现有参数**

1. 安装并配置 AWS Command Line Interface（AWS CLI）（如果尚未执行该操作）。

   有关更多信息，请参阅[安装或更新 AWS CLI 的最新版本](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

1. 运行以下命令将策略添加到现有参数。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter   
       --name "parameter name" \
       --value 'parameter value' \
       --type parameter type \
       --overwrite \
       --policies "[{policies-enclosed-in-brackets-and-curly-braces}]"
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter   
       --name "parameter name" ^
       --value 'parameter value' ^
       --type parameter type ^
       --overwrite ^
       --policies "[{policies-enclosed-in-brackets-and-curly-braces}]"
   ```

------

   下面是一个包含在 15 天后删除参数的到期策略的示例。此示例还包含在参数被删除前五 (5) 天生成 Eventbridge 事件的通知策略。最后，它还在 60 天后未对此参数进行更改时包含了 `NoChangeNotification` 策略。此示例对密码和 AWS Key Management Service AWS KMS key使用模糊名称 (`3l3vat3131`)。有关 AWS KMS keys 的更多信息，请参阅* AWS Key Management Service Developer Guide *中的 [AWS Key Management Service 概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)。

------
#### [ Linux & macOS ]

   ```
   aws ssm put-parameter \
       --name "/Finance/Payroll/3l3vat3131" \
       --value "P@sSwW)rd" \
       --type "SecureString" \
       --overwrite \
       --policies "[{\"Type\":\"Expiration\",\"Version\":\"1.0\",\"Attributes\":{\"Timestamp\":\"2020-05-13T00:00:00.000Z\"}},{\"Type\":\"ExpirationNotification\",\"Version\":\"1.0\",\"Attributes\":{\"Before\":\"5\",\"Unit\":\"Days\"}},{\"Type\":\"NoChangeNotification\",\"Version\":\"1.0\",\"Attributes\":{\"After\":\"60\",\"Unit\":\"Days\"}}]"
   ```

------
#### [ Windows ]

   ```
   aws ssm put-parameter ^
       --name "/Finance/Payroll/3l3vat3131" ^
       --value "P@sSwW)rd" ^
       --type "SecureString" ^
       --overwrite ^
       --policies "[{\"Type\":\"Expiration\",\"Version\":\"1.0\",\"Attributes\":{\"Timestamp\":\"2020-05-13T00:00:00.000Z\"}},{\"Type\":\"ExpirationNotification\",\"Version\":\"1.0\",\"Attributes\":{\"Before\":\"5\",\"Unit\":\"Days\"}},{\"Type\":\"NoChangeNotification\",\"Version\":\"1.0\",\"Attributes\":{\"After\":\"60\",\"Unit\":\"Days\"}}]"
   ```

------

1. 运行以下命令验证参数的详细信息。将*参数名称*替换为您自己的信息。

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-parameters  \
       --parameter-filters "Key=Name,Values=parameter name"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-parameters  ^
       --parameter-filters "Key=Name,Values=parameter name"
   ```

------

**重要**  
Parameter Store 会为参数保留策略，直至您使用新策略覆盖这些策略或删除这些策略。
要从现有参数中删除所有策略，请编辑参数并使用括号和大括号应用空策略。将每个*示例资源占位符*替换为您自己的信息。例如：  

  ```
  aws ssm put-parameter \
      --name parameter name \
      --type parameter type  \
      --value 'parameter value' \
      --policies "[{}]"
  ```

  ```
  aws ssm put-parameter ^
      --name parameter name ^
      --type parameter type  ^
      --value 'parameter value' ^
      --policies "[{}]"
  ```
如果您向已有策略的参数添加新策略，Systems Manager 将覆盖附加到该参数的策略。现有策略将被删除。如果您希望向已有一个或多个策略的参数添加新策略，请复制并粘贴原始策略，键入新策略，然后保存所做的更改。

### 将策略添加到现有参数 (Tools for Windows PowerShell)
<a name="sysman-paramstore-policy-create-ps"></a>

按照以下过程，使用 Tools for Windows PowerShell 将策略添加到现有参数。将每个*示例资源占位符*替换为您自己的信息。

**将策略添加到现有参数**

1. 打开 Tools for Windows PowerShell 并运行以下命令以指定您的凭证。您必须在 Amazon Elastic Compute Cloud (Amazon EC2) 中具有管理员权限，或者 AWS Identity and Access Management (IAM) 中必须为您授予了相应的权限。

   ```
   Set-AWSCredentials `
       –AccessKey access-key-name `
       –SecretKey secret-key-name
   ```

1. 运行以下命令，以便为 PowerShell 会话设置区域。此示例使用美国东部（俄亥俄）区域 (us-east-2)。

   ```
   Set-DefaultAWSRegion `
       -Region us-east-2
   ```

1. 运行以下命令将策略添加到现有参数。将每个*示例资源占位符*替换为您自己的信息。

   ```
   Write-SSMParameter `
       -Name "parameter name" `
       -Value "parameter value" `
       -Type "parameter type" `
       -Policies "[{policies-enclosed-in-brackets-and-curly-braces}]" `
       -Overwrite
   ```

   下面是一个包含在 2020 年 5 月 13 日午夜 12 点 (GMT) 删除参数的到期策略的示例。此示例还包含在参数被删除前五 (5) 天生成 Eventbridge 事件的通知策略。最后，它还在 60 天后未对此参数进行更改时包含了 `NoChangeNotification` 策略。此示例对密码和 AWS 托管式密钥使用模糊名称 (`3l3vat3131`)。

   ```
   Write-SSMParameter `
       -Name "/Finance/Payroll/3l3vat3131" `
       -Value "P@sSwW)rd" `
       -Type "SecureString" `
       -Policies "[{\"Type\":\"Expiration\",\"Version\":\"1.0\",\"Attributes\":{\"Timestamp\":\"2018-05-13T00:00:00.000Z\"}},{\"Type\":\"ExpirationNotification\",\"Version\":\"1.0\",\"Attributes\":{\"Before\":\"5\",\"Unit\":\"Days\"}},{\"Type\":\"NoChangeNotification\",\"Version\":\"1.0\",\"Attributes\":{\"After\":\"60\",\"Unit\":\"Days\"}}]" `
       -Overwrite
   ```

1. 运行以下命令验证参数的详细信息。将*参数名称*替换为您自己的信息。

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

**重要**  
Parameter Store 会在参数上保留策略，直至您使用新策略覆盖这些策略或删除这些策略。
要从现有参数中删除所有策略，请编辑参数并使用括号和大括号应用空策略。例如：  

  ```
  Write-SSMParameter `
      -Name "parameter name" `
      -Value "parameter value" `
      -Type "parameter type" `
      -Policies "[{}]"
  ```
如果您向已有策略的参数添加新策略，Systems Manager 将覆盖附加到该参数的策略。现有策略将被删除。如果您希望向已有一个或多个策略的参数添加新策略，请复制并粘贴原始策略，键入新策略，然后保存所做的更改。