컨테이너의 호스트 PID 네임스페이스 공유

호스트 프로세스 접근이 필요하지 않은 파드에서 host_pid를 비활성화하세요.

설명

host_pid = true인 파드는 호스트의 PID 네임스페이스를 공유합니다. 컨테이너가 호스트의 프로세스를 볼 수 있어 격리 수준이 낮아지며, 추가 권한이나 취약점과 결합하면 다른 프로세스에 영향을 줄 수 있습니다. 프로세스를 볼 수 있다는 사실만으로 모든 프로세스에 신호를 보내거나 디버깅할 권한까지 생기는 것은 아닙니다.

잠재적 영향

  • 호스트 프로세스 정보가 노출되어 정찰에 이용될 수 있습니다.
  • 다른 권한이나 취약점이 있으면 호스트 프로세스 간섭과 서비스 장애로 이어질 수 있습니다.

해결 방법

  • 일반 워크로드에는 host_pid = false를 사용하세요. 호스트 프로세스 관찰이 필요한 시스템 도구의 예외는 용도와 권한을 검토해 제한하세요.
  • 비 root 실행과 최소 capability를 적용하고 Pod Security Admission이나 정책 엔진으로 불필요한 호스트 네임스페이스 공유를 제한하세요.

예시

host_pid만 비교하는 기존 Pod 예제입니다. 실제 배포에는 유지보수되는 이미지를 사용하고 예외가 필요한 관리 도구는 별도로 평가하세요.

변경 전

hcl
resource "kubernetes_pod" "pod" {
  metadata {
    name = "terraform-example"
  }

  spec {
    host_pid = true

    container {
      image = "nginx:1.7.9"
      name  = "example"
    }
  }
}

변경 후

hcl
resource "kubernetes_pod" "pod" {
  metadata {
    name = "terraform-example"
  }

  spec {
    host_pid = false

    container {
      image = "nginx:1.7.9"
      name  = "example"
    }
  }
}

설명:

  • 변경 전: 호스트의 PID 네임스페이스를 공유합니다.
  • 변경 후: 호스트 PID 네임스페이스 공유를 비활성화합니다. 다른 호스트 접근 권한은 별도로 확인해야 합니다.

참조