본문 바로가기
IT Tech/Cloud Native

네트워크 정책 (Network Policy)

by _><- 2023. 1. 13.
728x90

1. NetworkPolicy

이름 그대로 Pod 내부로 들어오거나(Ingress) 외부로 나가는(Egress) 트래픽을

허용하고 거부하는  정책을 설정할 수 있는 오브젝트

 

2. 특징 :

- NetworkPolicy는 기본적으로 Whitelist 형식이다.

설정되는 순간 명시해놓은 목록에 있는 Pod나 Host 외에는 이 Pod에 트래픽을 보낼 수가 없다. 

- NetworkPolicy는 namespace 단위 자원이다.

kubectl get networkpolicy 명령을 치면 Namespace별로 자원이 출력되고, 적용도 Namespace 내에 있는 Pod에만 된다.

- 여러 개가 존재하면 중복 적용된다.

따라서 NetworkPolicy는 항상 최소한의 Pod 혹은 Host 만 트래픽을 흘릴 수 있도록 작성해야 한다.

- Pod, Namespace, IPBlock의 3가지 타입으로 제어가 가능하다.

 

3. 사례

kind: NetworkPolicy

apiVersion: networking.k8s.io/v1

metadata:

  name: api-allow-5000

spec:

  podSelector:

    matchLabels:

      app: apiserver

  ingress:

  - ports:

    - port: 5000

    from:

    - podSelector:

        matchLabels:

          role: monitoring

아래 네트워크 정책은 app:apiserver 라는 라벨을 가지고 있는 Pod들의

ingress 네트워크 정책을 정의하는 설정파일로,

5000번 포트만을 통해서 트래픽을 받을 수 있으며,

role:monitoring이라는 라벨을 가지고 있는 Pod에서 들어오는 트래픽만 허용한다.

 

4. 제약사항

  • 내부 클러스터 트래픽이 공통 게이트웨이를 통과하도록 강제한다

       (서비스 메시나 기타 프록시와 함께 제공하는 것이 가장 좋을 수 있음).

  • TLS와 관련된 모든 것

       (이를 위해 서비스 메시나 인그레스 컨트롤러 사용).

  • 노드별 정책

      (이에 대해 CIDR 표기법을 사용할 수 있지만, 특히 쿠버네티스 ID로 노드를 대상으로 지정할 수 없음).

  • 이름으로 서비스를 타겟팅한다

       (그러나, 레이블로 파드나 네임스페이스를 타겟팅할 수 있으며, 이는 종종 실행할 수 있는 해결 방법임).

  • 타사 공급사가 이행한 "정책 요청"의 생성 또는 관리.
  • 모든 네임스페이스나 파드에 적용되는 기본 정책

      (이를 수행할 수 있는 타사 공급사의 쿠버네티스 배포본 및 프로젝트가 있음).

  • 고급 정책 쿼리 및 도달 가능성 도구.
  • 네트워크 보안 이벤트를 기록하는 기능

       (예: 차단되거나 수락된 연결).

  • 명시적으로 정책을 거부하는 기능

       (현재 네트워크폴리시 모델은 기본적으로 거부하며, 허용 규칙을 추가하는 기능만 있음).

  • 루프백 또는 들어오는 호스트 트래픽을 방지하는 기능

       (파드는 현재 로컬 호스트 접근을 차단할 수 없으며, 상주 노드의 접근을 차단할 수 있는 기능도 없음).

 

 

참고 : https://taemy-sw.tistory.com/9

 

Kubernetes NetworkPolicy 란?

이번 포스팅은 아래 Docs의 내용을 간단하게 정리해보았다. kubernetes.io/docs/concepts/services-networking/network-policies/ Network Policies If you want to control traffic flow at the IP address or port level (OSI layer 3 or 4), then yo

taemy-sw.tistory.com

https://kubernetes.io/ko/docs/concepts/services-networking/network-policies/

 

네트워크 정책

IP 주소 또는 포트 수준(OSI 계층 3 또는 4)에서 트래픽 흐름을 제어하려는 경우, 클러스터의 특정 애플리케이션에 대해 쿠버네티스 네트워크폴리시(NetworkPolicy) 사용을 고려할 수 있다. 네트워크폴

kubernetes.io

 

반응형