在 AWS CloudFormation 资源中获取 AWS Secrets Manager 秘密 - AWS Secrets Manager

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

在 AWS CloudFormation 资源中获取 AWS Secrets Manager 秘密

使用 AWS CloudFormation,您可以检索密钥以在其他 AWS CloudFormation 资源中使用。常见场景是首先使用 Secret Manager 生成的密码创建密钥,然后从该密钥中检索用户名和密码,以用作新数据库的凭证。有关使用创建密钥的信息 AWS CloudFormation,请参阅在 AWS CloudFormation 中创建 AWS Secrets Manager 密钥

要检索 AWS CloudFormation 模板中的密钥,请使用动态引用。创建堆栈时,动态引用会将密钥值提取到 AWS CloudFormation 资源中,因此您不必对机密信息进行硬编码。相反,您可以通过名称或 ARN 来引用密钥。您可以在任何资源属性中使用对密钥的动态引用。您不能在资源元数据(例如 AWS::CloudFormation::Init)中使用对密钥的动态引用,因为那样会使密钥值在控制台中可见。

密钥的动态引用模式如下:

{{resolve:secretsmanager:secret-id:SecretString:json-key:version-stage:version-id}}
secret-id

密钥的名称或 ARN。要访问您 AWS 账户中的密钥,您可以使用该密钥名称。要访问其他 AWS 账户中的密钥,请使用该密钥的 ARN。

json-key(可选)

要检索其值的键值对的键名称。如果未指定json-key,则 AWS CloudFormation 检索整个机密文本。此分段不得包含冒号字符 ( : )。

version-stage(可选)

要使用的密钥的版本。Secrets Manager 在轮换过程中使用暂存标注来跟踪不同的版本。如果您使用 version-stage,则不要指定 version-id。如果您既未指定 version-stage,也未指定 version-id,则原定设置将为 AWSCURRENT 版本。此分段不得包含冒号字符 ( : )。

version-id(可选)

要使用的密钥版本的唯一标识符。如果指定 version-id,则不要指定 version-stage。如果您既未指定 version-stage,也未指定 version-id,则原定设置将为 AWSCURRENT 版本。此分段不得包含冒号字符 ( : )。

有关更多信息,请参阅使用动态引用指定 Secrets Manager 秘密

注意

不要使用反斜杠(\)作为最终值来创建动态引用。 AWS CloudFormation 无法解析这些引用,这会导致资源故障。