【发布时间】:2018-03-20 20:12:33
【问题描述】:
我知道存储数据库密码等数据的好方法是通过环境变量,但是为每个创建的服务器实例手动设置环境变量非常耗时。
我打算将我的项目部署到云端(使用 aws ebs 或 heroku)。 我应该在哪里存储我的数据库密码?
我认为 .ebextensions 文件不是一个好的选择,因为它是在 vcs 中跟踪的
【问题讨论】:
标签: security deployment cloud production-environment
我知道存储数据库密码等数据的好方法是通过环境变量,但是为每个创建的服务器实例手动设置环境变量非常耗时。
我打算将我的项目部署到云端(使用 aws ebs 或 heroku)。 我应该在哪里存储我的数据库密码?
我认为 .ebextensions 文件不是一个好的选择,因为它是在 vcs 中跟踪的
【问题讨论】:
标签: security deployment cloud production-environment
永远不要在源代码管理中存储秘密。一种常见的做法是将它们放在安全文件中或 https://www.vaultproject.io/ 之类的文件中,然后在启动 VM(或容器或其他任何东西)时将它们(通过脚本或其他一些部署/配置工具以编程方式)注入环境.
【讨论】:
我的建议是创建一个属性文件,该文件可以存储在应用程序的资源文件夹中,并且代码可以访问资源。不需要环境变量。一个属性文件可以包含所有 db 的用户 ID 和密码。根据属性文件中的 url 映射部署作业。例如,查看一个使用属性文件的 spring hibernate 示例项目。或者查看 ant deploy 脚本。希望对您有所帮助。
【讨论】: