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/policies/<namespace>.jsonおよび/etc/containers/registries.d/sigstore-registries.yamlファイルを作成または更新します。イメージポリシー内のイメージまたはリポジトリーがクラスターイメージポリシー内のいずれかのイメージまたはリポジトリーの下にネストされている場合、クラスターイメージポリシーのポリシーのみが適用されます。たとえば、イメージポリシーで
example.com/global/imageが指定され、クラスターイメージポリシーでexample.com/globalが指定されている場合、namespace はクラスターイメージポリシーのポリシーを使用します。イメージポリシーオブジェクトが作成され、次のメッセージのようなエラーが表示されます。競合するイメージアイデンティティーを持つイメージポリシーの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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 はクラスターイメージポリシーからポリシーを継承します。-
個別のイメージ (タグやダイジェストを使用、例:
policyscopesにリストされているソースからのイメージを検証できるようにするための設定が含まれており、検証ポリシーに一致しないイメージの処理方法を定義します。rootOfTrustと、オプションでsignedIdentityを設定する必要があります。rootOfTrust: ポリシーの Root of Trust を指定します。公開鍵または Fulcio 証明書 のいずれかを設定します。-
publicKey: ポリシーが sigstore 公開鍵に依存していることを示します。base64 でエンコードされた PEM 形式の公開鍵を指定する必要があります。オプションで Rekor verification を含めることもできます。 FulcioCAWithRekor: ポリシーが Fulcio 証明書に基づくことを示します。次のパラメーターを指定する必要があります。- base64 でエンコードされた PEM 形式の Fulcio CA
- OpenID Connect (OIDC) 発行者
- Fulcio 認証設定のメール
- Rekor 検証
-
signedIdentity: 署名内のイメージと実際のイメージ自体を検証するために使用される方法を指定します。署名アイデンティティーを設定するには、一致ポリシーとして次のいずれかのパラメーターを指定する必要があります。-
MatchRepoDigestOrExact。署名で参照されるイメージは、イメージ自体と同じリポジトリーに存在する必要があります。イメージにタグが付いている場合、署名で参照されるイメージは完全に一致する必要があります。これがデフォルトです。 -
MatchRepository。署名で参照されるイメージは、イメージ自体と同じリポジトリーに存在する必要があります。イメージにタグが付いている場合、署名で参照されるイメージは完全に一致する必要はありません。これは、イメージが正確なイメージバージョンを指定するタグで署名されている場合に、latestタグを含むイメージをプルするのに役立ちます。 -
ExactRepository。署名で参照されるイメージは、exactRepositoryパラメーターで指定されたものと同じリポジトリーに存在する必要があります。exactRepositoryパラメーターを指定する必要があります。 RemapIdentity。スコープ指定されたリポジトリーまたはイメージが指定されたprefixと一致する場合、その接頭辞は指定されたsignedPrefixに置き換えられます。イメージアイデンティティーが一致しない場合、prefixは変更されず、再マッピングは実行されません。このオプションは、ベンダーのリポジトリー構造を保持する他のリポジトリー namespace のミラーの署名を検証する場合に使用できます。prefixとsignedPrefixは、host[:port]文字列に正確に一致するhost[:port]の値、リポジトリー namespace、またはリポジトリーのいずれかになります。prefixとsignedPrefixにタグやダイジェストを含めることはできません。たとえば単一のリポジトリーを指定するには、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 オブジェクトを削除することで、ポリシーを削除できます。