Menu Close

9.2.3. 非セキュアなレジストリー

image.config.openshift.io/cluster カスタムリソース (CR) を編集して、非セキュアなレジストリー、およびオプションでレジストリー内の個別のリポジトリーを追加できます。OpenShift Container Platform は、この CR への変更をクラスター内のすべてのノードに適用します。

有効な SSL 証明書を使用しないレジストリー、または HTTPS 接続を必要としないレジストリーは、非セキュアであると見なされます。

警告

セキュリティー上のリスクを軽減するために、非セキュアな外部レジストリーは回避する必要があります。

手順

  1. image.config.openshift.io/cluster CR を編集します。

    $ oc edit image.config.openshift.io/cluster

    以下は、非セキュアなレジストリーのリストを含む image.config.openshift.io/cluster CR の例になります。

    apiVersion: config.openshift.io/v1
    kind: Image
    metadata:
      annotations:
        release.openshift.io/create-only: "true"
      creationTimestamp: "2019-05-17T13:44:26Z"
      generation: 1
      name: cluster
      resourceVersion: "8302"
      selfLink: /apis/config.openshift.io/v1/images/cluster
      uid: e34555da-78a9-11e9-b92b-06d6c7da38dc
    spec:
      registrySources: 1
        insecureRegistries: 2
        - insecure.com
        - reg4.io/myrepo/myapp:latest
        allowedRegistries:
        - example.com
        - quay.io
        - registry.redhat.io
        - insecure.com 3
        - reg4.io/myrepo/myapp:latest
        - image-registry.openshift-image-registry.svc:5000
    status:
      internalRegistryHostname: image-registry.openshift-image-registry.svc:5000
    1
    コンテナーランタイムがビルドおよび Pod のイメージへのアクセス時に個々のレジストリーを処理する方法を決定する設定が含まれます。内部クラスターレジストリーの設定は含まれません。
    2
    非セキュアなレジストリーを指定します。そのレジストリーでリポジトリーを指定できます。
    3
    非セキュアなレジストリーが allowedRegistries 一覧に含まれていることを確認します。
    注記

    allowedRegistries パラメーターが定義されると、明示的に一覧表示されない限り、registry.redhat.io レジストリーと quay.io レジストリー、およびデフォルトの内部イメージレジストリーを含むすべてのレジストリーがブロックされます。パラメーターを使用する場合は、Pod の失敗を防ぐために、registry.redhat.io レジストリーと quay.io レジストリー、および internalRegistryHostname を含むすべてのレジストリーを allowedRegistries 一覧に追加します。これらは、お使いの環境内のペイロードイメージで必要とされます。非接続クラスターの場合、ミラーレジストリーも追加する必要があります。

    Machine Config Operator (MCO) は、image.config.openshift.io/cluster CR でレジストリーへの変更の有無を監視し、変更を検出するとノードをドレイン (解放) し、遮断を解除します。ノードが Ready 状態に戻った後に、非セキュアな、およびブロックされたレジストリーへの変更は、各ノードの /etc/containers/registries.conf ファイルに表示されます。

  2. レジストリーがポリシーファイルに追加されていることを確認するには、ノードで以下のコマンドを使用します。

    $ cat /host/etc/containers/registries.conf

    以下の例は、insecure.com レジストリーからのイメージが非セキュアであり、イメージのプルおよびプッシュで許可されることを示しています。

    出力例

    unqualified-search-registries = ["registry.access.redhat.com", "docker.io"]
    
    [[registry]]
      prefix = ""
      location = "insecure.com"
      insecure = true