第5章 ClusterImagePolicy [config.openshift.io/v1]
- 説明
ClusterImagePolicy は、イメージ署名検証のためのクラスター全体の設定を保持します。
互換性レベル 1: メジャーリリース内で最低 12 カ月または 3 つのマイナーリリース (どちらか長い方) で安定しています。
- 型
-
object - 必須
-
spec
-
5.1. 仕様 リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
|
| 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
|
| spec には、クラスターイメージポリシーの設定が含まれています。 |
|
|
| status には、リソースの監視された状態が含まれます。 |
5.1.1. .spec リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- spec には、クラスターイメージポリシーの設定が含まれています。
- 型
-
object - 必須
-
policy -
scopes
-
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| policy は、スコープの検証をできるようにするための設定が含まれ、検証ポリシーに一致しないイメージの処理方法を定義する必須フィールドです。 |
|
|
|
scopes は、ポリシーに割り当てられるイメージアイデンティティーのリストを定義する必須フィールドです。各項目は、「Docker Registry HTTP API V2」を実装するレジストリー内のスコープを参照します。個々のイメージに一致するスコープは、タグまたはダイジェストを使用して完全に展開された形式で Docker 参照に名前が付けられます。たとえば、docker.io/library/busybox:latest (busybox:latest ではありません)。より一般的なスコープは、個々のイメージスコープの接頭辞です。このようなをスコープは、リポジトリー (タグまたはダイジェストを省略)、リポジトリー namespace、またはレジストリーホスト (ホスト名とポート番号のみを指定)、あるいはすべてのサブドメイン (ポート番号は含まない) に一致する |
5.1.2. .spec.policy リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- policy は、スコープの検証をできるようにするための設定が含まれ、検証ポリシーに一致しないイメージの処理方法を定義する必須フィールドです。
- 型
-
object - 必須
-
rootOfTrust
-
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| rootOfTrust は、取得中にイメージ署名を検証するための信頼のルートを定義する必須フィールドです。これにより、イメージのコンシューマーは、ポリシーが生成された方法に合わせて、policyType と対応するポリシー設定を指定できます。 |
|
|
| signedIdentity は、署名がイメージについて主張するイメージ ID を指定するためのオプションフィールドです。これは、署名内のイメージアイデンティティーが元のイメージ仕様と異なる場合に役立ちます。たとえば、ミラーレジストリーがイメージスコープ用に設定されている場合、ミラーレジストリーからの署名には元のスコープではなくミラーのイメージ ID が含まれます。必須の matchPolicy フィールドは、署名のアイデンティティーと実際のイメージアイデンティティーを検証するプロセスで使用されるアプローチを指定します。デフォルトの matchPolicy は "MatchRepoDigestOrExact" です。 |
5.1.3. .spec.policy.rootOfTrust リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- rootOfTrust は、取得中にイメージ署名を検証するための信頼のルートを定義する必須フィールドです。これにより、イメージのコンシューマーは、ポリシーが生成された方法に合わせて、policyType と対応するポリシー設定を指定できます。
- 型
-
object - 必須
-
policyType
-
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| fulcioCAWithRekor は、Fulcio 証明書と Rekor 公開鍵に基づいて信頼のルート設定を定義します。fulcioCAWithRekor は、policyType が FulcioCAWithRekor の場合に必須であり、それ以外の場合は禁止されています。Fulcio と Rekor の詳細は、https://github.com/sigstore/fulcio および https://github.com/sigstore/rekor のドキュメントを参照してください。 |
|
|
| policyType は検証のポリシーの種類を指定する必須フィールドです。このフィールドは、ポリシーの生成方法と一致する必要があります。使用可能な値は、"PublicKey"、"FulcioCAWithRekor"、および "PKI".です。"PublicKey" に設定すると、ポリシーは sigstore publicKey に依存し、オプションで Rekor 検証を使用する場合があります。"FulcioCAWithRekor" に設定すると、ポリシーは Fulcio 認証に基づき、Rekor 検証が組み込まれます。"PKI" に設定すると、ポリシーは Bring Your Own 公開鍵基盤 (BYOPKI) からの証明書をベースにします。この値は、SigstoreImageVerificationPKI フィーチャーゲートをオンにすることで有効になります。 |
|
|
| publicKey は、sigstore 公開鍵に基づいて信頼のルート設定を定義します。必要に応じて、Rekor 検証用の Rekor 公開鍵を含めます。policyType が PublicKey の場合、publicKey は必須であり、それ以外の場合は禁止されます。 |
5.1.4. .spec.policy.rootOfTrust.fulcioCAWithRekor リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- fulcioCAWithRekor は、Fulcio 証明書と Rekor 公開鍵に基づいて信頼のルート設定を定義します。fulcioCAWithRekor は、policyType が FulcioCAWithRekor の場合に必須であり、それ以外の場合は禁止されています。Fulcio と Rekor の詳細は、https://github.com/sigstore/fulcio および https://github.com/sigstore/rekor のドキュメントを参照してください。
- 型
-
object - 必須
-
fulcioCAData -
fulcioSubject -
rekorKeyData
-
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| fulcioCAData は、PEM 形式の fulcio CA のインライン base64 エンコードデータが含まれる必須フィールドです。fulcioCAData は 8192 文字以下にする必要があります。 |
|
|
| fulcioSubject は、OIDC 発行者と Fulcio 認証設定のメールを指定する必須フィールドです。 |
|
|
| rekorKeyData は必須フィールドであり、Rekor 公開鍵からの PEM 形式のインライン base64 エンコードデータが含まれます。rekorKeyData は 8192 文字以下にする必要があります。 |
5.1.5. .spec.policy.rootOfTrust.fulcioCAWithRekor.fulcioSubject リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- fulcioSubject は、OIDC 発行者と Fulcio 認証設定のメールを指定する必須フィールドです。
- 型
-
object - 必須
-
oidcIssuer -
signedEmail
-
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| oidcIssuer は、予想される OIDC 発行者が含まれる必須フィールドです。oidcIssuer は有効な URL であり、最大長 2048 文字にする必要があります。Fulcio が発行した証明書に、この OIDC 発行者 URL を指す (Fulcio 定義の) 証明書拡張機能が含まれていることが検証されます。Fulcio が証明書を発行すると、クライアントが提供した ID トークン内に URL に基づく値が含まれます。例: "https://expected.OIDC.issuer/" |
|
|
| signedEmail は、Fulcio 証明書の発行対象となるメールアドレスを保持する必須フィールドです。signedEmail は有効なメールアドレスであり、最大長は 320 文字にする必要があります。例: "expected-signing-user@example.com" |
5.1.6. .spec.policy.rootOfTrust.publicKey リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- publicKey は、sigstore 公開鍵に基づいて信頼のルート設定を定義します。必要に応じて、Rekor 検証用の Rekor 公開鍵を含めます。policyType が PublicKey の場合、publicKey は必須であり、それ以外の場合は禁止されます。
- 型
-
object - 必須
-
keyData
-
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| keyData は必須フィールドであり、PEM 形式の公開鍵の base64 でエンコードされたインラインデータが含まれます。keyData は 8192 文字以下にする必要があります。 |
|
|
| rekorKeyData は、Rekor 公開鍵からの PEM 形式のインライン base64 エンコードデータを格納する任意のフィールドです。rekorKeyData は 8192 文字以下にする必要があります。 |
5.1.7. .spec.policy.signedIdentity リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- signedIdentity は、署名がイメージについて主張するイメージ ID を指定するためのオプションフィールドです。これは、署名内のイメージアイデンティティーが元のイメージ仕様と異なる場合に役立ちます。たとえば、ミラーレジストリーがイメージスコープ用に設定されている場合、ミラーレジストリーからの署名には元のスコープではなくミラーのイメージ ID が含まれます。必須の matchPolicy フィールドは、署名のアイデンティティーと実際のイメージアイデンティティーを検証するプロセスで使用されるアプローチを指定します。デフォルトの matchPolicy は "MatchRepoDigestOrExact" です。
- 型
-
object - 必須
-
matchPolicy
-
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| exactRepository は、署名内のアイデンティティーと完全一致する必要があるリポジトリーを指定します。matchPolicy が "ExactRepository" に設定されている場合は、exactRepository が必須です。これは、署名が元のイメージアイデンティティーではなく、このリポジトリーと完全一致するアイデンティティーを要求していることを確認するために使用されます。 |
|
|
| matchPolicy は必須フィールドで、署名内のイメージアイデンティティーをイメージスコープに対して検証するためのマッチングストラテジーを指定します。使用可能な値は、"MatchRepoDigestOrExact"、"MatchRepository"、"ExactRepository"、"RemapIdentity" です。省略した場合、デフォルト値は "MatchRepoDigestOrExact" です。"MatchRepoDigestOrExact" に設定すると、イメージアイデンティティーがダイジェストによって参照される場合、署名内のアイデンティティーはイメージアイデンティティーと同じリポジトリーに存在する必要があります。それ以外の場合、署名内のアイデンティティーはイメージアイデンティティーと同じである必要があります。"MatchRepository" に設定すると、署名内のアイデンティティーはイメージアイデンティティーと同じリポジトリーに存在する必要があります。"ExactRepository" に設定する場合、exactRepository を指定する必要があります。署名内のアイデンティティーは、"repository" で指定された特定のアイデンティティーと同じリポジトリーに存在する必要があります。"RemapIdentity" に設定する場合、remapIdentity を指定する必要があります。署名は、再マップされたイメージアイデンティティーと同じである必要があります。イメージ ID が指定された remapPrefix と一致する場合、"prefix" を指定された “signedPrefix” に置き換えることによって、再マップされたイメージアイデンティティーが取得されます。 |
|
|
| remapIdentity は、イメージアイデンティティーを検証するための接頭辞再マッピングルールを指定します。matchPolicy が "RemapIdentity" に設定されている場合は、remapIdentity が必須です。これは、署名が元のイメージとは異なるレジストリー/リポジトリー接頭辞を要求していることを確認するために使用されます。 |
5.1.8. .spec.policy.signedIdentity.exactRepository リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- exactRepository は、署名内のアイデンティティーと完全一致する必要があるリポジトリーを指定します。matchPolicy が "ExactRepository" に設定されている場合は、exactRepository が必須です。これは、署名が元のイメージアイデンティティーではなく、このリポジトリーと完全一致するアイデンティティーを要求していることを確認するために使用されます。
- 型
-
object - 必須
-
repository
-
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| repository は、一致させるイメージアイデンティティーの参照です。matchPolicy が "ExactRepository" に設定されている場合は、repository is が必須です。値は、"Docker Registry HTTP API V2" を実装するレジストリー内のリポジトリー名 (タグまたはダイジェストを省略) である必要があります。例: docker.io/library/busybox |
5.1.9. .spec.policy.signedIdentity.remapIdentity リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- remapIdentity は、イメージアイデンティティーを検証するための接頭辞再マッピングルールを指定します。matchPolicy が "RemapIdentity" に設定されている場合は、remapIdentity が必須です。これは、署名が元のイメージとは異なるレジストリー/リポジトリー接頭辞を要求していることを確認するために使用されます。
- 型
-
object - 必須
-
prefix -
signedPrefix
-
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| matchPolicy が "RemapIdentity" に設定されている場合は、prefix は必須です。prefix は、一致させるイメージ ID の接頭辞です。イメージアイデンティティーが指定された接頭辞と一致する場合、その接頭辞は指定された “signedPrefix” に置き換えられます (それ以外の場合は変更されずに使用され、再マッピングは行われません)。これは、ベンダーのリポジトリー構造を保持する他のリポジトリー namespace のミラーの署名を検証する場合に役立ちます。prefix と signedPrefix の値は、host[:port] 値 (host[:port] 文字列に完全一致)、リポジトリー namespace、またはリポジトリー (タグ/ダイジェストを含んではならない) のいずれかであり、完全に展開された形式の接頭辞として一致します。たとえば、単一のリポジトリーを指定するには docker.io/library/busybox (busybox だけ指定しない) とし、docker.io/library/busybox の親 namespace を指定するには docker.io/library (空の文字列を指定しない) とします。 |
|
|
| matchPolicy が "RemapIdentity" に設定されている場合、signedPrefix の指定が必須です。signedPrefix は、署名の照合時に一致させるイメージ ID の接頭辞を表します。形式は "prefix" と同じです。値は、host[:port] 値 (host[:port] 文字列に完全一致)、リポジトリー namespace、またはリポジトリー (タグ/ダイジェストを含んではならない) のいずれかであり、完全に展開された形式の接頭辞として一致します。たとえば、単一のリポジトリーを指定するには docker.io/library/busybox (busybox だけ指定しない) とし、docker.io/library/busybox の親 namespace を指定するには docker.io/library (空の文字列を指定しない) とします。 |
5.1.10. .status リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- status には、リソースの監視された状態が含まれます。
- 型
-
object
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| conditions は、この API リソースのステータスの詳細を提供します。 |
|
|
| condition には、この API Resource の現在の状態のある側面の詳細が含まれます。 |
5.1.11. .status.conditions リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- conditions は、この API リソースのステータスの詳細を提供します。
- 型
-
array
5.1.12. .status.conditions[] リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- condition には、この API Resource の現在の状態のある側面の詳細が含まれます。
- 型
-
object - 必須
-
lastTransitionTime -
message -
reason -
status -
type
-
| プロパティー | 型 | 説明 |
|---|---|---|
|
|
| lastTransitionTime は、ある状態から別の状態に最後に遷移した時間です。これは、基本的な条件が変更された時点となります。不明な場合には、API フィールドが変更された時点を使用することも可能です。 |
|
|
| message は、遷移の詳細を示す人が判読できるメッセージです。空の文字列の場合もあります。 |
|
|
| observedGeneration は、それをベースに条件が設定された .metadata.generation を表します。たとえば、.metadata.generation が現在 12 で、.status.conditions[x].observedGeneration が 9 の場合、インスタンスの現在の状態に対して条件が古くなっています。 |
|
|
| reason には、条件の最後の遷移の理由を示すプログラムによる識別子が含まれます。特定の条件タイプのプロデューサーは、このフィールドの期待値と意味、および値が保証された API と見なされるかどうかを定義できます。値は CamelCase 文字列である必要があります。このフィールドには空白を指定できません。 |
|
|
| 条件のステータス、True、False、Unknown のいずれか。 |
|
|
| CamelCase または foo.example.com/CamelCase の条件のタイプ。 |