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

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

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

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

要检索 CloudFormation 模板中的密钥,请使用动态引用。创建堆栈时,动态引用会将密钥值提取到 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,则 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 秘密

注意

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