네트워크 정책과 최소 권한 네트워킹
기본 거부 네트워크 정책과 명시적 허용 규칙을 적용하고 최소 권한 원칙에 따라 컨테이너 간 트래픽을 제한하는 방법을 배워 보세요.
네트워크 정책과 최소 권한 네트워킹은(는) 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: platformDNS 허용하기
흔히 놓치는 부분이 있습니다. 엄격한 송신 트래픽 기본 거부 정책은 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 컨테이너 이미지 보안 검사
- 실행 중인 컨테이너 보안
- Secrets 관리 및 RBAC
- 네트워크 정책과 최소 권한 네트워킹