AWS Systems Manager Parameter Store - AWS Systems Manager

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

AWS Systems Manager Parameter Store

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

Parameter Store也与 Secrets Manager 相集成。您可以检索密码管理器密码时使用其他AWS服务已经支持Parameter Store参数。有关更多信息,请参阅通过 Parameter Store 参数引用 AWS Secrets Manager 密钥

注意

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

我的组织如何从 Parameter Store 获益?

Parameter Store 具备下列优势:

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

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

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

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

  • 可靠地存储参数,因为Parameter Store托管在多个可用区 AWS 区域 .

谁应该使用 Parameter Store?

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

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

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

Parameter Store 具有哪些功能?

  • 变更通知

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

  • 组织和控制访问

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

  • 标签版本

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

  • 数据验证

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

  • 参考机密

    Parameter Store已与集成AWS Secrets Manager,以便您可 Secrets Manager 在使用其他AWS服务已经支持Parameter Store参数。

  • 从其他AWS服务

    您可以使用Parameter Store参数与其他 Systems Manager 功能和AWS服务从中央存储检索密钥和配置数据。参数可与 Systems Manager 功能(例如Run Command、自动化和State Manager,功能AWS Systems Manager. 您还可以在许多其他 AWS 服务中引用参数,其中包括:

    • Amazon Elastic Compute Cloud (Amazon EC2)

    • Amazon Elastic Container Service (Amazon ECS)

    • AWS Secrets Manager

    • AWS Lambda

    • AWS CloudFormation

    • AWS CodeBuild

    • AWS CodePipeline

    • AWS CodeDeploy

  • 与其他集成AWS服务

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

什么是参数?

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

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

{{ssm:parameter-name}}

注意

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

Parameter Store 支持三种类型的参数:StringStringListSecureString

除一个例外,当创建或更新参数时,您将以明文形式输入参数值,并在Parameter Store对您输入的文本不执行任何验证。适用于String参数,但您可以将数据类型指定为aws:ec2:image, 和Parameter Store验证您输入的值是否为 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 参数 (AWS CLI)

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

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

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

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

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

重要

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

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

您也可以将 SecureString 参数用于其他 AWS 服务。在以下示例中,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

AWS KMS 加密和定价

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

重要

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

创建 SecureString 参数不收取 Parameter Store 任何费用,但使用 AWS KMS 加密的费用确实适用。有关信息,请参阅 AWS Key Management Service 定价

有关 的更多信息AWS托管密钥和客户托管密钥,请参阅AWS Key Management Service概念中的AWS Key Management Service开发人员指南. 有关 Parameter Store 和 AWS KMS 加密的更多信息,请参阅 AWS Systems Manager Parameter Store 如何使用 AWS KMS

注意

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

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

相关主题

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