Kubernetes NetworkPolicy 완벽 가이드! 실제 Traffic 제어와 보안 운영 방법 이해하기

Kubernetes 환경에서는 수많은 Application이 하나의 Cluster 안에서 동작합니다.

예를 들어 쇼핑몰 서비스를 운영한다고 가정하면:

Frontend Pod

API Server Pod

Database Pod

구조로 구성될 수 있습니다.

하지만 기본 Kubernetes Network 구조에서는 모든 Pod가 서로 통신 가능한 상태입니다.

개발 환경에서는 편리하지만 Production 환경에서는 보안 문제가 발생할 수 있습니다.

만약 공격자가 하나의 Pod에 접근한다면 내부의 다른 Pod까지 접근할 가능성이 있습니다.

Kubernetes에서는 이러한 문제를 해결하기 위해 NetworkPolicy 기능을 제공합니다.

NetworkPolicy는 Pod 간 Network Traffic을 허용하거나 차단하는 Kubernetes 보안 기능입니다.

구성 요소역할
NetworkPolicyPod Traffic 제어
Label Selector대상 Pod 선택
Ingress Rule들어오는 Traffic 관리
Egress Rule나가는 Traffic 관리

NetworkPolicy 구조를 이해하면 Kubernetes 환경에서 Zero Trust 방식의 내부 Network 보안을 구성할 수 있습니다.

Kubernetes NetworkPolicy가 필요한 이유

기본 Kubernetes Network 구조에서는 Pod 간 통신 제한이 없습니다.

기본 상태:

Frontend Pod

API Pod

Database Pod

모든 통신 가능

하지만 실제 운영 환경에서는 접근 권한이 필요합니다.

예:

Frontend:

API 접근 가능

API:

Database 접근 가능

Database:

외부 접근 차단

이처럼 필요한 통신만 허용하는 것이 안전한 구조입니다.

Kubernetes NetworkPolicy 동작 구조

NetworkPolicy는 Label을 기준으로 Traffic 대상을 선택합니다.

구조:

NetworkPolicy

Pod Selector

Traffic Rule 적용

허용 또는 차단

중요한 점은 NetworkPolicy가 직접 Network Traffic을 처리하는 것이 아니라 CNI Plugin이 실제 동작을 수행한다는 것입니다.

Kubernetes NetworkPolicy와 CNI 관계

NetworkPolicy는 CNI Plugin 지원이 필요합니다.

구조:

NetworkPolicy 생성

API Server 저장

CNI Plugin 확인

Firewall Rule 적용

대표적으로 지원하는 CNI:

CNINetworkPolicy 지원
Calico지원
Cilium지원
Flannel제한적
Weave Net지원

Production 환경에서는 NetworkPolicy 지원 여부를 확인해야 합니다.

Kubernetes Ingress Rule이란?

Ingress Rule은 외부에서 Pod로 들어오는 Traffic을 제어합니다.

예:

허용:

Frontend Pod

API Pod

차단:

외부 Pod

Database Pod

구조:

Incoming Traffic

Ingress Rule 확인

허용 여부 판단

내부 Application 보호에 활용됩니다.

Kubernetes Egress Rule이란?

Egress Rule은 Pod에서 외부로 나가는 Traffic을 제어합니다.

예:

허용:

API Pod

외부 Payment API

차단:

Database Pod

인터넷 접근

외부 통신 제한을 통해 보안을 강화할 수 있습니다.

Kubernetes NetworkPolicy 실제 운영 예시

쇼핑몰 Application 구조:

Frontend

API

Database

보안 정책:

Frontend:

API만 접근 허용

API:

Database 접근 허용

Database:

API만 접근 허용

구현:

Frontend → API 허용

API → Database 허용

나머지 차단

Microservice 환경에서 많이 사용하는 방식입니다.

Kubernetes Label과 NetworkPolicy 관계

NetworkPolicy는 IP보다 Label 기반으로 동작합니다.

예:

Pod Label:

app=backend

NetworkPolicy:

