JSON にシークレットを持つ CloudFormation で AWS スタックを作成しようとしています。
シークレットの値をパラメーターに表示したくありません。また、インスタンス (fargate または ec2) がシークレット マネージャーにアクセスすることも望ましくありません。CloudFormation でシークレット マネージャーから値を取得し、実行時にテンプレートに挿入する必要があります。
これは私がしたことです:
シークレットを作成する
Designer を使用してテンプレートを作成する
シークレットを読み取り、リソースを作成します。この場合、シークレットをタグとして持つバケットを作成しています。これが安全でないことはわかっていますが、バケットは概念実証としてのみ使用されています。
バケットにシークレットのタグが含まれていることを確認します
これは私のテンプレートです:
{
"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}}」をテキストとして読み取るのではなく、値に置き換えます。