首页 文章

在Spring Boot中加密应用程序属性

提问于
浏览
3

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

例如在application.yml中......

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

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

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

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

最重要的是,我有很多问题,最重要的是,我甚至不确定我需要问什么问题 . 所以我希望有人在那里知道他们在做什么可以指向我一些正确的方向,一些链接阅读等让我去吗?

提前致谢!

1 回答

  • 1

    首先,在Spring Cloud Config中查看有关encryption的参考文档,该文档解释了配置支持的可能性 .

    如果无法控制对该存储库的访问,则应该 never 将敏感数据(如密钥)提交到源代码存储库 . 不仅是常规访问,还包括物理访问,备份,....

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

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

相关问题