99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Jenkins 進程內腳本批準

2018-08-26 10:49 更新

Jenkins和許多插件允許用戶在Jenkins中執(zhí)行Groovy腳本。這些腳本功能由以下提供:

  • 腳本控制臺。
  • Jenkins Pipeline。
  • 擴展插件的電子郵件。
  • Groovy插件 -使用“執(zhí)行系統(tǒng)Groovy腳本”的步驟時。
  • 版本1.60及更高版本的JobDSL插件

為了保護Jenkins不會執(zhí)行惡意腳本,這些插件在Groovy Sandbox中執(zhí)行用戶提供的腳本,可以限制可訪問的內部API。然后,管理員可以使用腳本安全性插件提供的“進程內腳本批準”頁面來管理在Jenkins環(huán)境中應該允許哪些不安全的方法(如果有的話)。

Jenkins 進程內腳本批準

開始

該腳本安全插件被自動安裝后安裝設置向導,雖然最初沒有額外的腳本或操作批準使用。

這個插件的舊版本可能不安全使用。請查看腳本安全性插件頁面 中列出的安全警告,以確保腳本安全性插件是最新的。

進程內腳本的安全性由兩種不同的機制提供: Groovy Sandbox

Groovy Sandbox

 和 Script Approval。第一個Groovy Sandbox默認啟用Jenkins Pipeline,允許用戶提供的Scripted和Declarative Pipeline執(zhí)行,而無需事先管理員干預。第二個“腳本批準”允許管理員批準或拒絕未分組的腳本,或允許Sandbox腳本執(zhí)行其他方法。

在大多數(shù)情況下,Groovy Sandbox和 Script Security內建的已批準方法簽名列表的組合將足夠。強烈建議,如果絕對必要,管理員只會偏離這些默認值。

Groovy Sandbox

為了減少管理員的手動干預,默認情況下,大多數(shù)腳本將在Groovy Sandbox中運行,包括所有 Jenkins Pipeline。Sandbox只允許Groovy的一些方法被認為足夠安全,以便在未經事先批準的情況下執(zhí)行“不受信任”訪問。使用Groovy Sandbox的腳本都受到相同的限制,因此由管理員編寫的Pipeline將受到非管理用戶授權的限制。

當腳本嘗試使用Sandbox未經授權的功能或方法時,腳本將立即停止,如下所示,Jenkins Pipeline

Jenkins 進程內腳本批準

圖1.未經授權的方法簽名在運行時通過Blue Ocean被拒絕

在管理員通過“ 進程內腳本批準”頁面批準方法簽名之前,上述Pipeline將不會執(zhí)行 。

除了添加批準的方法簽名,用戶還可以完全禁用Groovy Sandbox,如下所示。禁用Groovy Sandbox要求整個腳本必須經過管理員審核并手動批準。

Jenkins 進程內腳本批準

圖2.禁用Pipeline的Groovy Sandbox

腳本批準

由管理員手動批準整個腳本或方法簽名,為管理員提供了額外的靈活性,以支持更高級的進程內腳本編寫。當Groovy Sandbox被禁用或者調用了內置列表以外的方法時,Script Security插件將檢查經過管理員管理的已批準腳本和方法列表。

對于希望在Groovy Sandbox之外執(zhí)行的腳本,管理員必須在“ 進程內腳本批準”頁面中批準整個腳本:

Jenkins 進程內腳本批準

圖3.批準一個unsandboxed Script Pipeline

對于使用Groovy Sandbox但是希望執(zhí)行當前未經批準的方法簽名的腳本也將被Jenkins停止,并且要求管理員在腳本被允許執(zhí)行之前批準特定的方法簽名:

Jenkins 進程內腳本批準

圖4.批準新的方法簽名

批準假設權限檢查

腳本批準提供三個選項:批準,拒絕和“批準假設權限檢查”。雖然前兩者的目的是不言而喻的,但第三個要求需要對內部數(shù)據(jù)腳本能夠訪問的內容以及Jenkins函數(shù)中的權限如何進行一些額外的了解。

考慮訪問該方法的腳本,該腳本 hudson.model.AbstractItem.getParent()本身是無害的,并返回一個包含當前正在執(zhí)行的流水線或作業(yè)的文件夾或根目錄的對象。在該方法調用,執(zhí)行hudson.model.ItemGroup.getItems()(將列出文件夾或根項目中的項目)之后,需要該Job/Read權限。

這可能意味著批準hudson.model.ItemGroup.getItems()方法簽名將允許腳本繞過內置權限檢查。

相反,通常更需要單擊“ 批準”假設權限檢查,這將導致腳本批準引擎允許方法簽名,假設運行該腳本的用戶具有執(zhí)行該方法的Job/Read權限,例如此示例中的權限。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號