9.2.3. 안전하지 않은 레지스트리 허용

image.config.openshift.io/cluster 사용자 정의 리소스(CR)를 편집하여 안전하지 않은 레지스트리를 추가할 수 있습니다. OpenShift Container Platform은 이 CR에 대한 변경 사항을 클러스터의 모든 노드에 적용합니다.

유효한 SSL 인증서를 사용하지 않거나 HTTPS 연결이 필요하지 않은 레지스트리는 안전하지 않은 레지스트리로 간주됩니다.

주의

가능한 보안 위험을 줄이려면 안전하지 않은 외부 레지스트리의 사용을 피해야합니다.

절차

  1. 다음과 같이 project.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
        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.ioquay.io 레지스트리 및 internalRegistryHostname 을 포함한 모든 레지스트리를 allowedRegistries 목록에 추가합니다. 연결 해제된 클러스터의 경우 미러 레지스트리도 추가해야 합니다.

    MCO(Machine Config Operator)는 레지스트리에 대한 변경 사항이 있는지 image.config.openshift.io/cluster CR을 감시하고 변경 사항이 탐지되면 노드를 재부팅합니다. 안전하지 않고 차단된 레지스트리에 대한 변경 사항은 각 노드의 /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