我們正在Jenkins的多分支管道插件中連接到GitHub組織的存儲庫,在其某些分支中使用Jenkinsfile。詹金斯可以訪問多個其他代理,其成功構建後部署代碼。防止在Jenkinsfile中進行未經批准的部署(多分支管道)
問題:我想阻止其他開發者運行修改後的Jenkinsfile在他們的分支和請求的構建。
- 解決方案1:
when
聲明Jenkinsfile:安全性差。任何人都可以修改它,刪除when
條款並中斷生產。 - 解決方案2:鎖定的回購文件:不適用於GitHub。我正在認真考慮轉移到GitLab,因爲他們有這個功能。
- 解決方案3:在詹金斯部署單獨工作:矯枉過正。我認爲應該有一個Pipeline-ish解決方案。
我怎樣才能確保使用的Jenkinsfile是真實的,而不是修改?有沒有解決這個,我錯過了?我希望這足夠安全,以防止任何人通過推送訪問而故意破壞事件, G。 git預推鉤不是解決方案。
是不是jenkins(誰可以運行這個工作)和/或目標系統(應該拒絕來自未知來源的部署)的安全問題?如果它將由執行部署的代碼進行管理 - 那麼任何開發人員都可能破解它。 – daggett
@daggett的權利。但我正在尋找一種方法來阻止任何開發者(除特權者之外)使用自定義'Jenkinsfile'構建。我想到的一個(可能的)解決方案是讓Jenkins以某種方式使用來自pull請求(或「master」分支)的目標分支的'Jenkinsfile',而不是源代碼分支。 –
您是否曾經爲此解決過這個問題?我處於類似的情況,我想禁止我的Jenkinsfile運行任意代碼 – bearrito