第15章 ImagePolicy [config.openshift.io/v1]


説明

ImagePolicy はイメージ署名検証のための namespace 全体の設定を保持します。

互換性レベル 1: メジャーリリース内で最低 12 カ月または 3 つのマイナーリリース (どちらか長い方) で安定しています。

object
必須
  • spec

15.1. 仕様

Expand
プロパティー説明

apiVersion

string

apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。

kind

string

kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。

metadata

ObjectMeta

標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。

spec

object

spec は、ユーザーが設定可能な設定値を保持します。

status

object

status には、リソースの監視された状態が含まれます。

15.1.1. .spec

説明
spec は、ユーザーが設定可能な設定値を保持します。
object
必須
  • policy
  • scopes
Expand
プロパティー説明

policy

object

policy は、スコープの検証をできるようにするための設定が含まれ、検証ポリシーに一致しないイメージの処理方法を定義する必須フィールドです。

scopes

array (string)

scopes は、ポリシーに割り当てられるイメージアイデンティティーのリストを定義する必須フィールドです。各項目は、「Docker Registry HTTP API V2」を実装するレジストリー内のスコープを参照します。個々のイメージに一致するスコープは、タグまたはダイジェストを使用して完全に展開された形式で Docker 参照に名前が付けられます。たとえば、docker.io/library/busybox:latest (busybox:latest ではありません)。より一般的なスコープは、個々のイメージスコープの接頭辞です。このようなをスコープは、リポジトリー (タグまたはダイジェストを省略)、リポジトリー namespace、またはレジストリーホスト (ホスト名とポート番号のみを指定)、あるいはすべてのサブドメイン (ポート番号は含まない) に一致する *. で始まるワイルドカード式を指定します。ワイルドカードはサブドメインの照合でのみサポートされており、ホスト名の途中の部分では使用できません。つまり、*.example.com は有効ですが、example*.*.com は有効ではありません。1 つのオブジェクトで最大 256 個のスコープがサポートされます。複数のスコープが特定のイメージに一致する場合、最も具体的に一致するスコープのポリシー要件のみが適用されます。より広範なスコープのポリシー要件は無視されます。独自にデプロイしたアプリケーションに適したポリシーを設定することに加えて、OpenShift イメージリポジトリー quay.io/openshift-release-dev/ocp-release、quay.io/openshift-release-dev/ocp-v4.0-art-dev (またはより広範なスコープ) のポリシーで、クラスター操作に必要な OpenShift イメージのデプロイメントが許可されていることを確認します。ClusterImagePolicy と ImagePolicy の両方にスコープが設定されている場合、または ImagePolicy のスコープが ClusterImagePolicy のいずれかのスコープにネストされている場合は、ClusterImagePolicy のポリシーのみが適用されます。フォーマットの詳細は、docker トランスポートフィールドについて説明しているドキュメントを参照してください。このドキュメントは、https://github.com/containers/image/blob/main/docs/containers-policy.json.5.md#docker にあります。

15.1.2. .spec.policy

説明
policy は、スコープの検証をできるようにするための設定が含まれ、検証ポリシーに一致しないイメージの処理方法を定義する必須フィールドです。
object
必須
  • rootOfTrust
Expand
プロパティー説明

rootOfTrust

object

rootOfTrust は、取得中にイメージ署名を検証するための信頼のルートを定義する必須フィールドです。これにより、イメージのコンシューマーは、ポリシーが生成された方法に合わせて、policyType と対応するポリシー設定を指定できます。

signedIdentity

object

signedIdentity は、署名がイメージについて主張するイメージ ID を指定するためのオプションフィールドです。これは、署名内のイメージアイデンティティーが元のイメージ仕様と異なる場合に役立ちます。たとえば、ミラーレジストリーがイメージスコープ用に設定されている場合、ミラーレジストリーからの署名には元のスコープではなくミラーのイメージ ID が含まれます。必須の matchPolicy フィールドは、署名のアイデンティティーと実際のイメージアイデンティティーを検証するプロセスで使用されるアプローチを指定します。デフォルトの matchPolicy は "MatchRepoDigestOrExact" です。

15.1.3. .spec.policy.rootOfTrust

説明
rootOfTrust は、取得中にイメージ署名を検証するための信頼のルートを定義する必須フィールドです。これにより、イメージのコンシューマーは、ポリシーが生成された方法に合わせて、policyType と対応するポリシー設定を指定できます。
object
必須
  • policyType
Expand
プロパティー説明

fulcioCAWithRekor

object

fulcioCAWithRekor は、Fulcio 証明書と Rekor 公開鍵に基づいて信頼のルート設定を定義します。fulcioCAWithRekor は、policyType が FulcioCAWithRekor の場合に必須であり、それ以外の場合は禁止されています。Fulcio と Rekor の詳細は、https://github.com/sigstore/fulcio および https://github.com/sigstore/rekor のドキュメントを参照してください。

policyType

string

