2017-10-11 91 views
3

因此,我做了一些Google搜索並閱讀了Spring Cloud上的一些文檔,但爲了真正地懲罰自己,我試圖瞭解如何使用「{cipher}」確實有效。在Spring Boot中加密應用程序屬性

例如在application.yml ...

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

我的理解是,它是安全的這一承諾的回購和春天開機使用的encrypt.key在bootstrap.yml以在需要時解密它。

我不明白的是爲什麼將encrypt.key提交到repo安全?如果你不這樣做,那麼我該如何利用它呢?

我還在heroku文檔中找到了一個鏈接,您可以將其設置爲服務器中的配置變量?底線,我有很多問題,最重要的是,我甚至不知道我需要問什麼問題。所以我希望那些知道他們在做什麼的人能指點我一些鏈接的正確方向來閱讀等,以便讓我走?

在此先感謝!

+0

將任何密鑰提交回購肯定不安全。你還需要確保你使用的是好密碼,因爲你仍然開放暴力強制。 – Kayaman

+0

https://gitter.im/spring-cloud/spring-cloud是與Spring Cloud團隊取得聯繫的好地方。 – mp911de

回答

1

首先,在Spring Cloud Config中查看關於encryption的參考文檔,它解釋了配置支持的可能性。

您應該從不如果您無法控制對該存儲庫的訪問權限,將敏感數據(如密鑰)提交到源代碼存儲庫。不僅有定期訪問,還有物理訪問,備份......。

如何處理密鑰的首選方法是將密鑰存儲在儘可能少的地方,理想情況下只在解密發生的服務器端。您可以選擇使用引導配置,系統屬性或環境變量作爲將密鑰傳遞到運行時的機制。

由於Vault解決了關鍵管理的雞蛋問題,因此您可能需要查看HashiCorp Vault support。相反,您可以從客戶端應用程序中獲取Vault令牌,或者在服務器上配置令牌,並且Vault將爲您處理加密/解密。

+0

如果我將我的「secret.key」存儲在我的bootstrap.yml文件中,請將該文件添加到我的.gitignore中,然後當我將api部署到PaaS時,這基本上就是您所建議的?感謝您的鏈接!這基本上是我在尋找:) – mikejones1477

+0

保持敏感數據儘可能遠離任何SCM回購。通過這樣做,您可以主動防止意外泄露。嘗試使用您的PaaS爲您提供的安全功能。 – mp911de

相關問題