はじめに
main開発線 (v2.0.0-alpha.1、internal/version/version.go:18) で検証。コマンドは Unix シェルと push 可能な OCI レジストリを想定。
前提
- ソースからビルドするなら Go
>= 1.24(source 12)。 - Referrers API か Referrers tag schema に対応したレジストリに push できる OCI アーティファクト。
gitとmake。
インストール
ソースからビルドしてインストールする。make install はバイナリを ~/bin/notation に置く (source 12):
git clone https://github.com/notaryproject/notation.git
cd notation
make installその後 notation が見つからなければ ~/bin を PATH に追加する:
export PATH="$HOME/bin:$PATH"最初の動く構成
ローカルのアーティファクトに自前のテスト鍵で署名し、検証する。
バイナリが動くか確認する。
bashnotation version署名鍵と自己署名証明書を生成し trust store に登録する。署名前に署名鍵の設定が必要だ (
cmd/notation/sign.go:68)。bashnotation cert generate-test --default "wabbit-networks.io"アーティファクトにダイジェストで署名する。署名はダイジェストに固定され、タグ参照には可変性の警告が出る (
cmd/notation/sign.go:167)。参照は自分のものに置き換える。bashnotation sign $REGISTRY/$REPO@$DIGEST成功時の出力 (
cmd/notation/sign.go:186-187):textSuccessfully signed <registry>/<repo>@sha256:... Pushed the signature to <registry>/<repo>@sha256:...trust policy を追加する。検証には trust store の証明書と trust policy が必要だ (
cmd/notation/verify.go:51)。失効と expiry を強制するため検証レベルはstrictにする (source 4、source 9)。bashnotation policy import ./trustpolicy.json署名を検証する。
bashnotation verify $REGISTRY/$REPO@$DIGEST
動作確認
notation verify が成功すると exit 0 で検証済みアーティファクトを報告する。失敗時は検証エラーをまとめて出力し非ゼロを返す (cmd/notation/verify.go:147-153)。アーティファクトに紐づく署名は notation list <reference> で一覧できる。