Host 네트워크 네임스페이스 공유

불필요한 hostNetwork 공유를 제거하고 서비스의 네트워크 노출을 관리하세요.

설명

hostNetwork: true이면 파드가 호스트 네트워크 네임스페이스를 직접 사용합니다. 이렇게 되면 컨테이너는 노드의 네트워크에 더 가깝게 동작하고, 포트 충돌이나 노출 범위 확대가 발생할 수 있습니다.

일반 애플리케이션은 클러스터 네트워크 안에서 분리되어 동작하는 것이 보통 더 안전합니다. 특별한 시스템 워크로드가 아니라면 host network 공유는 피하는 편이 좋습니다.

잠재적 영향

  • 파드가 호스트 네트워크를 직접 사용해 노출 범위가 커질 수 있습니다.
  • 포트 충돌이나 예상치 못한 네트워크 동작이 발생할 수 있습니다.
  • 침해 시 노드 네트워크 자원 악용 가능성이 커질 수 있습니다.

해결 방법

  • 파드 설정에서 hostNetwork: false를 유지하세요.
  • 호스트 네트워크가 꼭 필요한 워크로드만 예외적으로 허용하세요.
  • 외부 노출이 필요하면 Service나 Ingress를 검토하고 필요한 인증·접근 제어를 별도로 적용하세요.

예시

네트워크 네임스페이스 설정 발췌입니다. 일반 파드 네트워크를 사용해도 그 자체로 다른 파드의 접근이 모두 차단되지는 않습니다.

변경 전

yaml
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  hostNetwork: true
  containers:
    - name: sec-ctx-demo
      image: busybox

변경 후

yaml
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  containers:
    - name: sec-ctx-demo
      image: busybox

설명:

  • 변경 전: host network를 사용해 파드와 노드 네트워크 사이 분리가 약해집니다.
  • 변경 후: hostNetwork를 사용하지 않고 기본 네트워크 네임스페이스 분리를 유지합니다. Service 노출과 네트워크 정책은 별도로 관리하세요.

참조