AWS ECS:任务定义之外的环境变量 JSON
AWS ECS: ENV vars out of Task Definition JSON
我正在安装一个 gitlab ci 脚本来在 Amazon ECS 上部署我的多容器应用程序,在升级服务部分我必须使用 json 来定义所有任务我的容器定义(图像、名称、内存...)。
我需要使用环境变量(数据库密码,电子邮件,...)但我不想放入这个 json 文件(它将存储在 gitlab 存储库中),那是什么将此变量存储在存储库之外的最佳解决方案?
AWS 建议以 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)文件中的正确字段.这样您就可以将代码与配置完全分开,并且可以独立管理它们。
我正在安装一个 gitlab ci 脚本来在 Amazon ECS 上部署我的多容器应用程序,在升级服务部分我必须使用 json 来定义所有任务我的容器定义(图像、名称、内存...)。
我需要使用环境变量(数据库密码,电子邮件,...)但我不想放入这个 json 文件(它将存储在 gitlab 存储库中),那是什么将此变量存储在存储库之外的最佳解决方案?
AWS 建议以 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)文件中的正确字段.这样您就可以将代码与配置完全分开,并且可以独立管理它们。