설명
pid: "host"를 사용하면 컨테이너 안에서 호스트 프로세스 정보를 더 직접적으로 볼 수 있어 기본 격리 수준이 낮아집니다.
프로세스 정보가 보이더라도 제어 가능 여부는 사용자 권한과 capability에 따라 달라집니다. 일반 애플리케이션 컨테이너는 호스트 프로세스 공간과 분리되어 있어야 합니다. 디버깅이나 특수 도구가 아닌 이상 호스트 PID 공유는 피하는 편이 안전합니다.
잠재적 영향
- 컨테이너에서 호스트 프로세스 정보를 더 많이 관찰할 수 있습니다.
- 격리가 약해져 호스트 자원과 다른 워크로드에 대한 간접 영향이 커질 수 있습니다.
- 취약점이 있을 때 피해 범위가 호스트 수준으로 확대될 가능성이 높아집니다.
해결 방법
pid: "host"설정을 제거하고 기본 네임스페이스 격리를 유지하세요.- 꼭 필요한 경우라도 별도 디버그용 구성으로 분리해 운영 서비스에는 적용하지 마세요.
- 컨테이너 권한, capability, 마운트 설정과 함께 격리 정책을 같이 검토하세요.
예시
sample/app:latest는 실제 애플리케이션 이미지로 바꾸세요.
변경 전
yaml
services:
service_name_1:
image: sample/app:latest
pid: "host"
변경 후
yaml
services:
service_name_1:
image: sample/app:latest
설명:
- 변경 전: 호스트 PID 네임스페이스를 공유해 컨테이너 격리 수준이 낮아집니다.
- 변경 후: 기본 격리를 유지해 컨테이너가 호스트 프로세스 공간에 직접 기대지 않도록 합니다.