我们有一个dropwizard微服务,可以访问MySQL数据库。我们目前在配置文件(env.properties)中存储了用于数据库访问的加密凭据,以便可以在部署时通过每个环境的ansible脚本对其进行更改。
加密密钥是我们解密凭证所需要的,而且存在一些关于如何存储它的争论。
一些选择:
- 将密钥存储在配置文件中。关键是环境特定的,因为我们使用ansible部署代码,所以凭证和密钥不会存储在微服务存储库中。这里的缺点是加密的密码存储在与解密密钥相同的文件中。
- 将密钥存储在启动脚本中,该脚本将值加载到环境变量中。 Ops不喜欢这样,因为他们必须管理两个文件。目前,他们只想管理单个环境属性文件。这是可以理解的,因为我们有足够的问题来管理这个文件。
管理此解密密钥的最佳做法是什么?