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

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

Amazon Systems Manager Parameter Store

参数存储,一种Amazon Systems Manager提供安全的分层存储,用于配置数据管理和密钥管理。您可以存储数据,例如密码、数据库字符串、Amazon Machine Image(AMI) ID 和许可证代码作为参数值。可以将值存储为纯文本或加密数据。您可以使用创建参数时指定的唯一名称,在脚本、命令、SSM 文档以及配置和自动化工作流中引用 Systems Manager 参数。

参数存储也与 Secrets Manager 集成。您可以在使用其他Amazon服务,它们已支持对参数存储参数的引用。有关更多信息,请参阅 引用Amazon Secrets Manager来自参数存储参数的密码

注意

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

参数存储如何从我的组织中获益?

Parameter Store 具备下列优势:

  • 使用安全、可扩展的托管密钥管理服务,无需管理服务器。

  • 通过将数据与代码分离来提高安全性。

  • 分层存储配置数据和加密的字符串,而且可跟踪版本。

  • 实现以细粒度控制和审核访问。

谁应该使用 Parameter Store?

  • 任何Amazon希望集中管理配置数据的客户。

  • 想要存储不同登录和参考流的软件开发人员。

  • 希望在密码和密码发生更改或未更改时接收通知的管理员。

Parameter Store 具有哪些功能?

  • 更改通知

    可以为参数和参数策略配置更改通知并调用自动操作。有关更多信息,请参阅 基于 Parameter Store 事件设置通知或触发操作

  • 组织和控制访问

    您可以单独标记参数,以便根据为其分配的标签识别一个或多个参数。例如,您可以标记特定环境、部门、用户、组或时间段的参数。您还可以通过创建Amazon Identity and Access Management(IAM) 策略,指定用户或组可访问的标签。有关更多信息,请参阅 标记 Systems Manager 参数

  • 标签版本

    您可以通过创建标签来关联参数版本的别名。标签可帮助您在存在多个版本时记住参数版本的用途。

  • 数据验证

    您可以创建指向 Amazon Elastic Compute Cloud (Amazon EC2) 实例的参数,参数存储会验证这些参数,以确保参数引用预期的资源类型、资源存在以及客户有权使用该资源。例如,您可以使用Amazon Machine Image(AMI) ID 作为 aws:ec2: 图像数据类型的值,并且参数存储执行异步验证操作,以确保参数值满足AMIID,并且指定的AMI可在您的 Amazon Web Services 账户 。

  • 参考机密

    参数存储与Amazon Secrets Manager,以便您可 Secrets Manager 在使用其他Amazon服务,它们已支持对参数存储参数的引用。

  • 从其他访问Amazon服务

    您可以将参数存储参数与其他 Systems Manager 功能和Amazon服务从中央存储检索密钥和配置数据。参数与 “运行命令”、“自动化” 和 “状态管理器” 等 “Systems Manager” 功能配合使用,Amazon Systems Manager。您还可以在许多其他 Amazon 服务中引用参数,其中包括:

    • Amazon Elastic Compute Cloud (Amazon EC2)

    • Amazon Elastic Container Service (Amazon ECS)

    • Amazon Secrets Manager

    • Amazon Lambda

    • Amazon CloudFormation

    • Amazon CodeBuild

    • Amazon CodePipeline

    • Amazon CodeDeploy

  • 与其他集成Amazon服务

    配置与以下 Amazon 服务的集成以实现加密、通知、监控和审计:

什么是参数?

参数存储参数是保存在参数存储中的任何数据片段,例如文本块、名称列表、密码、AMIID、许可证密钥等。可以在脚本、命令和 SSM 文档中集中安全地引用此数据。

在引用参数时,使用以下惯例指定参数名称。

{{ssm:parameter-name}}

注意

参数不能被引用或嵌套在其他参数的值中。您不能加入{{}}或者{{ssm:parameter-name}}(在参数值中)。

参数存储支持三种类型的参数:StringStringList, 和SecureString

