管理参数层 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

管理参数层

Parameter Store 是 Amazon Systems Manager 的一项功能,包括标准参数高级参数。需单独配置参数以使用标准参数层(默认层)或高级参数层。

您可以随时将标准参数更改为高级参数,但不能将高级参数恢复为标准参数。这是因为将高级参数恢复为标准参数会导致系统将参数的大小从 8KB 缩小到 4KB,从而导致数据丢失。恢复参数还会移除所有应用于参数的策略。此外,高级参数使用不同于标准参数的加密形式。有关更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的 Amazon Systems Manager   Parameter Store 如何使用 Amazon KMS

如果您不再需要高级参数,或者如果您不想再为高级参数支付费用,请删除它并将它重新创建为新的标准参数。

下表介绍了两个层之间的区别。

Standard 高级

允许的参数的总数

(每个 Amazon Web Services 账户和 Amazon Web Services 区域)

10000

100000

参数值的最大大小

4 KB

8 KB

提供参数策略

有关更多信息,请参阅 分配参数策略

费用

无额外费用

需支付费用

有关更多信息,请参阅 Parameter Store 的 Amazon Systems Manager 定价

指定默认参数层

在创建或更新参数的请求(即 PutParameter 操作)中,您可以指定要在请求中使用的参数层。以下是使用 Amazon Command Line Interface (Amazon CLI) 的示例。

Linux & macOS
aws ssm put-parameter \ --name "default-ami" \ --type "String" \ --value "t2.micro" \ --tier "Standard"
Windows
aws ssm put-parameter ^ --name "default-ami" ^ --type "String" ^ --value "t2.micro" ^ --tier "Standard"

无论何时在请求中指定层,Parameter Store 都会根据您的请求创建或更新参数。不过,如果没有在请求中显式指定层,Parameter Store 默认层设置会确定在哪个层中创建参数。

在开始使用 Parameter Store 时,默认层是标准参数层。如果使用高级参数层,则可以将以下其中一项指定为默认值:

  • 高级:在使用该选项时,Parameter Store 会将所有请求作为高级参数进行评估。

  • 智能分层:在使用该选项时,Parameter Store 会评估每个请求以确定参数是标准还是高级参数。

    如果请求不包含任何需要使用高级参数的选项,则会在标准参数层中创建参数。如果在请求中包含一个或多个需要使用高级参数的选项,则 Parameter Store 会在高级参数层中创建参数。

智能分层的优点

以下是您可能选择智能分层作为默认层的原因。

成本控制 - 除非绝对需要使用高级参数,否则智能分层将始终创建标准参数以帮助控制参数相关成本。

自动升级到高级参数层 - 在对需要将标准参数升级到高级参数的代码进行更改时,智能分层将为您处理转换。您无需更改代码即可进行升级。

以下是一些自动升级的示例:

  • 您的 Amazon CloudFormation 模板在运行时预置了大量参数。在该过程导致您达到标准参数层中的 1 万个参数配额时,智能分层会自动将您升级到高级参数层,并且 Amazon CloudFormation 过程不会中断。

  • 您需将证书值存储在一个参数中,定期轮换证书值,并且内容小于标准参数层的 4 KB 配额。如果替换证书值超过 4 KB,智能分层会自动将参数升级到高级参数层。

  • 您希望将大量现有标准参数与参数策略相关联,这需要使用高级参数层。并非必须在更新参数的所有调用中包含 --tier Advanced 选项,智能分层会自动将参数升级到高级参数层。无论何时引入高级参数层条件,智能分层选项都会将参数从标准升级到高级。

需要使用高级参数的选项包括以下几项:

  • 参数的内容大小超过 4 KB。

  • 参数使用参数策略。

  • 您的 Amazon Web Services 账户在当前 Amazon Web Services 区域中已具有超过 10000 个参数。

默认层选项

您可以指定为默认值的层选项包括以下内容。

  • Standard (标准) – 在开始使用 Parameter Store 时,默认层是标准参数层。通过使用标准参数层,您可以为 Amazon Web Services 账户中的每个 Amazon Web Services 区域创建 10000 个参数。每个参数的内容大小最大可等于 4 KB。标准参数不支持参数策略。使用标准参数层不会产生额外的费用。选择标准作为默认层表示 Parameter Store 将始终尝试为未指定层的请求创建标准参数。

  • Advanced (高级) – 使用高级参数层最多可以为 Amazon Web Services 账户中的每个 Amazon Web Services 区域创建 100000 个参数。每个参数的内容大小最大可等于 8 KB。高级参数支持参数策略。使用高级参数层会产生相应的费用。有关更多信息,请参阅 Parameter Store 的 Amazon Systems Manager 定价。选择高级作为默认层表示 Parameter Store 将始终尝试为未指定层的请求创建高级参数。

    注意

    选择高级参数层时,您需要明确授权 Amazon 就您创建的任何高级参数向您的账户收取相应费用。

  • 智能分层 – 使用智能分层选项,Parameter Store 可以根据请求内容确定是使用标准参数层,还是使用高级参数层。例如,如果运行命令以创建内容小于 4KB 的参数,您的 Amazon Web Services 账户的当前 Amazon Web Services 区域中的参数少于 10000 个,并且未指定参数策略,则会创建标准参数。如果运行命令以创建内容超过 4KB 的参数,您的 Amazon Web Services 账户的当前 Amazon Web Services 区域中的参数超过 10000 个,或者您指定了参数策略,则会创建高级参数。

    注意

    选择智能分层时,您需要明确授权 Amazon 就您创建的任何高级参数向您的账户收取相应费用。

您可以随时更改 Parameter Store 默认层设置。

配置权限以指定 Parameter Store 默认层

您可以执行以下操作之一,以验证您是否在 Amazon Identity and Access Management (IAM) 中具有相应权限,能够更改 Parameter Store 中的默认参数层:

向 IAM 实体授予以下权限,以允许用户查看和更改 Amazon Web Services 账户 内特定 Amazon Web Services 区域 中参数的默认层设置

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

要提供访问权限,请为您的用户、组或角色添加权限:

指定或更改 Parameter Store 默认层(控制台)

以下过程介绍了如何使用 Systems Manager 控制台指定或更改当前 Amazon Web Services 账户和 Amazon Web Services 区域的默认参数层。

提示

如果尚未创建参数,则可以使用 Amazon Command Line Interface (Amazon CLI) 或 Amazon Tools for Windows PowerShell 更改默认参数层。有关信息,请参阅指定或更改 Parameter Store 默认层 (Amazon CLI)指定或更改 Parameter Store 默认层 (PowerShell)

指定或更改 Parameter Store 默认层
  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

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

  3. 选择 Settings 选项卡。

  4. 选择 Change default tier (更改默认层)

  5. 选择以下任一选项。

    • Standard

    • 高级

    • 智能分层

    有关这些选项的信息,请参阅 指定默认参数层

  6. 查看消息,然后选择确认

如果要稍后更改默认层设置,请重复该过程并指定不同的默认层选项。

指定或更改 Parameter Store 默认层 (Amazon CLI)

以下过程介绍了如何使用 Amazon CLI 更改当前 Amazon Web Services 区域和 Amazon Web Services 账户的默认参数层设置。

使用 Amazon CLI 指定或更改 Parameter Store 默认层
  1. 打开 Amazon CLI 并运行以下命令,以更改 Amazon Web Services 账户中特定 Amazon Web Services 区域的默认参数层设置。

    aws ssm update-service-setting --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/parameter-store/default-parameter-tier --setting-value tier-option

    region 表示 Amazon Systems Manager 支持的 Amazon Web Services 区域 的标识符,例如美国东部(俄亥俄)区域的 us-east-2。有关支持的 region 值的列表,请参阅《Amazon Web Services 一般参考》中的 Systems Manager service endpointsRegion 列。

    tier-option 值包括 StandardAdvancedIntelligent-Tiering。有关这些选项的信息,请参阅 指定默认参数层

    如果此命令成功,则无任何输出。

  2. 运行以下命令以查看当前 Amazon Web Services 账户 和 Amazon Web Services 区域 中 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 账户中特定 Amazon Web Services 区域的默认参数层设置。

使用 PowerShell 指定或更改 Parameter Store 默认层
  1. 使用 Amazon Tools for PowerShell (Tools for PowerShell) 更改当前 Amazon Web Services 账户和 Amazon Web Services 区域中的 Parameter Store 默认层。

    Update-SSMServiceSetting -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/parameter-store/default-parameter-tier" -SettingValue "tier-option" -Region region

    region 表示 Amazon Systems Manager 支持的 Amazon Web Services 区域 的标识符,例如美国东部(俄亥俄)区域的 us-east-2。有关支持的 region 值的列表,请参阅《Amazon Web Services 一般参考》中的 Systems Manager service endpointsRegion 列。

    tier-option 值包括 StandardAdvancedIntelligent-Tiering。有关这些选项的信息,请参阅 指定默认参数层

    如果此命令成功,则无任何输出。

  2. 运行以下命令以查看当前 Amazon Web Services 账户 和 Amazon Web Services 区域 中 Parameter Store 的当前默认参数层设置。

    Get-SSMServiceSetting -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/parameter-store/default-parameter-tier" -Region region

    region 表示 Amazon Systems Manager 支持的 Amazon Web Services 区域 的标识符,例如 us-east-2 对应美国东部(俄亥俄)区域。有关支持的 region 值的列表,请参阅《Amazon Web Services 一般参考》中的 Systems Manager service endpointsRegion 列。

    系统返回类似于以下内容的信息。

    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 参数

将标准参数更改为高级参数
  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

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

  3. 选择一个参数,然后选择 Edit (编辑)

  4. 对于 Description (说明),输入有关此参数的信息。

  5. 选择 Advanced (高级)

  6. 对于 Value (值),输入此参数的值。高级参数有最大值限制 8 KB。

  7. 选择 Save changes(保存更改)。