Skip to main content

オフラインでの構成証明の確認

アーティファクトの構成証明は、インターネット接続がなくても検証できます。

はじめに

構成証明は、構築するソフトウェアに対して検証不可能な証明と整合性の保証を作成するための優れた方法です。

既定では、構成証明は GitHub の構成証明 API に格納されます。gh attestation verify は、構成証明を確認する際にクエリを実行します。 また、このコマンドは GitHub のサーバーに連絡して、構成証明の検証に使用する更新されたキー材料を確認します。

このコマンドはインターネット接続がなくても機能しますが、構成証明バンドルと信頼されたルートのキー材料を手動で指定する必要があります。

このガイドを開始する前に、アーティファクトの構成証明を生成して構築する必要があります。 「アーティファクトの構成証明を使用して構築の実績を確立する」をご覧ください。

手順 1: 構成証明バンドルをダウンロードする

まず、構成証明 API から構成証明バンドルを取得します。

これを行うには、オンラインのマシンから次のコマンドを実行します。

Bash
gh attestation download PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME

このコマンドの出力例は次のとおりです。

Wrote attestations to file sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl.
Any previous content has been overwritten

The trusted metadata is now available at sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl

手順 2: 信頼されたルートをダウンロードする

次に、信頼されたルートからキー材料を取得します。

アーティファクトの構成証明では、パブリック リポジトリには Sigstore 公益インスタンス、プライベート リポジトリには GitHub の Sigstore インスタンスが使用されます。 1 つのコマンドを使用して、両方の信頼されたルートを取得できます。

Bash
gh attestation trusted-root > trusted_root.jsonl

オフライン環境での信頼されたルート情報の更新

署名済みの新しい素材をオフライン環境にインポートするときは常に、新しい trusted_root.jsonl ファイルを生成することをお勧めします。

trusted_root.jsonl のキー材料には満了日が組み込まれていないため、信頼されたルート ファイルを生成する前に署名されたものは引き続き正常に検証されます。 ファイルが生成された後に署名されたものは、Sigstore インスタンスがキー材料をローテーションするまで検証されます。これは通常、1 年に数回発生します。 信頼されたルート ファイルを最後に生成してからキー材料が取り消されたかどうかはわかりません。

手順 3: オフライン検証を実行する

これで、アーティファクトをオフラインで確認する準備ができました。

オフライン環境にインポートする必要があります。

  • GitHub CLI
  • アーティファクト
  • バンドル ファイル
  • 信頼されたルート ファイル

その後、次のコマンドを使用してオフライン検証を実行できます。

Bash
gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME --bundle sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl --custom-trusted-root trusted_root.jsonl

まとめ

これで、オフライン環境でアーティファクトの構成証明を確認します。 署名済みの新しいアーティファクトをオフライン環境に導入する際は常に、信頼された新しいルートをインポートすることを推奨しています。