分配参数策略 - Amazon Web Services Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

分配参数策略

参数策略让您可以将特定条件分配到参数(如到期日期或生存期。参数策略在强制您更新或删除存储在 Parameter Store 中的密码和配置数据时尤其有用,可以使用Amazon Web Services Systems Manager。参数存储提供以下类型的策略:ExpirationExpirationNotification, 和NoChangeNotification

注意

要实现密码轮换生命周期,请使用Amazon Secrets Manager。可以使用密钥管理 Secrets Manager 在数据库凭证、API 密钥和其他密钥的整个生命周期内对其进行轮换、管理和检索。有关更多信息,请参阅 。是什么Amazon Secrets Manager?中的Amazon Secrets Manager用户指南

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

注意

参数策略可用于使用高级参数层的参数。有关更多信息,请参阅 管理参数层

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

Policy 详细信息 示例

过期

此策略将删除参数。您可以使用 ISO_INSTANT 格式或 ISO_OFFSET_DATE_TIME 格式指定特定日期和时间。要更改需要参数被删除的时间,您必须更新策略。更新parameter不会影响附加加加它的策略的到期日期或时间。当到达到期日期和时间时,参数存储会删除参数。

注意

此示例使用 ISO_INSTANT 格式。您还可以使用 ISO_OFFSET_DATE_TIME 格式指定日期和时间。以下是一个示例:2019-11-01T22:13:48.87+10:30:00

{ "Type":"Expiration", "Version":"1.0", "Attributes":{ "Timestamp":"2018-12-02T21:34:33.000Z" } }

ExpirationNotification

此策略将在 Amazon EventBridge (EventBridge) 中触发通知您到期信息的事件。使用此策略,您可以在到达到期时间之前收到通知(以天或小时为单位)。

{ "Type":"ExpirationNotification", "Version":"1.0", "Attributes":{ "Before":"15", "Unit":"Days" } }

NoChangeNotification

此策略将在 EventBridge 中触发事件,如果参数具有不是在指定时间段内被修改。例如,当在一段时间内需要更改密码时,此策略类型非常有用。

此策略通过读取参数的 LastModifiedTime 属性确定何时发送通知。如果您更改或编辑参数,系统会根据 LastModifiedTime 的新值重置通知时间段。

{ "Type":"NoChangeNotification", "Version":"1.0", "Attributes":{ "After":"20", "Unit":"Days" } }

您可向参数分配多个策略。例如,您可以将ExpirationExpirationNotification策略,以便系统触发 EventBridge 事件,通知您即将删除参数的信息。您最多可向参数分配是十 (10) 个策略。

以下示例显示了一个PutParameterAPI 请求,该请求将四个策略分配给新SecureString参数名为ProdDB3

PutParameterRequest { "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" } } ] }

将策略添加到现有参数

本部分包括有关如何使用将策略添加到现有参数的信息Amazon Web Services Systems Manager控制台、Amazon命令行界面 (AmazonCLI) 和Amazon适用于 Windows PowerShell 的工具。有关如何创建包含策略的新参数的信息,请参阅 创建 Systems Manager 参数

将策略添加到现有参数(控制台)

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

将策略添加到现有参数

  1. 打开Amazon Web Services Systems Manager控制台位于https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择 Parameter Store

    -或者-

    如果Amazon Web Services Systems Manager首先打开主页,选择菜单图标( )以打开导航窗格中的,然后选择Parameter Store

  3. 选择要更新以包含策略的参数旁边的选项,然后选择编辑

  4. 选择 Advanced (高级)

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

  6. 选择保存更改

重要
  • Parameter Store 会在参数上保留策略,直至您使用新策略覆盖这些策略或删除这些策略。

  • 要从现有参数中删除所有策略,请编辑参数并使用括号和大括号应用空策略,如下所示:[{}]

  • 如果您向已有策略的参数添加新策略,Systems Manager 将覆盖附加到该参数的策略。现有策略将被删除。如果您向已有一个或多个策略的参数添加新策略,您必须复制并粘贴原始策略,键入新策略,然后保存所作的更改。

将策略添加到现有参数 (AmazonCLI)

使用以下过程将策略添加到现有参数,方法是使用AmazonCLI。

将策略添加到现有参数

  1. 安装和配置Amazon命令行界面 (AmazonCLI),如果尚未执行该操作。

    想要了解有关信息,请参阅安装或升级Amazon命令行工具

  2. 运行以下命令将策略添加到现有参数。

    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 策略。该示例使用一个模糊化名称(3l3vat3131)作为密码和Amazon Key Management Service AmazonKMS 密钥。有关 的更多信息AmazonKMS 密钥,请参阅Amazon Key Management Service概念中的Amazon Key Management Service开发人员指南

    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\"}}]"
  3. 运行以下命令验证参数的详细信息。

    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 会为参数保留策略,直至您使用新策略覆盖这些策略或删除这些策略。

  • 要从现有参数中删除所有策略,请编辑参数并使用括号和大括号应用空策略。例如:

    Linux & macOS
    aws ssm put-parameter \ --name parameter-name \ --type parameter-type \ --value 'parameter-value' \ --policies "[{}]"
    Windows
    aws ssm put-parameter ^ --name parameter-name ^ --type parameter-type ^ --value 'parameter-value' ^ --policies "[{}]"
  • 如果您向已有策略的参数添加新策略,Systems Manager 将覆盖附加到该参数的策略。现有策略将被删除。如果您向已有一个或多个策略的参数添加新策略,您必须复制并粘贴原始策略,键入新策略,然后保存所作的更改。

将策略添加到现有参数(适用于 Windows PowerShell 的 AWS 工具)

使用以下过程,使用适用于 Windows PowerShell 的工具将策略添加到现有参数。

将策略添加到现有参数

  1. 打开适用于 Windows PowerShell 的工具并运行以下命令来指定凭证。您必须在 Amazon Elastic Compute Cloud (Amazon EC2) 中具有管理员权限,或者必须在 AWS Identity and Access Management (IAM) 中被授予相应权限。有关更多信息,请参阅 Systems Manager 的先决条件

    Set-AWSCredentials –AccessKey access-key-name –SecretKey secret-key-name
  2. 运行以下命令,以便为 PowerShell 会话设置区域。此示例使用美国东部(俄亥俄)区域 (us-east-2)。

    Set-DefaultAWSRegion -Region us-east-2
  3. 运行以下命令将策略添加到现有参数。

    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 策略。该示例使用一个模糊化名称(3l3vat3131)作为密码和Amazon托管密钥。

    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
  4. 运行以下命令验证参数的详细信息。

    (Get-SSMParameterValue -Name "parameter-name-you-specified").Parameters
重要
  • Parameter Store 会在参数上保留策略,直至您使用新策略覆盖这些策略或删除这些策略。

  • 要从现有参数中删除所有策略,请编辑参数并使用括号和大括号应用空策略。例如:

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