3

所以我做了一些谷歌搜索并阅读了一些关于 Spring Cloud 的文档,但为了真正惩罚自己,我正在努力了解使用“{cipher}”加密敏感的应用程序属性究竟是如何工作的。

例如在 application.yml...

Spring.datasource.password: '{cipher} abdjdbdjfb15168gddbdk3900289'

我的理解是,将其提交到 repo 是安全的,并且 spring boot 使用 bootstrap.yml 中的 encrypt.key 以便在需要时对其进行解密。

我不明白为什么将 encrypt.key 提交给 repo 是安全的?如果你不这样做,那么我应该如何利用它?

我还在 heroku 文档上找到了一个链接,您可能将其设置为服务器中的配置变量?

归根结底,我有很多问题,最重要的是,我什至不确定我需要问什么问题。所以我希望那里知道他们在做什么的人可以为我指出一些正确的方向,包括一些阅读等链接,让我继续前进?

提前致谢!

4

1 回答 1

1

首先,查看 Spring Cloud Config 中有关加密的参考文档,其中解释了配置支持的可能性。

如果您无法控制对该存储库的访问,则永远不应将敏感数据(例如密钥)提交到源代码存储库。不仅是常规访问,还有物理访问、备份……。

如何处理密钥的首选方法是将密钥存储在尽可能少的地方,理想情况下只在发生解密的服务器端。您可以选择使用引导配置、系统属性或环境变量作为将密钥传递给运行时的机制。

您可能想了解HashiCorp Vault 支持,因为 Vault 解决了密钥管理的鸡蛋问题。相反,您可以获取一个 Vault 令牌(从您的客户端应用程序内部,或在服务器上配置一个令牌),然后 Vault 将为您处理加密/解密。

于 2017-10-11T19:04:26.693 回答