16장. Pod에서 취약점 스캔
Red Hat Quay Container Security Operator를 사용하면 OpenShift Container Platform 웹 콘솔에서 클러스터의 활성 Pod에 사용되는 컨테이너 이미지의 취약점 검사 결과에 액세스할 수 있습니다. Red Hat Quay Container Security Operator:
- 모든 네임스페이스 또는 지정된 네임스페이스에서 Pod와 관련된 컨테이너 감시
- 이미지의 레지스트리에서 이미지 스캔(예: Clair 스캔을 사용하는 Quay.io 또는 Red Hat Quay 레지스트리)이 실행 중인 경우 컨테이너가 있는 컨테이너 레지스트리에서 취약점 정보를 조회합니다.
-
Kubernetes API의
ImageManifestVuln
오브젝트를 통해 취약점 노출
여기 지침을 사용하여 Red Hat Quay Container Security Operator는 openshift-operators
네임스페이스에 설치되므로 OpenShift Container Platform 클러스터의 모든 네임스페이스에서 사용할 수 있습니다.
16.1. Red Hat Quay Container Security Operator 설치
OpenShift Container Platform 웹 콘솔 Operator Hub에서 또는 CLI를 사용하여 Red Hat Quay Container Security Operator를 설치할 수 있습니다.
사전 요구 사항
-
oc
CLI를 설치했습니다. - OpenShift Container Platform 클러스터에 대한 관리자 권한이 있습니다.
- 클러스터에서 실행되는 Red Hat Quay 또는 Quay.io 레지스트리에서 제공되는 컨테이너가 있습니다.
프로세스
OpenShift Container Platform 웹 콘솔을 사용하여 Red Hat Quay Container Security Operator를 설치할 수 있습니다.
-
웹 콘솔에서 Operator
OperatorHub 로 이동하여 보안 을 선택합니다. - Red Hat Quay Container Security Operator 를 선택한 다음 설치를 선택합니다.
-
Red Hat Quay Container Security Operator 페이지에서 설치를 선택합니다. 업데이트 채널,설치 모드 및 업데이트 승인이 자동으로 선택됩니다. 설치된 네임스페이스 필드의 기본값은
openshift-operators
입니다. 필요에 따라 이러한 설정을 조정할 수 있습니다. - 설치를 선택합니다. Red Hat Quay Container Security Operator 는 설치된 Operator 페이지에 잠시 후에 표시됩니다.
선택 사항: Red Hat Quay Container Security Operator에 사용자 정의 인증서를 추가할 수 있습니다. 예를 들어 현재 디렉터리에
quay.crt
라는 인증서를 생성합니다. 그런 다음 다음 명령을 실행하여 Red Hat Quay Container Security Operator에 사용자 정의 인증서를 추가합니다.$ oc create secret generic container-security-operator-extra-certs --from-file=quay.crt -n openshift-operators
- 선택 사항: 사용자 정의 인증서를 추가한 경우 새 인증서를 적용하기 위해 Red Hat Quay Container Security Operator Pod를 다시 시작합니다.
-
웹 콘솔에서 Operator
또는 CLI를 사용하여 Red Hat Quay Container Security Operator를 설치할 수 있습니다.
다음 명령을 입력하여 Container Security Operator의 최신 버전 및 해당 채널을 검색합니다.
$ oc get packagemanifests container-security-operator \ -o jsonpath='{range .status.channels[*]}{@.currentCSV} {@.name}{"\n"}{end}' \ | awk '{print "STARTING_CSV=" $1 " CHANNEL=" $2 }' \ | sort -nr \ | head -1
출력 예
STARTING_CSV=container-security-operator.v3.8.9 CHANNEL=stable-3.8
이전 명령의 출력을 사용하여 Red Hat Quay Container Security Operator에 대한
Subscription
사용자 정의 리소스를 생성하여container-security-operator.yaml
로 저장합니다. 예를 들면 다음과 같습니다.apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: container-security-operator namespace: openshift-operators spec: channel: ${CHANNEL} 1 installPlanApproval: Automatic name: container-security-operator source: redhat-operators sourceNamespace: openshift-marketplace startingCSV: ${STARTING_CSV} 2
다음 명령을 입력하여 구성을 적용합니다.
$ oc apply -f container-security-operator.yaml
출력 예
subscription.operators.coreos.com/container-security-operator created