圖片來源: 

GitHub

Google宣布開源以其Bazel建構容器映像檔的工具,並向rules_docker用戶招手。

Google釋出名為rules_oci 1.0版,它是Google多語言跨平臺建置系統Bazel外掛程式ruleset的開源版,旨在讓開發人員更安全以Bazel構建容器映像檔。

Bazel是很受歡迎的Google建構及測試工具,其功能藉由完整性雜湊來管理和儲存相依性,以確保軟體供應鏈的安全。Google對Bazel的用途之一是用它來建構Docker的Distroless基礎映像檔。Google的Distroless則是一系列基礎映像檔,它會限制runtime容器的內容,確保只提供應用程式需要的元件。它的輕巧及精簡特性可為開發人員減輕容器安全漏洞、授權及治理的風險和管理複雜性。

過去開發人員多半使用rules_docker來建立容器映像檔,不過現在這工具不再積極開發,呈現「最低限度維護」狀態。Google大力說明相較於rules_docker的好處;Google表示,新的rules_oci適合用於Distroless和大部分版本的Bazel容器環境。原因是現在有很多種容器runtimes和映像檔格式,rules_oci並不限定只能執行機器上安裝的docker daemon。此外,許多優異的容器控制工具,像是Cranes、Skopeo和Zot等是在rules_docker之後才問世,相較之下新推出的rules_oci可使用受信賴的第三方工具,避免只使用Bazel的獨家工具。另外,rules_oci不包含特定語言的工具,使其比rules_docker更好維護,也能避免使用其他語言ruleset的舊式相依性。

Rules_oci其他好處包括可使用Bazel的下載工具從遠端registry抓取需要的映像,能加速快取,讓使用registry過程更透明。跨多架構的映像檔可方便用於ARM伺服器,也支援Windows容器。程式碼簽章功能讓用戶得以確信容器的真實性,而未遭到第三方(如中間人攻擊)修改。若配合Bazel開發小組發展的其他工具,還有軟體物料清單(software bill of material,SBOM)可顯示容器內有什麼元件。

Google說,自從使用rules_oci及Bazel 6後,Google的Distroless團隊也見識到開發流程、映像檔產出及安全性metadata多方面都更精進。原因是它支援簽章,可避免競爭條件造成某些映像檔未簽發。它還支援多平臺映像檔的oci index,可在構建過程中移除對docker的相依,這意謂一旦多平臺組建出問題時,更容易除錯。抓取和快取映像檔速度更提升,使CI build在使用遠端儲存庫時更快更穩定。此外,Distroless映像檔因隨同提供了SBOM,因此可在認證(attestation)時,允許開發人員檢查其內容。最後,rules_oci讓開發人員可以現代化Distroless build加入必要的metadata確保供應鏈安全性,以便企業用戶使用映像檔前作為決策參考。

這新工具是Google和Bazel顧問公司Aspect及產業組織Rules Authors Special Interest Group合作的結果。

現在rules_oci 1.0版已經上線。Google也保證穩定性符合semver標準,未來版本也不會包含重大的公開API變更。針對現有rules_docker用戶,Aspect公司則提供移轉指引及支援顧問服務。

熱門新聞

Advertisement