脆弱性対応の省力化
ベースイメージに脆弱性の修正が出たとき、利用者側の作業は、イメージを pull し直すことです。 Takumi Images は、上流の依存関係が更新されるたびに、該当イメージを再ビ ルドし、再スキャンします。 そのため、最新タグを pull し直せば、その時点で存在するパッチの適用はすでに完了しています。
この挙動は、:latest が指す digest を実際に確認すると具体的に把握できます。
:latest はタグであり、その指す先は再ビルドのたびに変わるからです。
たとえば curl イメージのタグが指す digest は、次のように確認できます。
$ crane digest images.flatt.tech/takumi/curl:latest
sha256:<digest>
curl の依存関係に修正が入って再ビルドされれば、同じコマンドは別の digest を返すようになります。
デプロイの挙動を固定したい場合は、その時点の digest を控えて @sha256:... の形で参照すれば、以後の再ビルドの影響を受けません。
反対に、修正を追従し続けたい場合は :latest を使い、定期的に pull し直す運用にします。
digest 固定と :latest 追従を具体的にどう使い分けるかは、クイックスタートの digest 節を参照してください。
修正が届く2つの経路
修正が届く経路は、2つあります。
ひとつは、ビルドの土台にしている固定ソース(pin)を新しい版へ進める経路です。 pin はカタログ全体で共有しているので、1 回進めることで、そのパッケージを使うすべてのイメージに修正が届きます。
もうひとつは、修正が上流にはあるものの、pin にはまだ取り込まれていないときに、そのパッケージだけへパッチ(overlay と呼びます)を当てる経路です。
overlay は、そのパッケージが現れるすべてのイメージに適用されるので、次の pin 更新を待つ必要はありません。
当てたパッチの中身は、そのイメージの SBOM の pedigree.patches に diff としてそのまま残ります。
どちらの経路も、利用者の側で個別のイメージにパッチを当てる作業を必要としません。 仕組みの詳細は既知脆弱性への対応を参照してください。