설명
호스트 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 공유를 금지합니다. 실제 워크로드와 다른 적용 가능한 정책도 확인하세요.