호스트 IPC 공유를 허용하는 Kubernetes PodSecurityPolicy

정책에서 불필요한 호스트 IPC 네임스페이스 공유를 차단하세요.

설명

호스트 IPC 공유를 허용하면 Pod가 노드와 같은 IPC 네임스페이스를 사용할 수 있습니다. 실제로 공유하는 워크로드는 객체 권한에 따라 공유 메모리나 메시지 큐 등에 접근할 수 있어 프로세스 간 통신 격리가 약해집니다.

PodSecurityPolicy는 Kubernetes v1.21에서 사용 중단되었고 v1.25에서 제거되었습니다. 현재 클러스터에서는 Pod Security Admission이나 정책 엔진으로 제한하세요.

잠재적 영향

  • 권한이 허용하는 IPC 데이터가 노출되거나 변경될 수 있습니다.
  • 공유 IPC 자원에 대한 방해가 노드의 다른 프로세스에 영향을 줄 수 있습니다.

해결 방법

  • 레거시 PSP에서 spec.host_ipc = false로 설정하세요.
  • 호스트 IPC가 필수인 워크로드는 전용 정책과 노드로 분리하고 실제 객체 권한을 제한하세요.
  • hostNetwork, hostPID와 privileged도 함께 점검하세요.

예시

과거 PSP 지원 환경의 부분 예시입니다. IPC 공유 허용 항목만 비교하며 나머지 필수 정책 설정은 생략했습니다.

변경 전

hcl
resource "kubernetes_pod_security_policy" "policy" {
  metadata {
    name = "terraform-example"
  }

  spec {
    host_ipc = true
  }
}

정책을 사용할 수 있는 Pod가 호스트 IPC를 요청할 수 있습니다. 모든 Pod가 자동으로 공유하는 것은 아닙니다.

변경 후

hcl
resource "kubernetes_pod_security_policy" "policy" {
  metadata {
    name = "terraform-example"
  }

  spec {
    host_ipc = false
  }
}

이 정책을 통한 호스트 IPC 공유를 금지합니다. 실제 워크로드와 다른 적용 가능한 정책도 확인하세요.

참조