설명
Unmasked proc mount는 컨테이너의 /proc에 적용되는 기본 마스킹과 읽기 전용 보호를 해제합니다. 민감한 커널 정보나 인터페이스에 대한 접근이 늘어날 수 있습니다. 모든 호스트 프로세스를 자동으로 볼 수 있다는 뜻은 아니며 PID 네임스페이스와 다른 권한도 영향을 줍니다.
PodSecurityPolicy는 Kubernetes v1.21에서 사용 중단되었고 v1.25에서 제거되었습니다. 최신 클러스터에서는 Pod Security Admission이나 정책 엔진으로 기본 proc mount만 사용하도록 제한하세요.
잠재적 영향
- 기본적으로 가려지거나 읽기 전용으로 보호되는
/proc경로에 접근할 수 있습니다. - 허용된 커널 인터페이스가 악용되면 격리와 워크로드 안정성이 약해질 수 있습니다.
해결 방법
- 레거시 정책의
allowed_proc_mount_types에서Unmasked를 제거하고Default를 사용하세요. - 현재 워크로드에서도 기본 proc mount를 유지하고, 예외가 필요하면 별도로 격리하세요.
- privileged, hostPID와 다른 호스트 접근 권한도 함께 점검하세요.
예시
레거시 PodSecurityPolicy의 부분 예시입니다. 이 API를 지원하는 과거 클러스터와 공급자에서 정책의 허용 범위를 비교합니다.
변경 전
hcl
resource "kubernetes_pod_security_policy" "policy" {
metadata {
name = "terraform-example"
}
spec {
allowed_proc_mount_types = ["Unmasked"]
}
}
Unmasked 사용을 허용합니다. 정책이 허용한다고 모든 Pod가 실제로 이 방식으로 실행되는 것은 아닙니다.
변경 후
hcl
resource "kubernetes_pod_security_policy" "policy" {
metadata {
name = "terraform-example"
}
spec {
allowed_proc_mount_types = ["Default"]
}
}
Default만 허용해 기본 /proc 보호를 유지합니다.