policyType は検証のポリシーの種類を指定する必須フィールドです。このフィールドは、ポリシーの生成方法と一致する必要があります。使用可能な値は、"PublicKey"、"FulcioCAWithRekor"、および "PKI".です。"PublicKey" に設定すると、ポリシーは sigstore publicKey に依存し、オプションで Rekor 検証を使用する場合があります。"FulcioCAWithRekor" に設定すると、ポリシーは Fulcio 認証に基づき、Rekor 検証が組み込まれます。"PKI" に設定すると、ポリシーは Bring Your Own 公開鍵基盤 (BYOPKI) からの証明書をベースにします。この値は、SigstoreImageVerificationPKI フィーチャーゲートをオンにすることで有効になります。

publicKey

object

publicKey は、sigstore 公開鍵に基づいて信頼のルート設定を定義します。必要に応じて、Rekor 検証用の Rekor 公開鍵を含めます。policyType が PublicKey の場合、publicKey は必須であり、それ以外の場合は禁止されます。

15.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
Expand
プロパティー説明

fulcioCAData

string

fulcioCAData は、PEM 形式の fulcio CA のインライン base64 エンコードデータが含まれる必須フィールドです。fulcioCAData は 8192 文字以下にする必要があります。

fulcioSubject

object

fulcioSubject は、OIDC 発行者と Fulcio 認証設定のメールを指定する必須フィールドです。

rekorKeyData

string

rekorKeyData は必須フィールドであり、Rekor 公開鍵からの PEM 形式のインライン base64 エンコードデータが含まれます。rekorKeyData は 8192 文字以下にする必要があります。

15.1.5. .spec.policy.rootOfTrust.fulcioCAWithRekor.fulcioSubject

説明
fulcioSubject は、OIDC 発行者と Fulcio 認証設定のメールを指定する必須フィールドです。
object
必須
  • oidcIssuer
  • signedEmail
Expand
プロパティー説明

oidcIssuer

string

oidcIssuer は、予想される OIDC 発行者が含まれる必須フィールドです。oidcIssuer は有効な URL であり、最大長 2048 文字にする必要があります。Fulcio が発行した証明書に、この OIDC 発行者 URL を指す (Fulcio 定義の) 証明書拡張機能が含まれていることが検証されます。Fulcio が証明書を発行すると、クライアントが提供した ID トークン内に URL に基づく値が含まれます。例: "https://expected.OIDC.issuer/"

signedEmail

string

signedEmail は、Fulcio 証明書の発行対象となるメールアドレスを保持する必須フィールドです。signedEmail は有効なメールアドレスであり、最大長は 320 文字にする必要があります。例: "expected-signing-user@example.com"

15.1.6. .spec.policy.rootOfTrust.publicKey

説明
publicKey は、sigstore 公開鍵に基づいて信頼のルート設定を定義します。必要に応じて、Rekor 検証用の Rekor 公開鍵を含めます。policyType が PublicKey の場合、publicKey は必須であり、それ以外の場合は禁止されます。
object
必須
  • keyData
Expand
プロパティー説明

keyData

string

keyData は必須フィールドであり、PEM 形式の公開鍵の base64 でエンコードされたインラインデータが含まれます。keyData は 8192 文字以下にする必要があります。

rekorKeyData

string

rekorKeyData は、Rekor 公開鍵からの PEM 形式のインライン base64 エンコードデータを格納する任意のフィールドです。rekorKeyData は 8192 文字以下にする必要があります。

15.1.7. .spec.policy.signedIdentity

説明
signedIdentity は、署名がイメージについて主張するイメージ ID を指定するためのオプションフィールドです。これは、署名内のイメージアイデンティティーが元のイメージ仕様と異なる場合に役立ちます。たとえば、ミラーレジストリーがイメージスコープ用に設定されている場合、ミラーレジストリーからの署名には元のスコープではなくミラーのイメージ ID が含まれます。必須の matchPolicy フィールドは、署名のアイデンティティーと実際のイメージアイデンティティーを検証するプロセスで使用されるアプローチを指定します。デフォルトの matchPolicy は "MatchRepoDigestOrExact" です。
object
必須
  • matchPolicy
Expand
プロパティー説明

exactRepository

object

exactRepository は、署名内のアイデンティティーと完全一致する必要があるリポジトリーを指定します。matchPolicy が "ExactRepository" に設定されている場合は、exactRepository が必須です。これは、署名が元のイメージアイデンティティーではなく、このリポジトリーと完全一致するアイデンティティーを要求していることを確認するために使用されます。

matchPolicy

string

