15.2. 위반 세부 정보 보기
Violations 보기에서 위반을 선택하면 위반에 대한 자세한 정보가 포함된 창이 열립니다. 여러 탭으로 그룹화된 자세한 정보를 제공합니다.
15.2.1. 위반 탭
격리 세부 정보 패널의 가시성 탭에서는 정책이 위반 된 방법을 설명합니다. 정책이 배포상 속성을 대상으로 하는 경우 정책 위반 이름과 같은 정책을 위반하는 특정 값을 볼 수 있습니다. 정책이 런타임 활동을 대상으로 하는 경우 인수를 비롯한 정책을 위반하는 프로세스에 대한 자세한 정보와 해당 인수를 생성한 상위 프로세스를 볼 수 있습니다.
15.2.2. 배포 탭
세부 정보 패널의 배포 탭에는 위반이 적용되는 배포에 대한 세부 정보가 표시됩니다.
개요 섹션
배포 개요 섹션에는 다음 정보가 나열됩니다.
- Deployment ID: 배포의 영숫자 식별자입니다.
- Deployment name: 배포 이름입니다.
- 배포 유형: 배포 유형입니다.
- Cluster: 컨테이너가 배포된 클러스터의 이름입니다.
- namespace: 배포된 클러스터의 고유 식별자입니다.
- replicas: 복제된 배포 수입니다.
- created: 배포가 생성된 시간 및 날짜입니다.
- updated: 배포가 업데이트된 시간 및 날짜입니다.
- labels: 선택한 배포에 적용되는 라벨입니다.
- annotations: 선택한 배포에 적용되는 주석입니다.
- Service Account: 선택한 배포에 대한 서비스 계정의 이름입니다.
컨테이너 구성 섹션
컨테이너 구성 섹션에는 다음 정보가 나열됩니다.
containers: 각 컨테이너마다 다음 정보를 제공합니다.
- Image name: 선택한 배포에 대한 이미지의 이름입니다. 이미지에 대한 자세한 정보를 보려면 이름을 클릭합니다.
resources: 이 섹션에서는 다음 필드에 대한 정보를 제공합니다.
- CPU 요청(코어): 컨테이너에서 요청한 코어 수입니다.
- CPU 제한(코어): 컨테이너에서 요청할 수 있는 최대 코어 수입니다.
- 메모리 요청(MB): 컨테이너에서 요청한 메모리 크기입니다.
- 메모리 제한(MB): 컨테이너에서 요청할 수 있는 최대 메모리입니다.
- volumes: 컨테이너에 마운트된 볼륨(있는 경우).
secrets: 선택한 배포와 관련된 시크릿입니다. 각 시크릿에 다음 필드에 대한 정보를 제공합니다.
- name: 시크릿의 이름입니다.
- 컨테이너 경로: 보안이 저장되는 위치입니다.
- name: 서비스를 마운트할 위치의 이름입니다.
- Source: 데이터 소스 경로입니다.
- destination: 데이터가 저장되는 경로입니다.
- type: 볼륨의 유형입니다.
포트 구성 섹션
포트 구성 섹션에서는 다음 필드를 포함하여 배포의 포트에 대한 정보를 제공합니다.
ports: 배포에서 노출된 모든 포트 및 이 배포 및 포트가 있는 경우 이 배포 및 포트와 연결된 모든 Kubernetes 서비스. 각 포트에 대해 다음 필드가 나열됩니다.
- containerPort: 배포에서 표시하는 포트 번호입니다.
- 프로토콜: 포트에서 사용하는 TCP 또는 UDP와 같은 프로토콜입니다.
- exposure: 서비스의 노출 방법(예: 로드 밸런서 또는 노드 포트)
exposureInfo: 이 섹션에서는 다음 필드에 대한 정보를 제공합니다.
- level: 서비스가 내부적으로 또는 외부에서 포트를 노출하는지 나타냅니다.
- ServiceName: Kubernetes 서비스의 이름입니다.
- ServiceID: RHACS에 저장된 Kubernetes 서비스의 ID입니다.
- serviceClusterIp: 클러스터 내 의 다른 배포 또는 서비스에서 서비스에 연결하는 데 사용할 수 있는 IP 주소입니다. 외부 IP 주소가 아닙니다.
- servicePort: 서비스에서 사용하는 포트입니다.
- NodePort: 외부 트래픽이 노드에 들어오는 노드의 포트입니다.
- externalIPs: 클러스터 외부에서 서비스에 액세스하는 데 사용할 수 있는 IP 주소입니다(있는 경우). 이 필드는 내부 서비스에 사용할 수 없습니다.
보안 컨텍스트 섹션
보안 컨텍스트 섹션에는 컨테이너가 권한 있는 컨테이너로 실행되는지 여부가 나열됩니다.
privileged:
-
권한이 있는 경우
true
입니다. -
권한이 없는 경우
false
입니다.
-
권한이 있는 경우
네트워크 정책 섹션
네트워크 정책 섹션에는 위반이 포함된 네임스페이스의 네임스페이스 및 모든 네트워크 정책이 나열됩니다. 네트워크 정책 이름을 클릭하여 네트워크 정책의 전체 YAML 파일을 확인합니다.
15.2.3. 정책 탭
세부 정보 패널의 정책 탭에는 위반을 초래한 정책의 세부 정보가 표시됩니다.
정책 개요 섹션
정책 개요 섹션에는 다음 정보가 나열되어 있습니다.
- 심각도: 필요한 관심 정도에 대한 정책의 순위(심각, 높음, 중간 또는 낮음)입니다.
-
categories: 정책의 정책 범주입니다. 정책 범주는 정책 범주 탭의 플랫폼 구성
정책 관리에 나열됩니다. - type: 정책이 사용자 생성(사용자에 의해 생성된 정책) 또는 시스템 정책(기본적으로 RHACS에 빌드됨)인지 여부입니다.
- Description: 정책 경고에 대한 자세한 설명입니다.
- 이유: 정책 설정 및 중요한 이유에 대한 정보입니다.
- 지침: 위반을 처리하는 방법에 대한 제안
- MITRE ATT&CK: 이 정책에 적용되는 MITRE 전략 및 기술이 있는지 여부를 나타냅니다.
정책 동작
Policy behavior 섹션에는 다음과 같은 정보가 있습니다.
-
라이프사이클 단계: 정책이 속하는 라이프사이클 단계,
빌드
,배포
또는런타임
. 이벤트 소스: 이 필드는 라이프사이클 단계가
Runtime
인 경우에만 적용됩니다. 다음 중 하나일 수 있습니다.- Deployment: RHACS는 이벤트 소스에 프로세스 및 네트워크 활동, pod exec 및 Pod 포트 전달이 포함된 경우 정책 위반을 트리거합니다.
- 감사 로그: RHACS는 이벤트 소스가 Kubernetes 감사 로그 레코드와 일치하는 경우 정책 위반을 트리거합니다.
응답: 응답은 다음 중 하나일 수 있습니다.
- 정보 정책 위반은 위반 목록에 위반을 생성합니다.
- 정보 및 적용: 위반이 적용됩니다.
적용: 응답을 Inform으로 설정하고 강제 적용하는 경우 다음 단계에 설정된 시행 유형을 나열합니다.
- Build: RHACS는 이미지가 정책의 기준과 일치할 때 CI(Continuous Integration) 빌드에 실패합니다.
배포 단계의 경우 RHACS는 RHACS 승인 컨트롤러가 구성되어 실행되는 경우 정책 조건과 일치하는 배포의 생성 및 업데이트를 차단합니다.
- 승인 컨트롤러 적용이 있는 클러스터에서 Kubernetes 또는 OpenShift Container Platform API 서버는 호환되지 않는 모든 배포를 차단합니다. 다른 클러스터에서 RHACS는 비호환 배포를 편집하여 Pod가 예약되지 않도록 합니다.
- 기존 배포의 경우 정책 변경으로 인해 Kubernetes 이벤트가 발생하는 경우 다음 기준을 탐지할 때만 적용됩니다. 적용 단계에 대한 자세한 내용은 "배포 단계에 대한 보안 정책 적용"을 참조하십시오.
- Runtime: RHACS는 Pod의 이벤트가 정책 기준과 일치하면 모든 Pod를 삭제합니다.
정책 기준 섹션
Policy criteria 섹션에는 정책에 대한 정책 기준이 나열됩니다.
15.2.3.1. 배포 단계에 대한 보안 정책 적용
Red Hat Advanced Cluster Security for Kubernetes는 배포 정책에 대한 두 가지 유형의 보안 정책 시행을 지원합니다. 즉, RHACS 센서의 승인 컨트롤러 및 소프트 시행을 통한 하드 시행입니다. 승인 컨트롤러는 정책을 위반하는 배포의 생성 또는 업데이트를 차단합니다. 승인 컨트롤러가 비활성화되거나 사용할 수 없는 경우 Sensor는 정책을 위반하는 배포의 복제본을 0
으로 축소하여 시행을 수행할 수 있습니다.
정책 적용은 실행 중인 애플리케이션 또는 개발 프로세스에 영향을 미칠 수 있습니다. 시행 옵션을 활성화하기 전에 모든 이해 관계자에게 알리고 자동화된 적용 작업에 대응하는 방법을 계획하십시오.
15.2.3.1.1. 하드 적용
하드 적용은 RHACS 승인 컨트롤러에서 수행합니다. 승인 컨트롤러 적용이 있는 클러스터에서 Kubernetes 또는 OpenShift Container Platform API 서버는 호환되지 않는 모든 배포를 차단합니다. 승인 컨트롤러는 CREATE
및 UPDATE
작업을 차단합니다. 배포 시간 적용이 활성화된 정책을 충족하는 Pod 생성 또는 업데이트 요청이 실패합니다.
Kubernetes 승인 Webhook는 CREATE
,UPDATE
,DELETE
또는 CONNECT
작업만 지원합니다. RHACS 승인 컨트롤러는 CREATE
및 UPDATE
작업만 지원합니다. kubectl 패치
,kubectl set
, kubectl scale
과 같은 작업은 UPDATE 작업이 아닌 PATCH 작업입니다. PATCH 작업은 Kubernetes에서 지원되지 않으므로 RHACS는 PATCH 작업에 대한 적용을 수행할 수 없습니다.
차단 적용의 경우 RHACS의 클러스터에 대해 다음 설정을 활성화해야 합니다.
- 오브젝트 생성: 동적 구성 섹션의 이 토글은 승인 제어 서비스의 동작을 제어합니다. 이 작업이 작동하려면 정적 구성 섹션에서 오브젝트 생성 토글을 수신 대기하려면 Configure Admission Controller Webhook 가 있어야 합니다.
- 오브젝트 업데이트 적용: 동적 구성 섹션의 이 토글은 승인 제어 서비스의 동작을 제어합니다. 이 작업이 작동하려면 정적 구성 섹션의 오브젝트 업데이트 토글을 수신 대기하려면 Configure Admission Controller Webhook 가 있어야 합니다.
정적 구성 설정에서 설정을 변경하는 경우 해당 변경 사항을 적용하려면 보안 클러스터를 재배포해야 합니다.
15.2.3.1.2. 소프트 적용
소프트 적용은 RHACS 센서가 수행합니다. 이러한 적용으로 인해 작업이 시작되지 않습니다. 소프트 적용 기능을 사용하면 센서가 복제본을 0으로 스케일링하고 Pod가 예약되지 않습니다. 이 적용에서는 클러스터에서 준비되지 않은 배포를 사용할 수 있습니다.
소프트 적용이 구성되고 센서가 다운된 경우 RHACS는 적용을 수행할 수 없습니다.
15.2.3.1.3. 네임스페이스 제외
기본적으로 RHACS는 stackrox
,kube-system
, istio-system
네임스페이스와 같은 특정 관리 네임스페이스를 시행 차단에서 제외합니다. 그 이유는 RHACS가 제대로 작동하려면 이러한 네임스페이스의 일부 항목을 배포해야 하기 때문입니다.
15.2.3.1.4. 기존 배포에 적용
기존 배포의 경우 정책 변경으로 인해 Kubernetes 이벤트가 발생하는 경우 다음 기준을 탐지할 때만 적용됩니다. 정책을 변경하는 경우 정책 관리를 선택하고 Reassess all을 클릭하여 정책을 재평가해야 합니다. 이 작업은 들어오는 새 Kubernetes 이벤트가 있는지 여부에 관계없이 기존의 모든 배포에 배포 정책을 적용합니다. 정책을 위반하는 경우 RHACS는 적용을 수행합니다.
추가 리소스