在 Parameter Store 中分配参数策略
参数策略让您可以将特定条件分配到参数(如到期日期或存活时间),通过这种方式来帮助您管理一组不断增加的参数。参数策略在强制您更新或删除 Parameter Store(Amazon Systems Manager 的一项功能)中存储的密码和配置数据时尤其有用。Parameter Store 提供以下策略类型:Expiration
、ExpirationNotification
和 NoChangeNotification
。
注意
要实现密码轮换生命周期,请使用 Amazon Secrets Manager。您可以使用 Secrets Manager 在数据库凭证、API 密钥和其他密钥的整个生命周期内对其进行轮换、管理和检索。有关更多信息,请参阅Amazon Secrets Manager《用户指南》中的什么是Amazon Secrets Manager?。
Parameter Store 通过使用异步的定期扫描强制实施参数策略。创建策略后,您无需执行其他操作来强制实施策略。Parameter Store 会根据您指定的条件独立执行策略定义的操作。
注意
参数策略可用于使用高级参数层的参数。有关更多信息,请参阅 管理参数层。
参数策略是一个 JSON 数组,如下表所示。您可以在创建新的高级参数时分配策略,也可以通过更新参数应用策略。Parameter Store 支持以下类型的参数策略。
Policy | 详细信息 | 示例 |
---|---|---|
过期 |
此策略将删除参数。您可以使用 注意此示例使用 |
|
ExpirationNotification |
该策略在 Amazon EventBridge (EventBridge) 中启动一个事件,以通知您到期信息。使用此策略,您可以在到达到期时间之前收到通知(以天或小时为单位)。 |
|
NoChangeNotification |
如果参数在指定时间段内未被修改,该策略将在 EventBridge 中启动一个事件。例如,当在一段时间内需要更改密码时,此策略类型非常有用。 此策略通过读取参数的 |
|
您可向参数分配多个策略。例如,您可以分配 Expiration
和 ExpirationNotification
策略,让系统启动 EventBridge 事件以通知您即将删除参数。您最多可向参数分配是十 (10) 个策略。
以下示例展示了一个 PutParameter 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" } } ] }
将策略添加到现有参数
本部分包括有关如何使用 Amazon Systems Manager 控制台、Amazon Command Line Interface (Amazon CLI) 和 Amazon Tools for Windows PowerShell 将策略添加到现有参数的信息。有关如何创建包含策略的新参数的信息,请参阅 在 Systems Manager 中创建 Parameter Store 参数。
使用控制台将策略添加到现有参数
按照以下过程,使用 Systems Manager 控制台将策略添加到现有参数。
将策略添加到现有参数
访问 https://console.aws.amazon.com/systems-manager/
,打开 Amazon Systems Manager 控制台。 在导航窗格中,选择 Parameter Store。
-
选择要更新以包含策略的参数旁边的选项,然后选择编辑。
-
选择 Advanced (高级)。
-
(可选)在 Parameter policies (参数策略) 部分中,选择 Enabled (已启用)。您可以为此参数指定到期日期以及一个或多个通知策略。
-
选择 Save changes(保存更改)。
重要
-
Parameter Store 会在参数上保留策略,直至您使用新策略覆盖这些策略或删除这些策略。
-
要从现有参数中删除所有策略,请编辑参数并使用括号和大括号应用空策略,如下所示:
[{}]
-
如果您向已有策略的参数添加新策略,Systems Manager 将覆盖附加到该参数的策略。现有策略将被删除。如果您希望向已有一个或多个策略的参数添加新策略,请复制并粘贴原始策略,键入新策略,然后保存所做的更改。
使用 Amazon CLI 将策略添加到现有参数
使用以下过程,使用 Amazon CLI 将策略添加到现有参数。
将策略添加到现有参数
安装并配置 Amazon Command Line Interface(Amazon CLI)(如果尚未执行该操作)。
有关信息,请参阅安装或更新 Amazon CLI 的最新版本。
-
运行以下命令将策略添加到现有参数。将每个
示例资源占位符
替换为您自己的信息。下面是一个包含在 15 天后删除参数的到期策略的示例。此示例还包含在参数被删除前五 (5) 天生成 Eventbridge 事件的通知策略。最后,它还在 60 天后未对此参数进行更改时包含了
NoChangeNotification
策略。此示例对密码和 Amazon Key Management Service Amazon KMS key使用模糊名称 (3l3vat3131
)。有关 Amazon KMS keys 的更多信息,请参阅 Amazon Key Management Service Developer Guide 中的 Amazon Key Management Service 概念。 -
运行以下命令验证参数的详细信息。将
参数名称
替换为您自己的信息。
重要
-
Parameter Store 会为参数保留策略,直至您使用新策略覆盖这些策略或删除这些策略。
-
要从现有参数中删除所有策略,请编辑参数并使用括号和大括号应用空策略。将每个
示例资源占位符
替换为您自己的信息。例如: -
如果您向已有策略的参数添加新策略,Systems Manager 将覆盖附加到该参数的策略。现有策略将被删除。如果您希望向已有一个或多个策略的参数添加新策略,请复制并粘贴原始策略,键入新策略,然后保存所做的更改。
将策略添加到现有参数 (Tools for Windows PowerShell)
按照以下过程,使用 Tools for Windows PowerShell 将策略添加到现有参数。将每个示例资源占位符
替换为您自己的信息。
将策略添加到现有参数
-
打开 Tools for Windows PowerShell 并运行以下命令以指定您的凭证。您必须在 Amazon Elastic Compute Cloud (Amazon EC2) 中具有管理员权限,或者 Amazon Identity and Access Management (IAM) 中必须为您授予了相应的权限。
Set-AWSCredentials ` –AccessKey
access-key-name
` –SecretKeysecret-key-name
-
运行以下命令,以便为 PowerShell 会话设置区域。此示例使用美国东部(俄亥俄)区域 (us-east-2)。
Set-DefaultAWSRegion ` -Region us-east-2
-
运行以下命令将策略添加到现有参数。将每个
示例资源占位符
替换为您自己的信息。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
策略。此示例对密码和 Amazon 托管式密钥使用模糊名称 (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
-
运行以下命令验证参数的详细信息。将
参数名称
替换为您自己的信息。(Get-SSMParameterValue -Name "
parameter name
").Parameters
重要
-
Parameter Store 会在参数上保留策略,直至您使用新策略覆盖这些策略或删除这些策略。
-
要从现有参数中删除所有策略,请编辑参数并使用括号和大括号应用空策略。例如:
Write-SSMParameter ` -Name "
parameter name
" ` -Value "parameter value
" ` -Type "parameter type
" ` -Policies "[{}]" -
如果您向已有策略的参数添加新策略,Systems Manager 将覆盖附加到该参数的策略。现有策略将被删除。如果您希望向已有一个或多个策略的参数添加新策略,请复制并粘贴原始策略,键入新策略,然后保存所做的更改。