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/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 매개변수 아래에 레지스트리 목록을 생성한 경우 컨테이너 런타임에서 해당 레지스트리를 검색하지 않습니다. 다른 모든 레지스트리는 허용됩니다.
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/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. 페이로드 레지스트리 차단 링크 복사링크가 클립보드에 복사되었습니다!
미러링 구성에서 ICSP( ImageContentSourcePolicy ) 오브젝트를 사용하여 연결이 끊긴 환경의 업스트림 페이로드 레지스트리를 차단할 수 있습니다. 다음 예제 절차에서는 quay.io/openshift- payload 페이로드 레지스트리를 차단하는 방법을 보여줍니다.
프로세스
ICSP(
ImageContentSourcePolicy) 오브젝트를 사용하여 미러 구성을 생성하여 인스턴스의 레지스트리에 페이로드를 미러링합니다. 다음 예제 ICSP 파일은internal-mirror.io/openshift-payload를 미러링합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 오브젝트가 노드에 배포된 후
/etc/containers/registries.confCR(사용자 정의 리소스)을 확인하여 미러 구성이 설정되었는지 확인합니다.출력 예
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/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
검증
노드에서 다음 명령을 실행하여 정책 파일에 레지스트리가 추가되었는지 확인합니다.
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