AWS ECS:任务定义之外的环境变量 JSON

AWS ECS: ENV vars out of Task Definition JSON

我正在安装一个 gitlab ci 脚本来在 Amazon ECS 上部署我的多容器应用程序,在升级服务部分我必须使用 json 来定义所有任务我的容器定义(图像、名称、内存...)。

我需要使用环境变量(数据库密码,电子邮件,...)但我不想放入这个 json 文件(它将存储在 gitlab 存储库中),那是什么将此变量存储在存储库之外的最佳解决方案?

A​​WS 建议以 S3 卷存储 (https://aws.amazon.com/es/blogs/security/how-to-manage-secrets-for-amazon-ec2-container-service-based-applications-by-using-amazon-s3-and-docker/),但我不知道是否有更好的选择。

谢谢!

您将 cloudformation 模板存储在 git 中是正确的,因为它会发生变化,您需要跟踪这些变化。但是在源代码控制中当然没有秘密!在这种情况下,我的首选方案是将带有代码的 cloudformation 模板置于源代码控制之下,并将秘密存储在安全位置,例如 S3 或私有数据库。

在这种情况下,您可以让 CI 系统从您的 GitLab 存储库中提取代码以构建应用程序和 运行 测试,然后从所选位置按顺序提取配置为部署做好准备。

例如,如果您将机密存储在 S3 中的一个文件中,您可以使用一个脚本来读取这些值并将它们替换为任务定义的 json(或 yaml)文件中的正确字段.这样您就可以将代码与配置完全分开,并且可以独立管理它们。