app=backend 선택

결과:

Backend Pod에만 정책 적용

Pod IP가 변경되어도 정책은 유지됩니다.

Kubernetes Default Deny Policy

Production 환경에서는 모든 Traffic 차단 후 필요한 접근만 허용하는 방식이 많이 사용됩니다.

구조:

기본 차단

필요한 Traffic만 허용

보안 강화

이를 Default Deny 방식이라고 합니다.

Kubernetes NetworkPolicy 적용 과정

실제 적용 흐름:

Policy 작성

kubectl 적용

CNI Plugin 전달

Network Rule 생성

Traffic 제어 시작

Kubernetes API 기반으로 관리됩니다.

Kubernetes NetworkPolicy 장애 상황

NetworkPolicy 적용 후 통신 문제가 발생할 수 있습니다.

주요 원인:

문제결과
Label 오류Traffic 차단
Rule 설정 오류접속 실패
CNI 미지원Policy 미동작
Port 오류Connection 실패

운영 환경에서는 정책 적용 전 테스트가 필요합니다.

Kubernetes NetworkPolicy 확인 방법

기본 확인:

kubectl get networkpolicy

상세 확인:

kubectl describe networkpolicy

확인 항목:

  • 적용 Pod
  • 허용 Traffic
  • Port
  • Namespace

장애 분석 시 중요한 명령어입니다.

Kubernetes Namespace 기반 NetworkPolicy

NetworkPolicy는 Namespace 단위로도 제어할 수 있습니다.

예:

Production Namespace

Database 접근 허용

Development Namespace

접근 차단

대규모 Cluster에서 환경 분리에 활용됩니다.

Kubernetes NetworkPolicy와 Zero Trust

NetworkPolicy는 Zero Trust Network 구조와 연결됩니다.

기존 방식:

내부 Network는 신뢰

모든 접근 허용

Zero Trust:

모든 접근 검증

필요한 연결만 허용

Cloud Native 보안에서 중요한 개념입니다.

Kubernetes NetworkPolicy 운영 전략

Production 환경에서는 단계적으로 적용하는 것이 좋습니다.

추천 순서:

1단계

현재 Traffic 분석

2단계

Default Allow 유지

3단계

필요한 Rule 작성

4단계

Default Deny 적용

5단계

Monitoring

갑작스러운 차단을 방지할 수 있습니다.

Kubernetes NetworkPolicy 장점

장점설명
Traffic 제어Pod 접근 관리
보안 강화불필요한 연결 차단
Zero Trust 구현최소 권한 적용
확장성Microservice 지원

NetworkPolicy는 Kubernetes Production 보안의 핵심 기능입니다.

자주 묻는 질문

NetworkPolicy는 Kubernetes 기본 기능인가요?

API Resource는 기본 제공되지만 실제 동작은 CNI Plugin 지원이 필요합니다.

NetworkPolicy를 적용하면 모든 Traffic이 차단되나요?

아닙니다.

정책 설정 방식에 따라 허용하거나 차단합니다.

NetworkPolicy와 Firewall 차이는 무엇인가요?

Firewall은 주로 서버 또는 Network Layer를 보호하고 NetworkPolicy는 Kubernetes Pod 단위 Traffic을 제어합니다.

마무리

Kubernetes NetworkPolicy는 Pod 간 통신을 제어하고 Kubernetes Cluster 내부 보안을 강화하는 핵심 기능입니다.

구성 요소역할
NetworkPolicyTraffic 정책 관리
Ingress들어오는 접근 제어
Egress나가는 접근 제어
CNI정책 실제 적용

NetworkPolicy 구조를 이해하면 Kubernetes 환경에서 Application 간 접근 권한을 관리하고 안전한 Production Cluster를 운영할 수 있습니다.

다음 글에서는 Kubernetes Application 배포 전략을 다루는 Kubernetes Deployment Strategy 완벽 가이드! Rolling Update와 무중단 배포 구조 이해하기를 알아보겠습니다.

댓글 남기기