管理参数层
Parameter Store 是 AWS Systems Manager 的一项功能,包括标准参数和高级参数。需单独配置参数以使用标准参数层(默认层)或高级参数层。
您可以随时将标准参数更改为高级参数,但不能将高级参数恢复为标准参数。这是因为将高级参数恢复为标准参数会导致系统将参数的大小从 8KB 缩小到 4KB,从而导致数据丢失。恢复参数还会移除所有应用于参数的策略。此外,高级参数使用不同于标准参数的加密形式。有关更多信息,请参阅 AWS Key Management Service 开发人员指南中的 AWS Systems ManagerParameter Store 如何使用 AWS KMS。
如果您不再需要高级参数,或者如果您不想再为高级参数支付费用,请删除它并将它重新创建为新的标准参数。
下表介绍了两个层之间的区别。
Standard | 高级 | |
---|---|---|
允许的参数的总数 (每个 AWS 账户和 AWS 区域) |
10000 |
100000 |
参数值的最大大小 |
4 KB |
8 KB |
提供参数策略 |
否 |
是 有关更多信息,请参阅 在 Parameter Store 中分配参数策略。 |
费用 |
无额外费用 |
需支付费用 有关更多信息,请参阅 Parameter Store 的 AWS Systems Manager 定价 |
指定默认参数层
在创建或更新参数的请求(即 PutParameter
操作)中,您可以指定要在请求中使用的参数层。以下是使用 AWS Command Line Interface (AWS CLI) 的示例。
无论何时在请求中指定层,Parameter Store 都会根据您的请求创建或更新参数。不过,如果没有在请求中显式指定层,Parameter Store 默认层设置会确定在哪个层中创建参数。
在开始使用 Parameter Store 时,默认层是标准参数层。如果使用高级参数层,则可以将以下其中一项指定为默认值:
-
高级:在使用该选项时,Parameter Store 会将所有请求作为高级参数进行评估。
-
智能分层:在使用该选项时,Parameter Store 会评估每个请求以确定参数是标准还是高级参数。
如果请求不包含任何需要使用高级参数的选项,则会在标准参数层中创建参数。如果在请求中包含一个或多个需要使用高级参数的选项,则 Parameter Store 会在高级参数层中创建参数。
智能分层的优点
以下是您可能选择智能分层作为默认层的原因。
成本控制 - 除非绝对需要使用高级参数,否则智能分层将始终创建标准参数以帮助控制参数相关成本。
自动升级到高级参数层 - 在对需要将标准参数升级到高级参数的代码进行更改时,智能分层将为您处理转换。您无需更改代码即可进行升级。
以下是一些自动升级的示例:
-
您的 AWS CloudFormation 模板在运行时预置了大量参数。在该过程导致您达到标准参数层中的 1 万个参数配额时,智能分层会自动将您升级到高级参数层,并且 AWS CloudFormation 过程不会中断。
-
您需将证书值存储在一个参数中,定期轮换证书值,并且内容小于标准参数层的 4 KB 配额。如果替换证书值超过 4 KB,智能分层会自动将参数升级到高级参数层。
-
您希望将大量现有标准参数与参数策略相关联,这需要使用高级参数层。并非必须在更新参数的所有调用中包含
--tier Advanced
选项,智能分层会自动将参数升级到高级参数层。无论何时引入高级参数层条件,智能分层选项都会将参数从标准升级到高级。
需要使用高级参数的选项包括以下几项:
-
参数的内容大小超过 4 KB。
-
参数使用参数策略。
-
您的 AWS 账户在当前 AWS 区域中已具有超过 10000 个参数。
默认层选项
您可以指定为默认值的层选项包括以下内容。
-
Standard (标准) – 在开始使用 Parameter Store 时,默认层是标准参数层。通过使用标准参数层,您可以为 AWS 账户中的每个 AWS 区域创建 10000 个参数。每个参数的内容大小最大可等于 4 KB。标准参数不支持参数策略。使用标准参数层不会产生额外的费用。选择标准作为默认层表示 Parameter Store 将始终尝试为未指定层的请求创建标准参数。
-
Advanced (高级) – 使用高级参数层最多可以为 AWS 账户中的每个 AWS 区域创建 100000 个参数。每个参数的内容大小最大可等于 8 KB。高级参数支持参数策略。使用高级参数层会产生相应的费用。有关更多信息,请参阅 Parameter Store 的 AWS Systems Manager 定价
。选择高级作为默认层表示 Parameter Store 将始终尝试为未指定层的请求创建高级参数。 注意
选择高级参数层时,您需要明确授权 AWS 就您创建的任何高级参数向您的账户收取相应费用。
-
智能分层 – 使用智能分层选项,Parameter Store 可以根据请求内容确定是使用标准参数层,还是使用高级参数层。例如,如果运行命令以创建内容小于 4KB 的参数,您的 AWS 账户的当前 AWS 区域中的参数少于 10000 个,并且未指定参数策略,则会创建标准参数。如果运行命令以创建内容超过 4KB 的参数,您的 AWS 账户的当前 AWS 区域中的参数超过 10000 个,或者您指定了参数策略,则会创建高级参数。
注意
选择智能分层时,您需要明确授权 AWS 就您创建的任何高级参数向您的账户收取相应费用。
您可以随时更改 Parameter Store 默认层设置。
配置权限以指定 Parameter Store 默认层
您可以执行以下操作之一,以验证您是否在 AWS Identity and Access Management (IAM) 中具有相应权限,能够更改 Parameter Store 中的默认参数层:
-
确保将
AdministratorAccess
策略附加到您的 IAM 实体(例如用户、组或角色)。 -
确保您有权使用以下 API 操作更改默认层设置:
向 IAM 实体授予以下权限,以允许用户查看和更改 AWS 账户 内特定 AWS 区域 中参数的默认层设置
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetServiceSetting" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:UpdateServiceSetting" ], "Resource": "arn:aws:ssm:
region
:account-id
:servicesetting/ssm/parameter-store/default-parameter-tier" } ] }
管理员可以通过分配以下权限来指定只读权限。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetServiceSetting" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "ssm:ResetServiceSetting", "ssm:UpdateServiceSetting" ], "Resource": "*" } ] }
要提供访问权限,请为您的用户、组或角色添加权限:
-
AWS IAM Identity Center 中的用户和群组:
创建权限集合。按照《AWS IAM Identity Center 用户指南》中创建权限集的说明进行操作。
-
通过身份提供商在 IAM 中托管的用户:
创建适用于身份联合验证的角色。按照《IAM 用户指南》中为第三方身份提供商创建角色(联合身份验证)的说明进行操作。
-
IAM 用户:
-
创建您的用户可以担任的角色。按照《IAM 用户指南》中为 IAM 用户创建角色的说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》中向用户添加权限(控制台)中的说明进行操作。
-
使用 控制台来指定或更改 Parameter Store 默认层
以下过程介绍了如何使用 Systems Manager 控制台指定或更改当前 AWS 账户和 AWS 区域的默认参数层。
提示
如果尚未创建参数,则可以使用 AWS Command Line Interface (AWS CLI) 或 AWS Tools for Windows PowerShell 更改默认参数层。有关更多信息,请参阅 使用 AWS CLI 指定或更改 Parameter Store 默认层 和 指定或更改 Parameter Store 默认层 (PowerShell)。
指定或更改 Parameter Store 默认层
访问 https://console.aws.amazon.com/systems-manager/
,打开 AWS Systems Manager 控制台。 在导航窗格中,选择 Parameter Store。
-
选择设置选项卡。
-
选择 Change default tier (更改默认层)。
-
选择以下任一选项。
-
Standard
-
高级
-
智能分层
有关这些选项的信息,请参阅 指定默认参数层。
-
-
查看消息,然后选择确认。
如果要稍后更改默认层设置,请重复该过程并指定不同的默认层选项。
使用 AWS CLI 指定或更改 Parameter Store 默认层
以下过程介绍了如何使用 AWS CLI 更改当前 AWS 区域和 AWS 账户的默认参数层设置。
使用 AWS CLI 指定或更改 Parameter Store 默认层
-
打开 AWS CLI 并运行以下命令,以更改 AWS 账户中特定 AWS 区域的默认参数层设置。
aws ssm update-service-setting --setting-id arn:aws:ssm:
region
:account-id
:servicesetting/ssm/parameter-store/default-parameter-tier --setting-valuetier-option
region
表示 AWS Systems Manager 支持的 AWS 区域 的标识符,例如美国东部(俄亥俄)区域的us-east-2
。有关支持的region
值的列表,请参阅《Amazon Web Services 一般参考》中的 Systems Manager service endpoints 的 Region 列。tier-option
值包括Standard
、Advanced
和Intelligent-Tiering
。有关这些选项的信息,请参阅 指定默认参数层。如果此命令成功,则无任何输出。
-
运行以下命令以查看当前 AWS 账户 和 AWS 区域 中 Parameter Store 的当前默认参数层设置。
aws ssm get-service-setting --setting-id arn:aws:ssm:
region
:account-id
:servicesetting/ssm/parameter-store/default-parameter-tier系统返回类似于以下内容的信息。
{ "ServiceSetting": { "SettingId": "/ssm/parameter-store/default-parameter-tier", "SettingValue": "Advanced", "LastModifiedDate": 1556551683.923, "LastModifiedUser": "arn:aws:sts::123456789012:assumed-role/Administrator/Jasper", "ARN": "arn:aws:ssm:us-east-2:123456789012:servicesetting/ssm/parameter-store/default-parameter-tier", "Status": "Customized" } }
如果要再次更改默认层设置,请重复该过程并指定不同的 SettingValue
选项。
指定或更改 Parameter Store 默认层 (PowerShell)
以下过程介绍了如何使用 Tools for Windows PowerShell 更改 Amazon Web Services 账户中特定 AWS 区域的默认参数层设置。
使用 PowerShell 指定或更改 Parameter Store 默认层
-
使用 AWS Tools for PowerShell (Tools for PowerShell) 更改当前 AWS 账户和 AWS 区域中的 Parameter Store 默认层。
Update-SSMServiceSetting -SettingId "arn:aws:ssm:
region
:account-id
:servicesetting/ssm/parameter-store/default-parameter-tier" -SettingValue "tier-option
" -Regionregion
region
表示 AWS Systems Manager 支持的 AWS 区域 的标识符,例如美国东部(俄亥俄)区域的us-east-2
。有关支持的region
值的列表,请参阅《Amazon Web Services 一般参考》中的 Systems Manager service endpoints 的 Region 列。tier-option
值包括Standard
、Advanced
和Intelligent-Tiering
。有关这些选项的信息,请参阅 指定默认参数层。如果此命令成功,则无任何输出。
-
运行以下命令以查看当前 AWS 账户 和 AWS 区域 中 Parameter Store 的当前默认参数层设置。
Get-SSMServiceSetting -SettingId "arn:aws:ssm:
region
:
:servicesetting/ssm/parameter-store/default-parameter-tier" -Regionaccount-id
region
region
表示 AWS Systems Manager 支持的 AWS 区域 的标识符,例如美国东部(俄亥俄)区域的us-east-2
。有关支持的region
值的列表,请参阅《Amazon Web Services 一般参考》中的 Systems Manager service endpoints 的 Region 列。系统返回类似于以下内容的信息。
ARN : arn:aws:ssm:us-east-2:123456789012:servicesetting/ssm/parameter-store/default-parameter-tier LastModifiedDate : 4/29/2019 3:35:44 PM LastModifiedUser : arn:aws:sts::123456789012:assumed-role/Administrator/Jasper SettingId : /ssm/parameter-store/default-parameter-tier SettingValue : Advanced Status : Customized
如果要再次更改默认层设置,请重复该过程并指定不同的 SettingValue
选项。
将标准参数更改为高级参数
使用以下过程可将现有的标准参数更改为高级参数。有关如何创建新的高级参数的信息,请参阅 在 Systems Manager 中创建 Parameter Store 参数。
将标准参数更改为高级参数
访问 https://console.aws.amazon.com/systems-manager/
,打开 AWS Systems Manager 控制台。 在导航窗格中,选择 Parameter Store。
-
选择一个参数,然后选择 Edit (编辑)。
-
对于 Description (说明),输入有关此参数的信息。
-
选择 Advanced (高级)。
-
对于 Value (值),输入此参数的值。高级参数有最大值限制 8 KB。
-
选择 Save changes(保存更改)。