This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.2.4. コンテナーイメージの署名
Red Hat は、Red Hat Container Registry でイメージの署名を提供します。これらの署名は、Machine Config Operator (MCO) を使用して OpenShift Container Platform 4 クラスターにプルされる際に自動的に検証されます。
Quay.io は OpenShift Container Platform を設定するほとんどのイメージを提供し、リリースイメージのみが署名されます。リリースイメージは承認済みの OpenShift Container Platform イメージを参照するため、サプライチェーン攻撃からの一定レベルの保護が得られます。ただし、ロギング、モニタリング、サービスメッシュなどの OpenShift Container Platform への拡張機能の一部は、Operator Lifecycle Manager (OLM) から Operator として提供されます。それらのイメージは、Red Hat Ecosystem Catalog Container イメージ レジストリーから提供されます。
Red Hat レジストリーとインフラストラクチャー間のイメージの整合性を確認するには、署名の検証を有効にします。
2.4.1. Red Hat Container Registry の署名の検証の有効化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Container レジストリーのコンテナー署名の検証を有効にするには、これらのレジストリーからのイメージを検証するキーを指定する署名検証ポリシーファイルを作成する必要があります。RHEL8 ノードの場合、レジストリーはデフォルトで /etc/containers/registries.d
にすでに定義されています。
手順
ワーカーノードに必要な設定を含む Butane 設定ファイル
51-worker-rh-registry-trust.bu
を作成します。注記Butane の詳細は、Butane を使用したマシン設定の作成を参照してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Butane を使用して、ワーカーノードのディスクに書き込まれるファイルが含まれるように、マシン設定 YAML ファイル
51-worker-rh-registry-trust.yaml
を生成します。butane 51-worker-rh-registry-trust.bu -o 51-worker-rh-registry-trust.yaml
$ butane 51-worker-rh-registry-trust.bu -o 51-worker-rh-registry-trust.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成されたマシン設定を適用します。
oc apply -f 51-worker-rh-registry-trust.yaml
$ oc apply -f 51-worker-rh-registry-trust.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ワーカーマシン設定プールが新しいマシン設定でロールアウトされていることを確認します。
新しいマシン設定が作成されたことを確認します。
oc get mc
$ oc get mc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ワーカーマシン設定プールが新しいマシン設定で更新されていることを確認します。
oc get mcp
$ oc get mcp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-af1e7ff78da0a9c851bab4be2777773b True False False 3 3 3 0 30m worker rendered-worker-be3b3bce4f4aa52a62902304bac9da3c False True False 3 0 0 0 30m
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-af1e7ff78da0a9c851bab4be2777773b True False False 3 3 3 0 30m worker rendered-worker-be3b3bce4f4aa52a62902304bac9da3c False True False 3 0 0 0 30m
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
UPDATING
フィールドがTrue
の場合、マシン設定プールは新しいマシン設定で更新されます。フィールドがFalse
になると、ワーカーマシン設定プールが新しいマシン設定にロールアウトされます。
クラスターが RHEL7 ワーカーノードを使用している場合、ワーカーマシンの設定プールが更新されたら、それらのノードに YAML ファイルを
/etc/containers/registries.d
ディレクトリーに作成します。これにより、特定のレジストリーサーバーの切り離された署名の場所が指定されます。次の例は、registry.access.redhat.com
およびregistry.redhat.io
でホストされているイメージに対してのみ機能します。各 RHEL7 ワーカーノードへのデバッグセッションを開始します。
oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ルートディレクトリーを
/host
に変更します。chroot /host
sh-4.2# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を含む
/etc/containers/registries.d/registry.redhat.io.yaml
ファイルを作成します。docker: registry.redhat.io: sigstore: https://registry.redhat.io/containers/sigstore
docker: registry.redhat.io: sigstore: https://registry.redhat.io/containers/sigstore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を含む
/etc/containers/registries.d/registry.access.redhat.com.yaml
ファイルを作成します。docker: registry.access.redhat.com: sigstore: https://access.redhat.com/webassets/docker/content/sigstore
docker: registry.access.redhat.com: sigstore: https://access.redhat.com/webassets/docker/content/sigstore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - デバッグセッションを終了します。
2.4.2. 署名の検証設定の確認 リンクのコピーリンクがクリップボードにコピーされました!
マシン設定をクラスターに適用すると、Machine Config Controller は新規の MachineConfig
オブジェクトを検出し、新規の rendered-worker-<hash>
バージョンを生成します。
前提条件
- マシン設定ファイルを使用して署名の検証を有効にしている。
手順
コマンドラインで以下のコマンドを実行し、必要なワーカーの情報を表示します。
oc describe machineconfigpool/worker
$ oc describe machineconfigpool/worker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 初期ワーカーモニタリングの出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc describe
コマンドを再度実行します。oc describe machineconfigpool/worker
$ oc describe machineconfigpool/worker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ワーカーの更新後の出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Observed Generation
パラメーターは、コントローラーで作成される設定の生成に基づいて増加するカウントを表示します。このコントローラーは、仕様の処理とリビジョンの生成に失敗する場合でも、この値を更新します。Configuration Source
値は51-worker-rh-registry-trust
設定を参照します。以下のコマンドを使用して、
policy.json
ファイルが存在することを確認します。oc debug node/<node> -- chroot /host cat /etc/containers/policy.json
$ oc debug node/<node> -- chroot /host cat /etc/containers/policy.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して、
registry.redhat.io.yaml
ファイルが存在することを確認します。oc debug node/<node> -- chroot /host cat /etc/containers/registries.d/registry.redhat.io.yaml
$ oc debug node/<node> -- chroot /host cat /etc/containers/registries.d/registry.redhat.io.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Starting pod/<node>-debug ... To use host binaries, run `chroot /host` docker: registry.redhat.io: sigstore: https://registry.redhat.io/containers/sigstore
Starting pod/<node>-debug ... To use host binaries, run `chroot /host` docker: registry.redhat.io: sigstore: https://registry.redhat.io/containers/sigstore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して、
registry.access.redhat.com.yaml
ファイルが存在することを確認します。oc debug node/<node> -- chroot /host cat /etc/containers/registries.d/registry.access.redhat.com.yaml
$ oc debug node/<node> -- chroot /host cat /etc/containers/registries.d/registry.access.redhat.com.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Starting pod/<node>-debug ... To use host binaries, run `chroot /host` docker: registry.access.redhat.com: sigstore: https://access.redhat.com/webassets/docker/content/sigstore
Starting pod/<node>-debug ... To use host binaries, run `chroot /host` docker: registry.access.redhat.com: sigstore: https://access.redhat.com/webassets/docker/content/sigstore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow