Dropwizard配置文件安全性

Dropwizard配置文件安全性,dropwizard,Dropwizard,配置文件(.yml)用于使用Dropwizard(0.9.2-最新版本)开发的rest api。api所需的大多数凭据(如数据库密码密钥等)都存储在配置文件中 我们已经基于在中找到的参考中提到的项目实现了大部分内容 问题很清楚。它有多安全(将这些信息以纯文本形式存储在配置文件中)?如果没有,正确的方法是什么 是的,确实不安全。如果将配置文件提交到公共存储库或任何存储库(版本控制),则情况更糟。我遵循的一种方法是维护配置(.yml)文件的本地副本(不提交到任何存储库),该副本包含所有敏感密钥和详细

配置文件(.yml)用于使用Dropwizard(0.9.2-最新版本)开发的rest api。api所需的大多数凭据(如数据库密码密钥等)都存储在配置文件中

我们已经基于在中找到的参考中提到的项目实现了大部分内容


问题很清楚。它有多安全(将这些信息以纯文本形式存储在配置文件中)?如果没有,正确的方法是什么

是的,确实不安全。如果将配置文件提交到公共存储库或任何存储库(版本控制),则情况更糟。我遵循的一种方法是维护配置(.yml)文件的本地副本(不提交到任何存储库),该副本包含所有敏感密钥和详细信息等,并维护另一个示例配置文件,该文件隐藏了敏感详细信息(一些伪字符串而不是实际值)。此示例配置可以提交到您的存储库,因为它隐藏了敏感的详细信息


为了在本地或其他地方运行代码,请使用本地配置文件。这样,您就不会冒在存储库中公开敏感数据的风险。但是,无论何时进行任何修改,保持示例配置与本地副本同步都会带来开销。

我只是在寻找类似问题的解决方案。我想找到一个解决方案,在配置文件中不包含密钥库密码。最后我找到了解决办法

只是将凭证密钥存储在配置文件中。然后使用替换符将键替换为其相关值。但这需要一个安全的密钥值服务来获取密钥的值


谢谢。我同意你的建议。一个信息完整的本地副本和一个用于推送到存储库的假副本。我还将把配置文件从项目的根目录移到一个特殊目录。@Sashidhar有更好的方法来达到所需的安全级别。查看我对这个问题的评论。@zloster非常感谢你的指点。第一种方法是使用加密的配置文件:看一下。你应该在那里找到。另一个选项是使用shell变量替换(例如部署到Openshift时):检查。