宣佈 LiteLLM 的 CI/CD v2
CI/CD v2 現已於 LiteLLM 上線。
承接我們的 安全事件 路線圖,CI/CD v2 為 LiteLLM 導入了隔離環境、更強的安全防護欄,以及更安全的發佈分離。
有哪些變更
- 安全掃描與單元測試在隔離環境中執行。
- 驗證與發佈分離到不同的儲存庫,讓攻擊者更難取得發佈憑證。
- PyPI 發佈採用 Trusted Publishing——這表示發佈時不會使用長效憑證。
- 不可變更的 Docker 發佈標籤——這表示發佈後無法竄改 Docker 發佈標籤 了解更多。注意:也規劃了 GHCR docker 發佈的相關工作。
- 使用 Cosign 進行 Docker 映像簽章——所有發佈映像都已簽署,因此使用者可以自行驗證它們確實來自我們。
驗證 Docker 映像簽章
從 v1.83.0-nightly 開始,所有發布到 GHCR 的 LiteLLM Docker 映像都會使用 cosign 簽署。每個發佈都使用相同的金鑰簽署,該金鑰在 commit 0112e53 中引入。
使用固定的 commit hash 驗證(建議):
commit hash 在密碼學上不可變,因此這是確保您使用原始簽署金鑰的最強方式:
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \
ghcr.io/berriai/litellm:<release-tag>
使用 release tag 驗證(方便):
本儲存庫中的標籤受到保護,並解析為相同的金鑰。此選項較容易閱讀,但仰賴標籤保護規則:
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/<release-tag>/cosign.pub \
ghcr.io/berriai/litellm:<release-tag>
請將 <release-tag> 替換為您要部署的版本(例如 v1.83.0-stable)。
預期輸出:
The following checks were performed on each of these signatures:
- The cosign claims were validated
- The signatures were verified against the specified public key
接下來是什麼
接下來,我們計劃:
-
採用 OpenSSF(這是一組專案應遵守的安全標準,用來展現強健的安全態勢——了解更多)
- 我們已將 Scorecard 和 Allstar 加入我們的 Github
-
將 SLSA Build Provenance 加入我們的 CI/CD pipeline——這表示我們允許使用者獨立驗證發佈確實來自我們,並防止發佈在公開後遭到靜默修改。
我們希望這將意味著您可以放心,您所使用的發佈是安全且確實來自我們的。
原則
新的 CI/CD pipeline 反映了以下列出的原則,並設計得更安全且更可靠:
- 限制 每個套件可以存取的內容
- 減少 敏感環境變數的數量
- 避免 已遭入侵的套件
- 防止 發佈遭竄改
如何協助:
協助我們規劃 4 月的穩定性衝刺——https://github.com/BerriAI/litellm/issues/24825
