如何使用 CDK 将*所有*秘密注入 ECS 任务

How to inject *all* secrets into an ECS task using CDK

我正在使用 AWS-CDK 部署 ECS 集群,我想从 Secrets Manager 添加机密。秘密是一个巨大的 JSON 斑点,其中包含许多 key/value 对。我在我的任务定义中使用以下内容将机密包括在我的任务定义中:

secrets: {
  FOO: Secret.fromSecretsManager(mySecret, 'FOO'),
  BAR: Secret.fromSecretsManager(mySecret, 'BAR'),
  BAZ: Secret.fromSecretsManager(mySecret, 'BAZ'),
  ...
}

这很好用,但我必须手动将每个密钥添加到这个任务定义中,这开始变得笨拙了。

是否可以动态注入给定秘密中定义的所有 key/value 对?

CDK 不知道您的秘密有哪些字段,任务定义必须明确指定每个秘密。

所以你唯一的解决方案,除了修改秘密的结构(听起来你可以用多个秘密来做),就是将整个 JSON 字符串传递给容器并让它解析出来。