12.2. sigstore サポートの設定について


ClusterImagePolicy および ImagePolicy カスタムリソース (CR) オブジェクトを使用して、クラスター全体または特定の namespace に対して sigstore サポートを有効化および設定できます。これらのオブジェクトには、sigstore ツールを使用して検証するイメージとリポジトリー、および署名の検証方法を指定するポリシーが含まれています。

  • クラスターイメージポリシー。クラスター管理者は、クラスターイメージポリシーオブジェクトを使用してクラスター全体の sigstore 署名検証ポリシーを設定できます。有効にすると、Machine Config Operator (MCO) は ClusterImagePolicy オブジェクトを監視し、クラスター内のすべてのノード上の /etc/containers/policy.json ファイルと /etc/containers/registries.d/sigstore-registries.yaml ファイルを更新します。

    重要

    デフォルトの openshift クラスターイメージポリシーは、必要な OpenShift Container Platform イメージの sigstore サポートを提供します。このクラスターイメージポリシーオブジェクトは、削除または変更しないでください。

  • イメージポリシー。クラスター管理者またはアプリケーション開発者は、イメージポリシーを使用して特定の namespace に対して sigstore 署名検証ポリシーを設定できます。MCO は、さまざまな namespace 内の ImagePolicy インスタンスを監視し、クラスター内のすべてのノード上の /etc/crio/<namespace>.json ファイルと /etc/containers/registries.d/sigstore-registries.yaml ファイルを作成または更新します。

    イメージポリシー内のイメージまたはリポジトリーがクラスターイメージポリシー内のいずれかのイメージまたはリポジトリーの下にネストされている場合、クラスターイメージポリシーのポリシーのみが適用されます。たとえば、イメージポリシーで example.com/global/image が指定され、クラスターイメージポリシーで example.com/global が指定されている場合、namespace はクラスターイメージポリシーのポリシーを使用します。イメージポリシーオブジェクトが作成され、次のメッセージのようなエラーが表示されます。

    競合するイメージアイデンティティーを持つイメージポリシーの例

    API Version:  config.openshift.io/v1alpha1
    Kind:         ImagePolicy
    Name:         p0
    Namespace:    mynamespace
    # ...
    Status:
      Conditions:
        Message: has conflicting scope(s) ["example.com/global/image"] that equal to or nest inside existing clusterimagepolicy, only policy from clusterimagepolicy scope(s) will be applied
        Reason: ConflictScopes
    # ...

12.2.1. クラスターおよびイメージポリシーのパラメーターについて

次のパラメーターは、クラスターおよびイメージポリシーに適用されます。これらのパラメーターの使用方法については、「クラスターイメージポリシー CR の作成」および「イメージポリシー CR の作成」を参照してください。

scopes

ポリシーに割り当てられたリポジトリーとイメージのリストを定義します。次のスコープの少なくとも 1 つをリストする必要があります。

  • 個別のイメージ (タグやダイジェストを使用、例: example.com/namespace/image:latest)
  • リポジトリー (タグやダイジェストを省略、例: example.com)
  • リポジトリー namespace (例: example.com/namespace/)
  • レジストリーホスト (ホスト名とポート番号のみを指定するか、*.example.com のような *. で始まるワイルドカード式)

複数のスコープが同じクラスターまたはイメージポリシー内の 1 つのスコープと一致する場合、最も具体的なスコープのポリシーのみが適用されます。

イメージポリシー内のスコープ指定されたイメージまたはリポジトリーが、クラスターイメージポリシー内のスコープイメージまたはリポジトリーのいずれかの下にネストされている場合、クラスターイメージポリシーのポリシーのみが適用されます。ただし、イメージポリシーオブジェクトは作成されます。たとえば、イメージポリシーで example.com/global/image が指定され、クラスターイメージポリシーで example.com/global が指定されている場合、namespace はクラスターイメージポリシーからポリシーを継承します。

policy

scopes にリストされているソースからのイメージを検証できるようにするための設定が含まれており、検証ポリシーに一致しないイメージの処理方法を定義します。rootOfTrust と、オプションで signedIdentity を設定する必要があります。

  • rootOfTrust: ポリシーの Root of Trust を指定します。公開鍵または Fulcio 証明書 のいずれかを設定します。

    • publicKey: ポリシーが sigstore 公開鍵に依存していることを示します。base64 でエンコードされた PEM 形式の公開鍵を指定する必要があります。オプションで Rekor verification を含めることもできます。
    • FulcioCAWithRekor: ポリシーが Fulcio 証明書に基づくことを示します。次のパラメーターを指定する必要があります。

      • base64 でエンコードされた PEM 形式の Fulcio CA
      • OpenID Connect (OIDC) 発行者
      • Fulcio 認証設定のメール
      • Rekor verification
  • signedIdentity: 署名内のイメージと実際のイメージの検証に使用するアプローチを指定します。署名されたアイデンティティーを設定するには、一致ポリシーとして次のいずれかのパラメーターを指定する必要があります。

    • MatchRepoDigestOrExact。署名で参照されるイメージは、イメージ自体と同じリポジトリーに存在する必要があります。イメージにタグが付いている場合、署名で参照されるイメージは完全に一致する必要があります。これはデフォルトです。
    • MatchRepository。署名で参照されるイメージは、イメージ自体と同じリポジトリーに存在する必要があります。イメージにタグが付いている場合、署名で参照されるイメージは完全に一致する必要はありません。これは、イメージが正確なイメージバージョンを指定するタグで署名されている場合に、latest タグを含むイメージをプルするのに役立ちます。
    • ExactRepository。署名で参照されるイメージは、exactRepository パラメーターで指定されたものと同じリポジトリーに存在する必要があります。exactRepository パラメーターを指定する必要があります。
    • RemapIdentity。スコープ指定されたリポジトリーまたはイメージが指定された prefix と一致する場合、その接頭辞は指定された signedPrefix に置き換えられます。イメージアイデンティティーが一致しない場合、prefix は変更されず、再マッピングは実行されません。このオプションは、ベンダーのリポジトリー構造を保持する他のリポジトリー namespace のミラーの署名を検証する場合に使用できます。

      prefixsignedPrefix は、host[:port] 文字列に正確に一致する host[:port] の値、リポジトリー namespace、またはリポジトリーのいずれかになります。prefixsignedPrefix にタグやダイジェストを含めることはできません。たとえば単一のリポジトリーを指定するには、busybox ではなく example.com/library/busybox を使用します。example.com/library/busybox の親 namespace を指定するには、example.com/library を使用できます。

      次のパラメーターを指定する必要があります。

      • prefix: 一致させるイメージの接頭辞を指定します。
      • signedPrefix: 必要に応じて、再度マッピングするイメージ接頭辞を指定します。

12.2.2. イメージポリシーの変更または削除

他のカスタムリソース (CR) オブジェクトと同じコマンドを使用して、クラスターイメージポリシーまたはイメージポリシーを変更または削除できます。

既存のポリシーを変更するには、ポリシー YAML を編集し、ファイルに対して oc apply コマンドを実行するか、ClusterImagePolicy または ImagePolicy オブジェクトを直接編集します。どちらの方法でも、変更は同じように適用されます。

クラスターまたは namespace に対して複数のポリシーを作成できます。これにより、イメージまたはリポジトリーごとに異なるポリシーを作成できます。

ClusterImagePolicy および ImagePolicy オブジェクトを削除することで、ポリシーを削除できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.