7.4. サプライチェーンセキュリティーのコンテナー署名の検証
sigstore 署名方法を使用することで、サプライチェーンセキュリティーを強化できます。
sigstore サポートはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
7.4.1. sigstore を使用してコンテナー署名を検証する方法 リンクのコピーリンクがクリップボードにコピーされました!
sigstore 署名方法を使用することで、イメージの整合性を検証するようにコンテナーランタイムを設定できます。MicroShift コンテナーランタイムを設定すると、イメージの整合性を検証できます。sigstore プロジェクトを使用すると、開発者はビルド内容にデジタル署名し、ソフトウェアをソースにトレースするより安全なチェーンを作成できます。その後、管理者は署名を検証し、ワークフローを大規模に監視できます。sigstore を使用すると、ビルドイメージと同じレジストリーに署名を保存できます。
- ユーザー固有のイメージの場合、適切な公開鍵を指すように設定ファイルを更新するか、それらのイメージソースの署名の検証を無効にする必要があります。
非接続またはオフラインの設定の場合は、公開鍵の内容をオペレーティングシステムイメージに埋め込む必要があります。
7.4.2. sigstore を使用したコンテナー署名の検証 リンクのコピーリンクがクリップボードにコピーされました!
sigstore を使用するようにコンテナーランタイムを設定して、MicroShift のコンテナー署名を検証します。コンテナーの署名の検証では、イメージの署名時に Red Hat キーペアからの公開鍵を使用します。sigstore を使用するには、コンテナーランタイムパッケージの一部としてインストールされるデフォルトの /etc/containers/policy.json
ファイルを編集します。
以下のリンクで Red Hat 公開鍵にアクセスできます。
MicroShift コンテナーの署名を検証するには、リリースキー 3 を使用する必要があります。
前提条件
- MicroShift ホストへの admin アクセスがある。
- MicroShift をインストールしている。
手順
次のコマンドを実行して、関連する公開鍵をダウンロードし、
/etc/containers/RedHat_ReleaseKey3.pub
として保存します。sudo curl -sL https://access.redhat.com/security/data/63405576.txt -o /etc/containers/RedHat_ReleaseKey3.pub
$ sudo curl -sL https://access.redhat.com/security/data/63405576.txt -o /etc/containers/RedHat_ReleaseKey3.pub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat ソースからイメージを検証するようにコンテナーランタイムを設定するには、
/etc/containers/policy.json
ファイルを編集して以下の設定を含めます。ポリシー JSON ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/containers/registries.d/registry.redhat.io.yaml' ファイルを編集して、以下の設定を含めるように
/etc/containers/registries.d/registry.redhat.io.yaml'
ファイルを編集して、イメージをローカルストレージにプルする際に sigstore 添付を使用するように Red Hat リモートレジストリーを設定します。cat /etc/containers/registries.d/registry.redhat.io.yaml docker: registry.redhat.io: use-sigstore-attachments: true
$ cat /etc/containers/registries.d/registry.redhat.io.yaml docker: registry.redhat.io: use-sigstore-attachments: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/containers/registries.d/registry.quay.io.yaml ファイルを編集して、以下の設定を含めるように
/etc/containers/registries.d/registry.quay.io.yaml
ファイルを編集して、イメージをローカルストレージにプルする際に sigstore 添付を使用するように Red Hat リモートレジストリーを設定します。cat /etc/containers/registries.d/quay.io.yaml docker: quay.io/openshift-release-dev: use-sigstore-attachments: true
$ cat /etc/containers/registries.d/quay.io.yaml docker: quay.io/openshift-release-dev: use-sigstore-attachments: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ユースケースで、それらのイメージソースの署名の検証が必要な場合は、ユーザー固有のレジストリー設定ファイルを作成します。この例を使用して、開始して独自の要件を追加できます。
次のステップ
- ミラーレジストリーを使用している場合は、sigstore 添付を有効にします。
- それ以外の場合は、ローカルコンテナーのストレージ消去に進みます。
7.4.2.1. ミラーレジストリーの sigstore アタッチメントを有効にする リンクのコピーリンクがクリップボードにコピーされました!
ミラーレジストリーを使用している場合は、追加の設定を適用して、sigstore 添付とダイジェストによるミラーリングを有効にする必要があります。
前提条件
- MicroShift ホストへの admin アクセスがある。
- sigstore を使用したコンテナー署名の検証の手順を完了している。
手順
/etc/containers/registries.d/mirror.registry.local.yaml
ファイルを作成して、sigstore 添付を有効にします。cat /etc/containers/registries.d/<mirror.registry.local.yaml> docker: mirror.registry.local: use-sigstore-attachments: true
$ cat /etc/containers/registries.d/<mirror.registry.local.yaml>
1 docker: mirror.registry.local: use-sigstore-attachments: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ミラーレジストリー URL の後に <
mirror.registry.local.yaml
> ファイルに名前を付けます。
以下の内容で
/etc/containers/registries.conf.d/999-microshift-mirror.conf
を作成して、ダイジェストによるミラーリングを有効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のステップ
- ローカルコンテナーのストレージ消去を消去します。
7.4.2.2. ローカルコンテナーのストレージ消去のワイプ リンクのコピーリンクがクリップボードにコピーされました!
設定を既存のシステムに適用する場合は、ローカルコンテナーストレージをクリーンアップする必要があります。コンテナーストレージをクリーンアップすると、署名のあるコンテナーイメージが適切にダウンロードされます。
前提条件
- MicroShift ホストへの管理者アクセス権がある。
- ミラーレジストリーで sigstore を有効にしている。
手順
次のコマンドを実行して、CRI-O コンテナーランタイムサービスと MicroShift を停止します。
sudo systemctl stop crio microshift
$ sudo systemctl stop crio microshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して CRI-O コンテナーランタイムストレージのクリーニングを消去します。
sudo crio wipe --force
$ sudo crio wipe --force
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、CRI-O コンテナーランタイムサービスと MicroShift を再起動します。
sudo systemctl start crio microshift
$ sudo systemctl start crio microshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを入力して、すべての Pod が正常な状態であることを確認します。
oc get pods -A
$ oc get pods -A
出力例
この出力例は、基本的な MicroShift を示しています。オプションの RPM をインストールしている場合は、それらのサービスを実行している Pod のステータスも出力に表示されるはずです。