第14章 イメージの署名の確認
Red Hat Advanced Cluster Security for Kubernetes (RHACS) を使用して、事前に設定されたキーに対してイメージ署名を検証することで、クラスター内のコンテナーイメージの整合性を確保できます。
署名されていないイメージや署名が確認されていないイメージをブロックするポリシーを作成できます。RHACS アドミッションコントローラーを使用してポリシーを適用し、無許可のデプロイメントの作成を停止することもできます。
RHACS は、Cosign 公開鍵、Cosign 証明書、またはその両方を使用して、Cosign 署名検証をサポートします。
Cosign の詳細は、Overview (Sigstore ドキュメント) を参照してください。
Cosign 署名検証の場合、RHACS は透明性ログとの通信をサポートします。
詳細は、Rekor (Sigstore ドキュメント) を参照してください。
- Cosign 署名検証では、RHACS によるキーレス検証を使用できます。キーインフラストラクチャーを自身でホストする場合は、Red Hat Trusted Artifact Signer (RHTAS) を使用してホストできます。
- 署名検証には、少なくとも 1 つの Cosign 検証方法を使用して署名統合を設定する必要があります。
すべてのデプロイおよび監視されたイメージに対して以下を実行します。
- RHACS は署名を 4 時間ごとに取得および検証します。
- RHACS は、署名統合検証データを変更または更新するたびに署名を検証します。
14.1. 署名統合を使用したコンテナーイメージの保護 リンクのコピーリンクがクリップボードにコピーされました!
署名統合を作成することで、信頼できるソースがコンテナーイメージに署名することを確認できます。
署名統合を作成する際は、次の検証方法を使用できます。
- Cosign 公開鍵
- Cosign 証明書
透明性ログ検証を有効にすることで、署名検証を強化することもできます。透明性ログは、公開ログに署名を記録し、その署名が含まれていることを暗号化して証明します。公開鍵または証明書を使用する際にトレーサビリティーを追加し、信頼性を高めることで検証を強化できます。
少なくとも 1 つの信頼できる署名者を設定する必要があります。信頼できる署名者を設定するには、Cosign 公開暗号鍵または Cosign 証明書チェーンを指定する必要があります。複数のイメージ署名者を単一の署名統合に組み合わせることができます。
前提条件
Privacy Enhanced Mail (PEM) 形式でエンコードされた Cosign 公開鍵がある。
Cosign 公開鍵の詳細は、Overview (Sigstore ドキュメント) を参照してください。
- 証明書のアイデンティティーと発行者がわかっている。
オプション: PEM 形式でエンコードされた証明書とチェーンがある。
Cosign 証明書の詳細は、Verifying Signatures (Sigstore ドキュメント) を参照してください。
手順
-
RHACS ポータルで、Platform Configuration
Integrations をクリックします。 - Signature Integrations セクションまで下方向にスクロールし、Signature クリックします。
- 新しい署名統合を作成するには、New integration をクリックします。
- 統合の名前を入力します。
新しい公開鍵を追加するには、次の手順を実行します。
注記- 公開鍵を追加する場合は、新しい証明書検証を作成する必要はありません。
- 1 つ以上の公開鍵を追加できます。
- Cosign public Keys を展開し、Add new public key をクリックします。
- キーの名前を入力します。
- PEM 形式でエンコードされたキーの値を入力します。
新しい証明書検証を追加するには、次の手順を実行します。
重要- 署名統合を作成するときに、Red Hat Trusted Artifact Signer (RHTAS) を使用してイメージ署名にキーレス検証を使用する場合は、新しい証明書検証を追加する必要があります。
- 1 つ以上の証明書検証を追加できます。
- Cosign certificates を展開し、Add new certificate verification をクリックします。
Cosign が指定する証明書 OIDC 発行者を入力します。一致させるには、RE2 構文で正規表現を使用する必要があります。
詳細は、
google/re2
の GitHub リポジトリーにアクセスし、Wiki
セクションを開いて、Syntax
ページを選択してください。Cosign が指定する証明書アイデンティティーを入力します。一致させるには、RE2 構文で正規表現を使用する必要があります。
詳細は、
google/re2
の GitHub リポジトリーにアクセスし、Wiki
セクションを開いて、Syntax
ページを選択してください。証明書を検証するために、PEM 形式でエンコードされた信頼できる証明書ルートを入力します。証明書ルートを指定しない場合は、検証にパブリック Fulcio ルートが自動的に使用されます。
詳細は、Fulcio (Sigstore ドキュメント) を参照してください。
- 証明書を検証するには、信頼できる署名者の中間認証局を入力します。認証局を指定しない場合は、検証に証明書チェーンが自動的に使用されます。
オプション: 証明書の透明性ログへの組み込みの証明を検証するには、Enable certificate transparency log validation のチェックボックスを選択します。
証明書の透明性ログへの組み込み証明を検証するために使用する公開鍵を入力します。公開鍵を指定しない場合は、検証にはパブリック Sigstore インスタンスのキーが自動的に使用されます。
透明性ログを設定するには、次の手順を実行します。
注記署名統合を作成する際に、次の状況で透明性ログの検証を有効化できます。
- 署名に Fulcio が発行する有効期間の短い証明書が含まれている場合。
- 署名のキーレス検証を使用する場合。
- 公開鍵を使用する際に署名を検証する場合。
透明性ログへの署名の組み込みを検証するには、Enable transparency log validation のチェックボックスを選択します。
Rekor 透明性ログを利用できる URL を入力します。URL を指定しない場合は、Sigstore のパブリック Rekor インスタンスが検証に自動的に使用されます。
注記透明性ログへの組み込みをオンラインで確認するには、Rekor URL が必要です。
オプション: 透明性ログへの署名証明の組み込みのオフライン検証を強制するには、Validate in offline mode のチェックボックスを選択します。
注記透明性ログの検証を有効にした場合にのみ、透明性ログへの署名証明の組み込みのオフライン検証を強制できます。
公開鍵を入力して、Rekor 透明性ログへの署名証明の組み込みを検証します。公開鍵を指定しない場合は、検証にはパブリック Sigstore インスタンスのキーが自動的に使用されます。
- Save をクリックします。
検証
-
RHACS ポータルで、Platform Configuration
Integrations をクリックします。 - Signature Integrations セクションまで下方向にスクロールし、Signature クリックします。
- 署名統合の作成が成功したことを確認します。
オプション: 作成した署名統合を管理するための適切な方法を選択します。
-
署名統合を削除するには、オーバーフローメニュー
をクリックし、続いて Delete Integration を選択します。
-
署名統合を編集するには、オーバーフローメニュー
をクリックし、続いて Edit Integration を選択します。
-
署名統合を削除するには、オーバーフローメニュー