最近、自分のスタートアップのサービスでLiteLLMをプロキシとして使い始めた。で、今朝GitHubのリリースノートを見ていたら v1.83.3.rc.1 が出ていた。rc版なので本番には入れない予定だけど、内容を読んで「あ、これは早めに把握しておいたほうがいいやつだ」と思ったのでメモしておく。
まずリリースノートで目に入ったのはDockerイメージの署名検証の話。cosignを使って全イメージに署名しているという内容で、コミット `0112e53` から導入された公開鍵で検証できるようになっている。自分はGitHub ActionsでLiteLLMのDockerイメージをpullして使っているのだが、正直これまでイメージの署名なんてほぼ気にしていなかった。
リリースノートに載っているコマンドはこんな感じ。
コミットハッシュを固定してkeyを指定するのが推奨とのこと。タグ指定でも動くけど「コミットハッシュは暗号的に不変だから」という理由で前者が強いと書いてある。なるほどと思った。タグはリポジトリ設定次第で上書きできてしまうリスクがあるから、CI/CDで厳密にやるならハッシュ固定が正しい。自分のActionsのワークフローを見直す必要がある。
セキュリティ以外の変更も気になった。`feat(teams): resolve access group resources in team endpoints` というPRが入っている。自分の会社ではLiteLLMのVirtual Keysをチームごとに発行して、誰がどのモデルを使えるかを管理しようとしている最中だ。アクセスグループの解決がチームエンドポイントで効くようになるのは、その設計にダイレクトに影響してくる。
あと `feat(proxy): add project-level guardrails support` もある。プロキシ全体じゃなくてプロジェクト単位でガードレールを設定できるようになるということ。チームが増えてきたとき、モデルごとにフィルタリングルールを細かく分けたいケースが出てくるから、これは将来的に使いそうだと思った。
UIの修正も3件入っていて、Virtual Keysタブのkey aliasドロップダウンに `team_id` フィルターが繋がった。今まで繋がってなかったのかという気持ちにはなるが、実務で使う側からすると地味に助かる。ページネーション付きのチーム検索も入ったようだし、チームが増えてきたときの管理画面の使いやすさが上がっている。
rc版を本番に入れるつもりはないけど、正式リリースが出たら真っ先に更新するリストに入れた。それより先にやることは、既存のActionsワークフローでcosignの検証ステップを足すこと。署名が通らなかったらpullを失敗させる仕組みを作っておけば、サプライチェーン攻撃への備えとして最低限の線は引ける。来週のスプリントに入れてみるつもりだ。
まずリリースノートで目に入ったのはDockerイメージの署名検証の話。cosignを使って全イメージに署名しているという内容で、コミット `0112e53` から導入された公開鍵で検証できるようになっている。自分はGitHub ActionsでLiteLLMのDockerイメージをpullして使っているのだが、正直これまでイメージの署名なんてほぼ気にしていなかった。
イメージ署名の検証、実際どうやるか
リリースノートに載っているコマンドはこんな感じ。
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \
ghcr.io/berriai/litellm:v1.83.3.rc.1コミットハッシュを固定してkeyを指定するのが推奨とのこと。タグ指定でも動くけど「コミットハッシュは暗号的に不変だから」という理由で前者が強いと書いてある。なるほどと思った。タグはリポジトリ設定次第で上書きできてしまうリスクがあるから、CI/CDで厳密にやるならハッシュ固定が正しい。自分のActionsのワークフローを見直す必要がある。
地味に嬉しいUIとチーム機能の改善
セキュリティ以外の変更も気になった。`feat(teams): resolve access group resources in team endpoints` というPRが入っている。自分の会社ではLiteLLMのVirtual Keysをチームごとに発行して、誰がどのモデルを使えるかを管理しようとしている最中だ。アクセスグループの解決がチームエンドポイントで効くようになるのは、その設計にダイレクトに影響してくる。
あと `feat(proxy): add project-level guardrails support` もある。プロキシ全体じゃなくてプロジェクト単位でガードレールを設定できるようになるということ。チームが増えてきたとき、モデルごとにフィルタリングルールを細かく分けたいケースが出てくるから、これは将来的に使いそうだと思った。
UIの修正も3件入っていて、Virtual Keysタブのkey aliasドロップダウンに `team_id` フィルターが繋がった。今まで繋がってなかったのかという気持ちにはなるが、実務で使う側からすると地味に助かる。ページネーション付きのチーム検索も入ったようだし、チームが増えてきたときの管理画面の使いやすさが上がっている。
rc版を本番に入れるつもりはないけど、正式リリースが出たら真っ先に更新するリストに入れた。それより先にやることは、既存のActionsワークフローでcosignの検証ステップを足すこと。署名が通らなかったらpullを失敗させる仕組みを作っておけば、サプライチェーン攻撃への備えとして最低限の線は引ける。来週のスプリントに入れてみるつもりだ。