matchPolicy は必須フィールドで、署名内のイメージアイデンティティーをイメージスコープに対して検証するためのマッチングストラテジーを指定します。使用可能な値は、"MatchRepoDigestOrExact"、"MatchRepository"、"ExactRepository"、"RemapIdentity" です。省略した場合、デフォルト値は "MatchRepoDigestOrExact" です。"MatchRepoDigestOrExact" に設定すると、イメージアイデンティティーがダイジェストによって参照される場合、署名内のアイデンティティーはイメージアイデンティティーと同じリポジトリーに存在する必要があります。それ以外の場合、署名内のアイデンティティーはイメージアイデンティティーと同じである必要があります。"MatchRepository" に設定すると、署名内のアイデンティティーはイメージアイデンティティーと同じリポジトリーに存在する必要があります。"ExactRepository" に設定する場合、exactRepository を指定する必要があります。署名内のアイデンティティーは、"repository" で指定された特定のアイデンティティーと同じリポジトリーに存在する必要があります。"RemapIdentity" に設定する場合、remapIdentity を指定する必要があります。署名は、再マップされたイメージアイデンティティーと同じである必要があります。イメージ ID が指定された remapPrefix と一致する場合、"prefix" を指定された “signedPrefix” に置き換えることによって、再マップされたイメージアイデンティティーが取得されます。

remapIdentity

object

remapIdentity は、イメージアイデンティティーを検証するための接頭辞再マッピングルールを指定します。matchPolicy が "RemapIdentity" に設定されている場合は、remapIdentity が必須です。これは、署名が元のイメージとは異なるレジストリー/リポジトリー接頭辞を要求していることを確認するために使用されます。

15.1.8. .spec.policy.signedIdentity.exactRepository

説明
exactRepository は、署名内のアイデンティティーと完全一致する必要があるリポジトリーを指定します。matchPolicy が "ExactRepository" に設定されている場合は、exactRepository が必須です。これは、署名が元のイメージアイデンティティーではなく、このリポジトリーと完全一致するアイデンティティーを要求していることを確認するために使用されます。
object
必須
  • repository
Expand
プロパティー説明

repository

string

repository は、一致させるイメージアイデンティティーの参照です。matchPolicy が "ExactRepository" に設定されている場合は、repository is が必須です。値は、"Docker Registry HTTP API V2" を実装するレジストリー内のリポジトリー名 (タグまたはダイジェストを省略) である必要があります。例: docker.io/library/busybox

15.1.9. .spec.policy.signedIdentity.remapIdentity

説明
remapIdentity は、イメージアイデンティティーを検証するための接頭辞再マッピングルールを指定します。matchPolicy が "RemapIdentity" に設定されている場合は、remapIdentity が必須です。これは、署名が元のイメージとは異なるレジストリー/リポジトリー接頭辞を要求していることを確認するために使用されます。
object
必須
  • prefix
  • signedPrefix
Expand
プロパティー説明

prefix

string

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 (空の文字列を指定しない) とします。

signedPrefix

string

matchPolicy が "RemapIdentity" に設定されている場合、signedPrefix の指定が必須です。signedPrefix は、署名の照合時に一致させるイメージ ID の接頭辞を表します。形式は "prefix" と同じです。値は、host[:port] 値 (host[:port] 文字列に完全一致)、リポジトリー namespace、またはリポジトリー (タグ/ダイジェストを含んではならない) のいずれかであり、完全に展開された形式の接頭辞として一致します。たとえば、単一のリポジトリーを指定するには docker.io/library/busybox (busybox だけ指定しない) とし、docker.io/library/busybox の親 namespace を指定するには docker.io/library (空の文字列を指定しない) とします。

15.1.10. .status

説明
status には、リソースの監視された状態が含まれます。
object
Expand
プロパティー説明

conditions

array

conditions は、この API リソースのステータスの詳細を提供します。条件タイプ 'Pending' は、お客様リソースに有効にできないポリシーが含まれていることを示します。グローバルポリシーによって上書きされているか、イメージスコープが無効です。

conditions[]

object

condition には、この API Resource の現在の状態のある側面の詳細が含まれます。

15.1.11. .status.conditions

説明
conditions は、この API リソースのステータスの詳細を提供します。条件タイプ 'Pending' は、お客様リソースに有効にできないポリシーが含まれていることを示します。グローバルポリシーによって上書きされているか、イメージスコープが無効です。
array

15.1.12. .status.conditions[]

説明
condition には、この API Resource の現在の状態のある側面の詳細が含まれます。
object
必須
  • lastTransitionTime
  • message
  • reason
  • status
  • type
Expand
プロパティー説明

lastTransitionTime

string

lastTransitionTime は、ある状態から別の状態に最後に遷移した時間です。これは、基本的な条件が変更された時点となります。不明な場合には、API フィールドが変更された時点を使用することも可能です。

message

string

message は、遷移の詳細を示す人が判読できるメッセージです。空の文字列の場合もあります。

observedGeneration

integer

observedGeneration は、それをベースに条件が設定された .metadata.generation を表します。たとえば、.metadata.generation が現在 12 で、.status.conditions[x].observedGeneration が 9 の場合、インスタンスの現在の状態に対して条件が古くなっています。

reason

string

reason には、条件の最後の遷移の理由を示すプログラムによる識別子が含まれます。特定の条件タイプのプロデューサーは、このフィールドの期待値と意味、および値が保証された API と見なされるかどうかを定義できます。値は CamelCase 文字列である必要があります。このフィールドには空白を指定できません。

status

string

条件のステータス、True、False、Unknown のいずれか。

type

string

CamelCase または foo.example.com/CamelCase の条件のタイプ。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat