설명
hostPID: true가 설정된 Pod는 호스트의 프로세스 ID 네임스페이스를 공유합니다. 컨테이너에서 노드와 다른 워크로드의 프로세스를 볼 수 있어 일반 애플리케이션에는 불필요한 정보 접근 범위를 만들 수 있습니다.
프로세스를 보는 것과 제어하는 것은 다릅니다. 신호 전송이나 프로세스 추적에는 사용자 ID, Linux capability 등 추가 권한 조건이 적용됩니다.
잠재적 영향
- 노드에서 실행 중인 프로세스와 실행 인자 등 운영 정보가 노출될 수 있습니다.
- 추가 권한이 있으면 다른 프로세스의 동작을 방해하거나 민감한 정보를 얻는 데 악용될 수 있습니다.
해결 방법
- 필요하지 않은
hostPID를 제거하거나false로 설정하세요. hostIPC,hostNetwork,privileged와 추가 capability도 함께 검토하세요.- 진단이나 운영 도구에 필요한 예외는 승인된 워크로드로 제한하고 사용 권한을 관리하세요.
예시
다음 예제는 Pod의 호스트 PID 네임스페이스 공유 여부를 비교합니다. 이미지와 실행 명령은 실제 용도에 맞게 구성하세요.
변경 전
yaml
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
hostPID: true
containers:
- name: sec-ctx-demo
image: busybox
호스트 PID 네임스페이스를 공유하여 노드 프로세스에 대한 가시성이 커집니다.
변경 후
yaml
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
hostPID: false
containers:
- name: sec-ctx-demo
image: busybox
호스트 PID 네임스페이스를 공유하지 않습니다. 파일 접근이나 다른 네임스페이스 공유에 대한 제어도 별도로 유지해야 합니다.