第5章 クラスターイメージポリシー [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 は、スコープの検証を許可するための設定が含まれ、検証ポリシーに一致しないイメージの処理方法を定義する必須フィールドです。 |
|
|
スコープは、ポリシーに割り当てられるイメージアイデンティティーのリストを定義する必須フィールドです。各項目は、Docker Registry HTTP API V2 を実装するレジストリー内のスコープを参照します。個々のイメージに一致するスコープは、タグまたはダイジェストを使用して完全に展開された形式で Docker 参照に名前が付けられます。たとえば、docker.io/library/busybox:latest (busybox:latest ではありません)。より一般的なスコープは、個々のイメージスコープの接頭辞であり、リポジトリー (タグまたはダイジェストを省略)、リポジトリー名前空間、またはレジストリーホスト (ホスト名とポート番号のみを指定)、あるいはすべてのサブドメイン (ポート番号は含まない) に一致する |
5.1.2. .spec.policy リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- policy は、スコープの検証を許可するための設定が含まれ、検証ポリシーに一致しないイメージの処理方法を定義する必須フィールドです。
- 型
-
object
- 必須
-
信頼のルート
-
プロパティー | 型 | 説明 |
---|---|---|
|
| rootOfTrust は、取得中にイメージ署名を検証するための信頼のルートを定義する必須フィールドです。これにより、イメージのコンシューマーは、ポリシーが生成された方法に応じて、ポリシータイプと対応するポリシー設定を指定できます。 |
|
| signed アイデンティティーは、署名がイメージについて主張するイメージ ID を指定するためのオプションフィールドです。これは、署名内のイメージアイデンティティーが元のイメージ仕様と異なる場合に役立ちます。たとえば、ミラーレジストリーがイメージスコープ用に設定されている場合、ミラーレジストリーからの署名には元のスコープではなくミラーのイメージ ID が含まれます。必須の matchPolicy フィールドは、署名のアイデンティティーと実際のイメージアイデンティティーを検証するために検証プロセスで使用されるアプローチを指定します。デフォルトの matchPolicy は "MatchRepoDigestOrExact" です。 |
5.1.3. .spec.policy.rootOfTrust リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- rootOfTrust は、取得中にイメージ署名を検証するための信頼のルートを定義する必須フィールドです。これにより、イメージのコンシューマーは、ポリシーが生成された方法に応じて、ポリシータイプと対応するポリシー設定を指定できます。
- 型
-
object
- 必須
-
ポリシータイプ
-
プロパティー | 型 | 説明 |
---|---|---|
|
| 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
- 必須
-
fulcioCA データ
-
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
- 必須
-
oidc 発行者
-
署名済みメール
-
プロパティー | 型 | 説明 |
---|---|---|
|
| 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 は必須フィールドであり、PEM 形式の公開鍵の base64 でエンコードされたインラインデータが含まれます。keyData は最大 8192 文字にする必要があります。 |
|
| rekorKeyData は、Rekor 公開鍵からの PEM 形式のインライン base64 エンコードデータを格納するオプションフィールドです。rekorKeyData は最大 8192 文字にする必要があります。 |
5.1.7. .spec.policy.signedIdentity リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- signed アイデンティティーは、署名がイメージについて主張するイメージ ID を指定するためのオプションフィールドです。これは、署名内のイメージアイデンティティーが元のイメージ仕様と異なる場合に役立ちます。たとえば、ミラーレジストリーがイメージスコープ用に設定されている場合、ミラーレジストリーからの署名には元のスコープではなくミラーのイメージ ID が含まれます。必須の matchPolicy フィールドは、署名のアイデンティティーと実際のイメージアイデンティティーを検証するために検証プロセスで使用されるアプローチを指定します。デフォルトの matchPolicy は "MatchRepoDigestOrExact" です。
- 型
-
object
- 必須
-
matchPolicy
-
プロパティー | 型 | 説明 |
---|---|---|
|
| exactRepository は、署名内のアイデンティティーと正確に一致する必要があるリポジトリーを指定します。matchPolicy が "ExactRepository" に設定されている場合は、exactRepository が必須です。これは、署名が元のイメージアイデンティティーではなく、このリポジトリーと正確に一致するアイデンティティーを主張していることを確認するために使用されます。 |
|
| matchPolicy は、署名内のイメージアイデンティティーをイメージスコープに対して検証するためのマッチングストラテジーを指定する必須フィールドです。許可される値は、MatchRepoDigestOrExact、MatchRepository、ExactRepository、RemapIdentity です。省略した場合、デフォルト値は MatchRepoDigestOrExact です。MatchRepoDigestOrExact に設定すると、イメージアイデンティティーがダイジェストによって参照される場合、署名内のアイデンティティーはイメージアイデンティティーと同じリポジトリーに存在する必要があります。それ以外の場合、署名内のアイデンティティーはイメージアイデンティティーと同じである必要があります。MatchRepository に設定すると、署名内のアイデンティティーはイメージアイデンティティーと同じリポジトリーに存在する必要があります。ExactRepository に設定する場合、exactRepository を指定する必要があります。署名内のアイデンティティーは、リポジトリーで指定された特定のアイデンティティーと同じリポジトリーに存在する必要があります。RemapIdentity に設定する場合、remapIdentity を指定する必要があります。署名は、再マップされたイメージアイデンティティーと同じである必要があります。イメージ ID が指定された remapPrefix と一致する場合、prefix を指定された signedPrefix に置き換えることによって、再マップされたイメージアイデンティティーが取得されます。 |
|
| remapIdentity は、イメージアイデンティティーを検証するための接頭辞再マッピングルールを指定します。matchPolicy が "RemapIdentity" に設定されている場合は、remapIdentity が必須です。これは、署名が元のイメージとは異なるレジストリー/リポジトリー接頭辞を要求していることを確認するために使用されます。 |
5.1.8. .spec.policy.signedIdentity.exactRepository リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- exactRepository は、署名内のアイデンティティーと正確に一致する必要があるリポジトリーを指定します。matchPolicy が "ExactRepository" に設定されている場合は、exactRepository が必須です。これは、署名が元のイメージアイデンティティーではなく、このリポジトリーと正確に一致するアイデンティティーを主張していることを確認するために使用されます。
- 型
-
object
- 必須
-
repository
-
プロパティー | 型 | 説明 |
---|---|---|
|
| リポジトリーは、一致させるイメージアイデンティティーの参照です。matchPolicy が "ExactRepository" に設定されている場合は、リポジトリーが必要です。値は、Docker Registry HTTP API V2 を実装するレジストリー内のリポジトリー名 (タグまたはダイジェストを省略) である必要があります。たとえば、docker.io/library/busybox |
5.1.9. .spec.policy.signedIdentity.remapIdentity リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- remapIdentity は、イメージアイデンティティーを検証するための接頭辞再マッピングルールを指定します。matchPolicy が "RemapIdentity" に設定されている場合は、remapIdentity が必須です。これは、署名が元のイメージとは異なるレジストリー/リポジトリー接頭辞を要求していることを確認するために使用されます。
- 型
-
object
- 必須
-
prefix
-
署名された接頭辞
-
プロパティー | 型 | 説明 |
---|---|---|
|
| matchPolicy が "Remap アイデンティティー " に設定されている場合は、接頭辞が必要です。接頭辞は、一致させるイメージ ID の接頭辞です。イメージアイデンティティーが指定された接頭辞と一致する場合、その接頭辞は指定された signedPrefix に置き換えられます (それ以外の場合は変更されずに使用され、再マッピングは行われません)。これは、ベンダーのリポジトリー構造を保持する他のリポジトリー名前空間のミラーの署名を検証する場合に役立ちます。prefix と signedPrefix の値は、host[:port] 値 (まったく同じ host[:port] 文字列に一致)、リポジトリー名前空間、またはリポジトリー (つまり、タグ/ダイジェストを含んではならない) のいずれかであり、完全に展開された形式の接頭辞として一致します。たとえば、単一のリポジトリーを指定するには docker.io/library/busybox (busybox ではありません) とし、docker.io/library/busybox の親名前空間を指定するには docker.io/library (空の文字列ではありません) とします。 |
|
| matchPolicy が "Remap アイデンティティー " に設定されている場合は、signedPrefix が必要です。signedPrefix は、署名で一致されるイメージ ID の接頭辞です。形式は prefix と同じです。値は、ホスト [:port] 値 (まったく同じホスト [:port]、文字列に一致)、リポジトリー名前空間、またはリポジトリー (つまり、タグ/ダイジェストを含んではならない) のいずれかであり、完全に展開された形式の接頭辞として一致します。たとえば、単一のリポジトリーを指定するには docker.io/library/busybox (busybox ではありません) とし、docker.io/library/busybox の親名前空間を指定するには docker.io/library (空の文字列ではありません) とします。 |
5.1.10. .status リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- status には、リソースの監視された状態が含まれます。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| 条件は、この API リソースのステータスの詳細を提供します。 |
|
| condition には、この API Resource の現在の状態のある側面の詳細が含まれます。 |
5.1.11. .status.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 の条件のタイプ。 |