9.3. イメージレジストリーの設定
image.config.openshift.io/cluster カスタムリソース (CR) を編集してイメージレジストリーの設定を行うことができます。
手順
以下のコマンドを実行して
image.config.openshift.io/clusterCR を編集します。oc edit image.config.openshift.io/cluster
$ oc edit image.config.openshift.io/clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は、
image.config.openshift.io/clusterCR の例になります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記allowedRegistries、blockedRegistriesまたはinsecureRegistriesパラメーターを使用する場合、レジストリー内に個別のリポジトリーを指定できます。例:reg1.io/myrepo/myapp:latest起こりうるセキュリティーリスクを軽減するために、非セキュアな外部レジストリーの使用を避けてください。
検証
変更を確認するには、以下のコマンドを実行してノードを一覧表示します。
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.1. 許可リストへの特定のレジストリーの追加 リンクのコピーリンクがクリップボードにコピーされました!
image.config.openshift.io/cluster カスタムリソース(CR)を編集して、イメージのプルおよびプッシュアクションのレジストリー内に、レジストリーの許可リストまたは個別のリポジトリーを追加できます。
OpenShift Container Platform は、この CR への変更をクラスター内のすべてのノードに適用します。
イメージをプルまたはプッシュする場合、コンテナーランタイムは image.config.openshift.io/cluster CR の registrySources パラメーターの下にリスト表示されるレジストリーを検索します。allowedRegistries パラメーターの下にレジストリーのリストを作成している場合、コンテナーランタイムはそれらのレジストリーのみを検索します。許可リストに含まれていないレジストリーはブロックされます。
allowedRegistries パラメーターを定義すると、明示的に一覧表示されない限り、registry.redhat.io、quay.io、およびデフォルトの OpenShift イメージレジストリーを含むすべてのレジストリーがブロックされます。ペイロードイメージが必要とするすべてのレジストリーを allowedRegistries 一覧に追加する必要があります。たとえば、registry.redhat.io、quay.io、および internalRegistryHostname レジストリーを一覧表示します。非接続クラスターの場合、ミラーレジストリーも追加する必要があります。そうしないと、Pod の障害が伴います。
手順
以下のコマンドを実行して、
image.config.openshift.io/clusterカスタムリソースを編集します。oc edit image.config.openshift.io/cluster
$ oc edit image.config.openshift.io/clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は、許可リストを含む
image.config.openshift.io/clusterリソースの例になります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 設定の更新を行ったら、以下のコマンドを実行してノードを一覧表示します。
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ROLES AGE VERSION <node_name> Ready control-plane,master 37m v1.27.8+4fab27b
NAME STATUS ROLES AGE VERSION <node_name> Ready control-plane,master 37m v1.27.8+4fab27bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ノードでデバッグモードに入ります。
oc debug node/<node_name>
$ oc debug node/<node_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <node_name> はノード名に置き換えてください。
プロンプトが表示されたら、ターミナルに
chroot /hostを入力します。chroot /host
sh-4.4# chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、レジストリーがポリシーファイルにあることを確認します。
cat /etc/containers/policy.json | jq '.'
sh-5.1# cat /etc/containers/policy.json | jq '.'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のポリシーは、イメージのプルおよびプッシュで、
example.com、quay.io、およびregistry.redhat.ioレジストリーからのイメージにのみアクセスできることを示しています。イメージ署名ポリシーファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記クラスターが
registrySources.insecureRegistriesパラメーターを使用する場合、非セキュアなレジストリーが許可リストに含まれることを確認します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.2. 特定のレジストリーのブロック リンクのコピーリンクがクリップボードにコピーされました!
image.config.openshift.io/cluster カスタムリソース(CR)を編集してレジストリーまたはレジストリー内の個々のリポジトリーをブロックできます。
OpenShift Container Platform は、この CR への変更をクラスター内のすべてのノードに適用します。
イメージをプルまたはプッシュする場合、コンテナーランタイムは image.config.openshift.io/cluster CR の registrySources パラメーターの下にリスト表示されるレジストリーを検索します。blockedRegistries パラメーターの下にレジストリーのリストを作成した場合、コンテナーランタイムはそれらのレジストリーを検索しません。他のすべてのレジストリーは許可されます。
Pod の失敗を防ぐために、registry.redhat.io および quay.io レジストリーを blockedRegistries 一覧に追加しないでください。環境内のペイロードイメージには、これらのレジストリーへのアクセスが必要です。
手順
以下のコマンドを実行して、
image.config.openshift.io/clusterカスタムリソースを編集します。oc edit image.config.openshift.io/cluster
$ oc edit image.config.openshift.io/clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は、ブロックリストを含む
image.config.openshift.io/clusterCR の例です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow blockedRegistriesおよびallowedRegistriesパラメーターの両方を設定することはできません。どちらか一方を選択する必要があります。次のコマンドを実行して、ノードの一覧を取得します。
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ROLES AGE VERSION <node_name> Ready control-plane,master 37m v1.27.8+4fab27b
NAME STATUS ROLES AGE VERSION <node_name> Ready control-plane,master 37m v1.27.8+4fab27bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行し、ノード上でデバッグモードに入ります。
oc debug node/<node_name>
$ oc debug node/<node_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <node_name> は、詳細が必要なノードの名前に置き換えます。
プロンプトが表示されたら、ターミナルに
chroot /hostを入力します。chroot /host
sh-4.4# chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、レジストリーがポリシーファイルにあることを確認します。
cat etc/containers/registries.conf
sh-5.1# cat etc/containers/registries.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例では、
untrusted.comレジストリーからのイメージがイメージのプルおよびプッシュでブロックされていることを示しています。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.3. ペイロードレジストリーのブロック リンクのコピーリンクがクリップボードにコピーされました!
ミラーリング設定では、ImageContentSourcePolicy (ICSP)オブジェクトを使用して、切断された環境でアップストリームペイロードレジストリーをブロックできます。以下の手順例は、quay.io/openshift-payload ペイロードレジストリーをブロックする方法を示しています。
手順
ImageContentSourcePolicy(ICSP) オブジェクトを使用してミラー設定を作成し、ペイロードをインスタンスのレジストリーにミラーリングします。以下の ICSP ファイルの例は、ペイロードinternal-mirror.io/openshift-payloadをミラーリングします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトがノードにデプロイされたら、
/etc/containers/registries.confカスタムリソース(CR)をチェックして、ミラー設定が設定されていることを確認します。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して
image.config.openshift.ioCR を編集します。oc edit image.config.openshift.io cluster
$ oc edit image.config.openshift.io clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow ペイロードレジストリーをブロックするには、次の設定を
image.config.openshift.ioCR に追加します。spec: registrySources: blockedRegistries: - quay.io/openshift-payloadspec: registrySources: blockedRegistries: - quay.io/openshift-payloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ノードの
/etc/containers/registries.confファイルをチェックして、上流のペイロードレジストリーがブロックされていることを確認します。/etc/containers/registries.confファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.4. 非セキュアなレジストリー リンクのコピーリンクがクリップボードにコピーされました!
image.config.openshift.io/cluster カスタムリソース(CR)を編集して、非セキュアなレジストリー、またはレジストリー内に個別のリポジトリーを追加できます。
OpenShift Container Platform は、この CR への変更をクラスター内のすべてのノードに適用します。有効な SSL 証明書を使用しないレジストリー、または HTTPS 接続を必要としないレジストリーは、非セキュアであると見なされます。
起こりうるセキュリティーリスクを軽減するために、非セキュアな外部レジストリーの使用を避けてください。
+ :leveloffset: +1
allowedRegistries パラメーターを定義すると、明示的に一覧表示されない限り、registry.redhat.io、quay.io、およびデフォルトの OpenShift イメージレジストリーを含むすべてのレジストリーがブロックされます。ペイロードイメージが必要とするすべてのレジストリーを allowedRegistries 一覧に追加する必要があります。たとえば、registry.redhat.io、quay.io、および internalRegistryHostname レジストリーを一覧表示します。非接続クラスターの場合、ミラーレジストリーも追加する必要があります。そうしないと、Pod の障害が伴います。
手順
以下のコマンドを実行して、
image.config.openshift.io/clusterカスタムリソース(CR)を編集します。oc edit image.config.openshift.io/cluster
$ oc edit image.config.openshift.io/clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は、非セキュアなレジストリーのリストを含む
image.config.openshift.io/clusterCR の例になります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ノードで以下のコマンドを実行して、レジストリーがポリシーファイルに追加されていることを確認します。
cat /etc/containers/registries.conf
$ cat /etc/containers/registries.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例は、
insecure.comレジストリーからのイメージが非セキュアであり、イメージのプルおよびプッシュで許可されることを示しています。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow