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 레지스트리를 나열합니다. 연결이 끊긴 클러스터의 경우 미러 레지스트리도 추가해야 합니다. 그렇지 않으면 포드가 고장날 위험이 있습니다.
프로세스
다음 명령을 실행하여
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 구성을 업데이트한 후 다음 명령을 실행하여 노드를 나열합니다.
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 매개변수 아래에 레지스트리 목록을 생성한 경우 컨테이너 런타임에서 해당 레지스트리를 검색하지 않습니다. 다른 모든 레지스트리는 허용됩니다.
포드 실패를 방지하려면 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/cluster리소스의 예입니다.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 페이로드 레지스트리를 차단하는 방법을 보여줍니다.
프로세스
ICSP(
ImageContentSourcePolicy) 오브젝트를 사용하여 미러 구성을 생성하여 인스턴스의 레지스트리에 페이로드를 미러링합니다. 다음 예제 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 레지스트리를 나열합니다. 연결이 끊긴 클러스터의 경우 미러 레지스트리도 추가해야 합니다. 그렇지 않으면 포드가 고장날 위험이 있습니다.
프로세스
다음 명령을 실행하여
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