hostPath 접근 제한 점검이 필요한 PodSecurityPolicy

필수 hostPath 접근만 좁은 경로와 최소 권한으로 허용하세요.

설명

hostPath를 허용하는 PodSecurityPolicy에서 경로와 쓰기 권한을 넓게 열어 두면 워크로드가 노드 파일을 읽거나 변경할 수 있습니다. 실제 접근에는 Pod의 마운트 설정과 파일 권한도 영향을 줍니다. allowedHostPaths만 볼 것이 아니라 volumes에서 hostPath 자체를 허용하는지도 확인하세요.

PSP는 Kubernetes 1.21에서 사용 중단되었고 1.25에서 제거되었습니다. 현재 클러스터에서는 지원되는 admission 제어로 필요한 제한을 적용하세요.

잠재적 영향

  • 읽기 접근만으로도 호스트의 민감한 파일이 노출될 수 있습니다.
  • 쓰기 권한이 있으면 노드 설정이나 다른 워크로드가 사용하는 파일을 변경할 수 있습니다.

해결 방법

  • 불필요한 hostPath를 금지하고 목적에 맞는 다른 저장소로 대체하세요.
  • 레거시 PSP에서 예외가 필요하면 승인된 경로만 허용하고 쓰기가 필요 없을 때 readOnly: true를 요구하세요.
  • 실제 마운트와 파일 권한, 다른 사용 가능한 정책도 함께 확인하세요.

예시

아래는 레거시 PSP의 경로 제한을 비교한 발췌입니다. 전체 정책과 실제 워크로드 마운트는 별도로 필요하며, 예제 경로는 환경에 맞게 검토해야 합니다.

변경 전

yaml
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: example
spec:
  allowedHostPaths:
    - pathPrefix: /dev
      readOnly: false

/dev 경로에 읽기 전용 마운트를 요구하지 않습니다. 허용된 워크로드가 실제로 어떤 호스트 파일에 접근할 수 있는지 확인해야 합니다.

변경 후

yaml
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: example
spec:
  allowedHostPaths:
    - pathPrefix: /foo
      readOnly: true

허용 경로를 /foo로 바꾸고 읽기 전용을 요구합니다. 해당 경로의 데이터 공개가 적절한지와 실제 업무에 필요한 경로인지도 확인하세요.

참조