0Pricing
DevOps Bootcamp · 강의

네트워크 정책과 최소 권한 네트워킹

기본 거부 네트워크 정책과 명시적 허용 규칙을 적용하고 최소 권한 원칙에 따라 컨테이너 간 트래픽을 제한하는 방법을 배워 보세요.

네트워크 정책과 최소 권한 네트워킹은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

기본 허용은 위험합니다

기본적으로 클러스터의 컨테이너는 보통 서로 통신할 수 있습니다. 침해된 파드는 데이터베이스와 내부 서비스에 자유롭게 접근할 수 있습니다. 네트워크 정책이 이 통로를 차단합니다.

네트워킹에서 최소 권한 적용하기

최소 권한 원칙은 트래픽에도 적용됩니다. 서비스는 실제로 필요한 연결만 수락하고 생성해야 하며, 그 이상은 허용하지 않아야 합니다.

네트워크 정책이란 무엇인가요

NetworkPolicy는 레이블로 파드를 선택하고 허용되는 수신 및 송신 트래픽을 지정하는 쿠버네티스 객체입니다. CNI 플러그인(Calico, Cilium)이 이를 적용합니다.

적용하는 CNI가 필요합니다

인그레스에 컨트롤러가 필요한 것처럼 NetworkPolicies에도 이를 지원하는 CNI가 필요합니다. 이를 무시하는 플러그인에서는 규칙이 아무 동작도 하지 않은 채 적용되지 않습니다.

수신 트래픽 기본 거부

네임스페이스로 들어오는 모든 트래픽을 거부하는 것부터 시작한 다음, 필요한 트래픽만 허용하세요. 비어 있는 podSelector는 모든 파드와 일치합니다.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-ingress
spec:
  podSelector: {}
  policyTypes:
  - Ingress

특정 트래픽 허용하기

이제 프런트엔드 파드만 포트 8080의 API에 접근하도록 허용하세요. 그 외의 모든 트래픽은 계속 차단됩니다.

spec:
  podSelector:
    matchLabels:
      app: api
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend
    ports:
    - port: 8080

송신 트래픽 제한하기

송신 트래픽도 제한할 수 있습니다. 예를 들어 파드가 데이터베이스에만 접근하도록 허용하여 탈취된 파드가 외부로 신호를 보내는 것을 막을 수 있습니다.

spec:
  podSelector:
    matchLabels:
      app: api
  policyTypes:
  - Egress
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: db

네임스페이스 선택기

namespaceSelector로 규칙을 일치시키면 신뢰하는 네임스페이스에서 오는 네임스페이스 간 트래픽만 허용할 수 있습니다. 공유 플랫폼 서비스에 유용합니다.

from:
- namespaceSelector:
    matchLabels:
      team: platform

DNS 허용하기

흔히 놓치는 부분이 있습니다. 엄격한 송신 트래픽 기본 거부 정책은 DNS도 차단하여 이름 확인을 중단시킵니다. kube-dns에 UDP/TCP 53을 허용해야 합니다.

egress:
- to: []
  ports:
  - protocol: UDP
    port: 53

쿠버네티스 너머

Docker 사용자도 사용자 정의 네트워크를 통해 비슷한 이점을 얻을 수 있습니다. 같은 네트워크에 있는 컨테이너만 서로 접근할 수 있으므로 관련 없는 애플리케이션을 격리할 수 있습니다.

docker network create --internal backend

제로 트러스트 사고방식

최소 권한 네트워킹은 제로 트러스트로 나아가게 합니다. 네트워크가 적대적이라고 가정하고 모든 연결을 인증하고 권한을 부여하며, 기본적으로 아무것도 허용하지 않습니다.

빠른 확인

네트워크 정책을 시작할 때 합리적인 전략은 무엇인가요?

복습

이제 트래픽을 안전하게 제한할 수 있습니다.

  • 기본 거부를 적용한 다음 명시적인 허용 규칙을 추가합니다.
  • 레이블과 네임스페이스를 기준으로 수신 및 송신 트래픽을 모두 제어합니다.
  • DNS 허용을 잊지 마세요. 트래픽을 적용하는 CNI가 필요합니다.
  • Docker 내부 네트워크도 비슷한 격리를 제공합니다.

최소 권한 네트워킹은 침해가 발생했을 때 피해 범위를 줄입니다.

자주 묻는 질문

“네트워크 정책과 최소 권한 네트워킹” 강의는 무료인가요?

네 — “네트워크 정책과 최소 권한 네트워킹” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

“네트워크 정책과 최소 권한 네트워킹”에서 뭘 배우나요?

기본 거부 네트워크 정책과 명시적 허용 규칙을 적용하고 최소 권한 원칙에 따라 컨테이너 간 트래픽을 제한하는 방법을 배워 보세요. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“네트워크 정책과 최소 권한 네트워킹” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 컨테이너 이미지 보안 검사
  2. 실행 중인 컨테이너 보안
  3. Secrets 관리 및 RBAC
  4. 네트워크 정책과 최소 권한 네트워킹
← DevOps Bootcamp(으)로 돌아가기