Skip to content
Latchkey

artifact attestation とは? - build に関する署名済みの主張

artifact attestation とは、build artifact について、それがどう build されたかや何を含むかといった検証可能な事柄を主張する、署名済みの声明です。

attestation とは、特定の artifact に結び付けられた暗号的に署名された主張です。「このイメージは、この commit から、このパイプラインによって build された。」「このバイナリは、この SBOM を持つ。」「このパッケージは、これらのチェックを通過した。」署名され、artifact の digest に結び付けられているため、それが届いた経路を信頼せずとも、誰でもその主張を検証できます。

attestation vs provenance

provenance は attestation の一種です。artifact がどう build されたかについての主張です。attestation はより広い概念であり、SBOM、テスト結果、スキャン結果を含む、artifact に関する検証可能な任意の事実についての署名済みの声明です。

何が attest されるか

  • build provenance: ソース、builder、プロセス。
  • artifact のコンポーネントを列挙する SBOM。
  • 脆弱性またはポリシーのスキャン結果。
  • 必要なチェックが通過したことの確認。

artifact にどう結び付くか

attestation は、artifact をその名前やタグではなく、コンテンツの digest によって参照します。つまり、それが作られた正確なバイト列に対してのみ有効であり続けます。artifact をすり替えれば、attestation はもはや一致しません。

デプロイ時に検証する

デプロイの gate は、artifact を通す前に有効な attestation を要求できます。正しい signer、一致する digest、期待される主張です。これにより「このイメージが正当であることを願う」が「暗号的に検証した」に変わります。

CI で attestation を生成する

build プラットフォームは、artifact が生成されるにつれて attestation を発行し、builder の識別情報で、しばしば Sigstore のようなサービスを通じてキーレスに署名します。信頼でき分離された builder が、それらの attestation を意味あるものにします。主張が、攻撃者が改ざんできなかった build を記述しているからです。

重要なポイント

  • artifact attestation は、artifact の digest に結び付けられた署名済みで検証可能な主張である。
  • provenance は attestation の一種であり、SBOM やスキャン結果も別の種類である。
  • デプロイの gate は、artifact を受け入れる前に有効な attestation を要求できる。

関連ガイド