2014-04-10 80 views
0

我有一個在代碼編譯後執行的PowerShell腳本。該腳本連接到遠程機器並傳輸文件,然後將它們部署到該遠程機器上。我的腳本需要該遠程機器的憑據。由於所有這些都存儲在TFS中,這意味着任何有權訪問visualstudio.com中的TFS實例的人都可以使用憑據。我已經完成了一些閱讀,並且大多數解決方案都涉及將解密密鑰存儲在構建服務器(在文件中,作爲環境變量等)。如果我擁有/控制構建服務器,這很好,但我正在使用託管構建服務器。如果我把密鑰放在我的源代碼管理中,那麼這首先會破壞加密值的全部目的。如何保護存儲在源代碼管理中的憑據以供Visual Studio Online構建控制器使用

有什麼我在這裏失蹤?我是否從錯誤的角度來處理這個問題?

回答

0

只要您使用TFS的構建系統,您總是遇到安全問題。每個能夠以任何方式觸發構建的人都可以訪問整個集合的源代碼控制,即使他不允許以權限執行。

即使在構建服務器上存儲解密密鑰的方法也不安全,因爲在unittest中開發人員能夠使用構建帳戶憑據訪問構建服務器的本地磁盤。

所以如果你使用tfs構建系統,你大多不得不信任你的開發者。

+0

謝謝你的回答。你有一些好點,特別是在執行單元測試的時候。幾乎所有的加密都是「足夠好」的安全性。如果有足夠的時間,任何密碼都可以被破解,但是破解足夠短的時間足以讓它值得付出努力?只要答案是「否」,那麼它「足夠好」。對於不在項目中的人來說,要求複製源代碼並不罕見,所以我主要對保持加密密鑰不受源代碼管理感興趣,所以我們不會意外地給它們。 –

相關問題