配置文件(.yml)用于使用Dropwizard(0.9.2 - 最新版本)开发的rest api。 api所需的大多数凭证(如数据库密码密钥等)都存储在配置文件中。
我们已根据dropwizard configuration reference中的参考文献中提到的项目实施了大部分内容。
问题很清楚。它的安全性(将这些信息作为纯文本存储在配置文件中)。如果没有,这样做的正确方法是什么?
答案 0 :(得分:1)
是的,确实不安全。更糟糕的是,如果配置文件被提交到公共存储库或者任何存储库(版本控制)。我遵循的一种方法是维护配置(.yml)文件的本地副本(不提交给任何存储库),该文件具有所有敏感密钥&细节等,并维护另一个示例配置文件,其中屏蔽了敏感细节(一些虚拟字符串而不是实际值)。此示例配置可以提交到您的存储库,因为它具有屏蔽的敏感详细信息。
出于在本地或其他地方运行代码的所有目的,请使用本地配置文件。这样,您就不会冒险在存储库中公开敏感数据。但是,只要您进行任何修改,您的示例配置就会与本地副本保持同步,这会产生一些开销。
答案 1 :(得分:0)
我刚刚寻找类似问题的解决方案。我想找到一个解决方案,在配置文件中不包含密钥库密码。最后我得到了一个解决方案。
只是在配置文件中存储了凭据密钥。然后使用替代品将密钥替换为相关值。但是这需要一个安全的键值服务来获取密钥的值。
Overriding server connector config with env variables with dropwizard