除了一个例外,当创建或更新参数时,您将以明文形式输入参数值,而参数存储不对输入的文本执行验证。适用于String参数,但是,您可以将数据类型指定为aws:ec2:image,并且参数存储会验证您输入的值是否为 Amazon EC2 的正确格式。AMI;例如:ami-12345abcdeEXAMPLE

字符串

默认情况下,String 参数由您输入的任何文本块组成。例如:

  • abc123

  • Example Corp

  • <img src="images/bannerImage1.png"/>

StringList

StringList 参数包含以逗号分隔的值列表,如下面的示例所示。

Monday,Wednesday,Friday

CSV,TSV,CLF,ELF,JSON

SecureString

SecureString 参数是需要以安全的方式存储和引用的任何敏感数据。如果您有不希望用户更改或以明文形式引用的数据 (例如密码或许可证密钥),则应使用SecureString数据类型。

重要

请勿将敏感数据存储在String或者StringList参数。对于必须保持加密状态的所有敏感数据,请仅使用 SecureString 参数类型。

有关更多信息,请参阅 创建 SecureString 参数 (Amazon CLI)

我们建议使用SecureString参数,以下场景:

  • 要使用数据/参数Amazon服务,但又不想以明文形式在命令、函数、代理日志或 CloudTrail 日志中公开这些值。

  • 您想要控制可以访问敏感数据的人。

  • 您希望在有人访问敏感数据时进行审核 (CloudTrail)。

  • 您想要对您的敏感数据进行加密,并想用自己的加密密钥管理访问。

重要

仅使用SecureString参数已加密。参数名称、描述和其他属性不会加密。

您可以将SecureString参数类型,用于要加密的文本数据,例如密码、应用程序密钥、机密配置数据或要保护的其他类型的数据。SecureString数据将使用Amazon KMS密钥。您可以使用Amazon或者创建和使用自己的Amazon KMS 密钥。(使用您自己的Amazon KMS 密钥如果您想限制用户访问SecureString参数。 有关更多信息,请参阅 。使用 IAM 权限Amazon默认密钥和客户托管密钥。)

您也可以将 SecureString 参数用于其他 Amazon 服务。在以下示例中,Lambda 函数检索SecureString参数,通过使用GetParametersAPI。

from __future__ import print_function import json import boto3 ssm = boto3.client('ssm', 'us-east-2') def get_parameters(): response = ssm.get_parameters( Names=['LambdaSecureString'],WithDecryption=True ) for parameter in response['Parameters']: return parameter['Value'] def lambda_handler(event, context): value = get_parameters() print("value1 = " + value) return value # Echo back the first key value

Amazon KMS 加密和定价

如果选择SecureString参数类型时,Systems Manager 将使用Amazon KMS对参数值进行加密。

重要

Parameter Store 仅支持KMS 密钥。您不能使用KMS 密钥来加密您的参数。要获取确定 KMS 密钥是对称还是非对称的帮助,请参阅识别对称密钥和非对称 KMS 密钥中的Amazon Key Management Service开发人员指南

参数存储不收取任何费用来创建SecureString参数,但对使用Amazon KMS加密确实适用。有关信息,请参阅 Amazon Key Management Service 定价

有关 的更多信息Amazon托管密钥和客户托管密钥,请参阅Amazon Key Management Service概念中的Amazon Key Management Service开发人员指南。有关参数存储和Amazon KMS加密,请参阅操作方法Amazon Systems ManagerParameter Store 使用Amazon KMS

注意

查看Amazon托管密钥,请使用Amazon KMS DescribeKeyoperation. 该Amazon Command Line Interface(Amazon CLI)示例使用DescribeKey查看和Amazon管理的密钥。

aws kms describe-key --key-id alias/aws/ssm

相关主题

有关如何创建和使用 SecureString 参数的示例,请参阅创建 SecureString 参数并将实例加入到域 (PowerShell)。有关将 Systems Manager Parameter Parameter for 其他Amazon服务,请参阅以下博客文章: