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

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

管理参数层

参数存储是 AWS Systems Manager 的一项功能,包括标准参数高级参数。您单独配置参数来使用标准参数层(默认层)或高级参数层。

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

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

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

标准 高级

允许的参数的总数

(每个 AWS 账户和区域)

10000

100000

参数值的最大大小

4 KB

8 KB

提供参数策略

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

费用

无额外费用

需支付费用

有关更多信息,请参阅 。AWS Systems Manager 定价

指定默认参数层

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

aws ssm put-parameter \ --name "default-ami" \ --type "String" \ --value "t2.micro" \ --tier "Standard"

无论何时在请求中指定层,Parameter Store 都会根据您的请求创建或更新参数。但是,如果没有在请求中明确指定层,则参数存储默认层设置会确定在哪个层中创建参数。

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

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

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

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

智能分层的优点

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

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

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

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

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

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

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

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

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

  • 参数使用参数策略。

  • 您的 AWS 账户在当前区域中已具有超过 10,000 个参数。

默认层选项

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

  • 标准— 开始使用 Parameter Store 时,标准参数层是默认层。通过使用标准参数层,您可以为 AWS 账户中的每个区域创建 10,000 个参数。每个参数的内容大小最大可等于 4 KB。标准参数不支持参数策略。使用标准参数层不会产生额外的费用。选择标准作为默认层意味着,Parameter Store 将始终尝试为未指定层的请求创建标准参数。

  • Advanced— 高级参数层允许您为 AWS 账户中的每个区域最多创建 100,000 个参数。每个参数的内容大小最大可等于 8 KB。高级参数支持参数策略。使用高级参数层会产生相应的费用。有关更多信息,请参阅 。AWS Systems Manager 定价。选择Advanced作为默认层意味着,Parameter Store 将始终尝试为未指定层的请求创建高级参数。

    注意

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

  • 智能分层— 智能分层选项让参数存储可以根据请求内容确定是使用标准参数层,还是使用高级参数层。例如,如果运行命令以创建内容小于 4 KB 的参数,并且 AWS 账户中的当前区域中的参数少于 10,000 个,但不指定参数策略,则会创建标准参数。如果运行命令以创建内容超过 4 KB 的参数,您的 AWS 账户的当前区域中的参数超过 10,000 个,或者您指定参数策略,则会创建高级参数。

    注意

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

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

配置权限以指定参数存储默认层

请确认您在 AWS Identity and Access Management (IAM) 中有权更改参数存储中的默认参数层:

使用以下过程将内联 IAM 策略添加到用户账户。通过使用该策略,用户可以查看和更改 AWS 账户在特定区域中的参数的默认层设置。

  1. 登录 AWS 管理控制台,并通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Users

  3. 在列表中,选择要将策略附加到的用户的名称。

  4. 选择 Permissions 选项卡。

  5. 在页面右侧,在 Permission policies (权限策略) 下,选择 Add inline policy (添加内联策略)

  6. 选择 JSON 选项卡。

  7. 将默认内容替换为以下内容:

    { "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" } ] }
  8. 选择查看策略

  9. 查看策略页面上,为名称输入内联策略的名称,例如 Parameter-Store-Default-Tier 或您喜欢的其他名称。

  10. 选择 Create policy

管理员可以通过将以下内联策略分配到用户账户来指定只读权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetServiceSetting" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "ssm:ResetServiceSetting", "ssm:UpdateServiceSetting" ], "Resource": "*" } ] }

有关创建和编辑 IAM 策略的更多信息,请参阅创建 IAM 策略中的IAM 用户指南

指定或更改参数存储默认层(控制台)

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

提示

如果尚未创建参数,则可以使用 AWS Command Line Interface (AWS CLI) 或适用于 Windows PowerShell 的 AWS 工具更改默认参数层。有关信息,请参阅 指定或更改参数存储默认层 (AWS CLI)指定或更改参数存储默认层 (PowerShell)

指定或更改参数仓库默认层

  1. 以下网址打开 AWS Systems Manager 控制台:https://console.aws.amazon.com/systems-manager/

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

    -或者-

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

  3. 选择 Settings 选项卡。

  4. 选择更改默认层

  5. 选择以下选项之一。

    • 标准

    • 高级

    • 智能分层

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

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

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

指定或更改参数存储默认层 (AWS CLI)

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

使用 AWS CLI 指定或更改参数存储默认层

  1. 打开 AWS CLI 并运行以下命令来更改 AWS 账户中特定区域的默认参数层设置。

    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 代表 AWS Systems Manager 支持的 AWS 区域的标识符,例如us-east-2对于美国东部(俄亥俄)区域,请指定。有关受支持的列表 region 值,请参阅区域中的列Systems Manager 服务终端节点中的Amazon Web Services 一般参考

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

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

  2. 运行以下命令来查看当前的 AWS 账户和区域中参数存储的当前吞吐量服务设置。

    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 选项。

指定或更改参数存储默认层 (PowerShell)

以下过程介绍了如何使用适用于 Windows PowerShell 的工具更改 AWS 账户中特定区域的默认参数层设置。

使用 PowerShell 指定或更改 Parameter Store 默认层

  1. 使用适用于 PowerShell 的 AWS 工具(Tools for PowerShell)更改当前 AWS 账户和区域中的参数存储默认层。

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

    region 代表 AWS Systems Manager 支持的 AWS 区域的标识符,例如us-east-2对于美国东部(俄亥俄)区域,请指定。有关受支持的列表 region 值,请参阅区域中的列Systems Manager 服务终端节点中的Amazon Web Services 一般参考

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

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

  2. 运行以下命令来查看当前的 AWS 账户和区域中参数存储的当前吞吐量服务设置。

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

    region 代表 AWS Systems Manager 支持的 AWS 区域的标识符,例如us-east-2对于美国东部(俄亥俄)区域,请指定。有关受支持的列表 region 值,请参阅区域中的列Systems Manager 服务终端节点中的Amazon Web Services 一般参考

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

    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. 以下网址打开 AWS Systems Manager 控制台:https://console.aws.amazon.com/systems-manager/

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

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

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

  5. 选择 Advanced (高级)

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

  7. 选择保存更改