我正在尝试在 CloudFormation 中创建一个 AWS 堆栈,该堆栈在 JSON 中有一个秘密。
我不希望在参数中显示秘密的值,也不希望我的实例(fargate 或 ec2)访问秘密管理器。我希望 CloudFormation 从秘密管理器中检索值并在运行时将其注入模板中。
这就是我所做的:
创建一个秘密
使用设计器创建模板
阅读秘密并创建资源。在这种情况下,我正在创建一个带有秘密标签的存储桶。我知道这并不安全,但存储桶仅用作概念证明。
验证存储桶是否包含带有密钥的标签
这是我的模板:
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "create a single S3 bucket",
"Resources": {
"SampleBucket": {
"Type": "AWS::S3::Bucket",
"Properties": {
"BucketName": "asantostestbucket",
"Tags" : [
{
"Key" : "keyname",
"Value" : "{{resolve:secretsmanager:dev/learning:SecretString:hello}}"
}
]
}
}
}
}
这给了我错误One or more tags are not valid
。
如何向 CloudFormation 指示我希望它读取密钥,而不是尝试将标签作为文本读取?换句话说,将“{{resolve:secretsmanager:dev/learning:SecretString:hello}}”替换为该值,而不是将其作为文本读取。