在 Amazon CloudFormation 资源中检测 Amazon Secrets Manager 密钥 - Amazon Secrets Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 Amazon CloudFormation 资源中检测 Amazon Secrets Manager 密钥

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

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

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

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

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

json-key(可选)

要检索其值的键值对的键名称。如果您不指定 json-key,Amazon 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 秘密

注意

请不要创建使用反斜杠 (\) 作为最后一个值的动态参考。Amazon CloudFormation 无法解析这些引用,这会导致资源失败。