2012-09-28 40 views
1

我正在使用配置文件來存儲數據庫的密碼/密鑰以及與AWS等其他服務的連接。如何安全地加密配置文件中的值

我正在使用Travis CI進行構建,並運行我的測試,然後將其部署到活服務器。

我想加密我的配置文件中的變量,只有應用程序應該能夠讀取它。這是標準 -

1)應用程序應該能夠在多個環境中從構建服務器到多個部署服務器進行解密。

2)用於解密配置文件的密碼不適用於開發人員。

該項目是clojure,有沒有任何leiningen插件/功能,將有助於此?

感謝, 穆爾塔扎

回答

1

我認爲你正在嘗試做的最好的解決方案就是從應用程序的源代碼樹中刪除配置文件。將配置文件保存到構建和部署服務器,並且不要讓開發人員直接訪問這些配置文件。

你要做的事情的主要問題是你試圖讓你的開發者無法訪問某些東西,但同時也可以讓開發人員完全控制它,應用程序代碼,以訪問相同的東西。也就是說,爲了應用程序能夠解密配置,開發人員必須能夠訪問解密密鑰。

你可以嘗試使它只能通過只在構建和部署服務器上可用的工具(即一個Leiningen插件)來解密你的配置,但是單獨存儲配置文件會更簡單。

+0

感謝您的寫作。除了將文件存儲在服務器上的文件中,我是否也可以將它們以加密格式保存,以便有權訪問服務器的用戶不能妥協。 – murtaza52

+1

你可以這樣做,但你仍然需要在應用程序中解密。如果您使用的是Unix/Linux,並且您知道自己在做什麼,則可以爲該應用程序提供自己的非登錄用戶,並在配置文件上設置權限,以便除了該用戶以外的任何人都看不到它們。無論如何你應該這樣做。 – astine

相關問題