2015-10-27 65 views
1

我已經創建了一個java守護程序,用於從社交網絡帳戶收集數據。我使用了許多服務,包括Flick,S3,GeoCoding等等。目前,我已經將程序設置爲從屬性文件中讀取所有這些API密鑰。我的測試文件夾中也有一個類似格式的屬性文件,其中包含用於測試目的的不同鍵。這些屬性文件不會明確提交到源代碼中。這個收集程序寫入一個mongo數據庫。我還在構建一個也適用於mongo的網絡應用程序,並將與該集合一起部署。在我的開發過程中,我讀到最好將密鑰存儲爲生產端的環境變量。它讓我思考;這導致我到我的問題...存儲API密鑰的最健壯的方式(客戶端)?

我想知道是否有更好的方法來處理我的java程序中的這些鍵(從部署的角度來看)或一些可能的路線,人們曾嘗試過類似於此。有人可以對此有所瞭解嗎?

回答

0

我會推薦一個數據庫。如果您只是存儲供個人使用的API密鑰,那麼數據庫的大小可能不是主要問題。就個人而言,我會建議MySQL(或者SQLite),因爲它們都得到很好的支持。

如果你加密你的密鑰,那麼你存儲數據庫的地方應該不會太重要,儘管我當然不會公開地下載它。只要選擇一個好的加密工具和不要嘗試開發自己的加密算法!

0

最新的熱點(在容器世界中)是使用zookeeper,etcdconsul作爲分佈式配置存儲。 confd工具能夠確保應用程序配置文件與配置更改保持同步。

如果您希望程序使用環境變量,我個人偏好是Consul,它有一個類似的模板工具consul-template,另一個叫envconsul

終於,consil的製造商Hasicorp有一個名爲vault的加密產品。它與領事協同工作,並得到consul-template的支持。

相關問題