0Pricing
Cyber Security Academy · 강의

Pod 보안과 네트워크 정책

워크로드를 격리합니다.

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

워크로드 격리

침해된 파드가 수행할 수 있는 작업을 제한하는 두 가지 제어 수단이 있습니다. 파드 보안은 파드의 권한을 제한하고, 네트워크 정책은 서로 통신할 수 있는 파드를 제한합니다. 함께 적용하면 피해 범위를 줄일 수 있습니다.

  • 파드 보안은 노드로의 탈출을 차단합니다.
  • 네트워크 정책은 파드 간 횡적 이동을 차단합니다.

위험한 파드 설정

허용할 경우 여러 파드 사양 필드가 위험을 크게 넓힐 수 있습니다.

  • privileged: true는 호스트에 가까운 수준의 액세스 권한을 부여합니다.
  • hostPID, hostNetwork, hostIPC는 네임스페이스 격리를 무너뜨립니다.
  • hostPath 볼륨은 노드 디렉터리를 마운트합니다.
  • SYS_ADMIN과 같은 추가 기능은 탈출을 가능하게 합니다.
  • 루트로 실행합니다(runAsUser: 0).

파드 보안 승인

PSA는 PodSecurityPolicy를 대체했습니다. 네임스페이스별로 세 가지 기본 제공 표준을 적용합니다.

  • 특권: 제한 없음(워크로드에는 사용하지 않는 것이 좋습니다).
  • 기준선: 알려진 권한 상승을 차단합니다.
  • 제한됨: 보안을 강화한 권장 방식입니다(비루트, 권한 없음, 기능 제거).
# Enforce the restricted standard on a namespace
kubectl label namespace prod \
  pod-security.kubernetes.io/enforce=restricted

강화된 securityContext

securityContext를 사용하여 파드 및 컨테이너 수준에서 최소 권한을 정의합니다.

  • 비루트 사용자로 실행하고 루트 파일 시스템은 읽기 전용으로 설정합니다.
  • 모든 리눅스 기능을 제거한 다음 필요한 기능만 추가합니다.
  • 권한 상승을 허용하지 않습니다.
# securityContext fields (YAML)
# runAsNonRoot: true
# readOnlyRootFilesystem: true
# allowPrivilegeEscalation: false
# capabilities: drop: [ALL]
kubectl apply -f hardened-deploy.yaml

표준을 넘어선 정책 엔진

PSA보다 풍부한 규칙이 필요한 경우 승인 컨트롤러가 사용자 지정 정책을 적용합니다.

  • OPA 게이트키퍼는 레고 제약 조건을 평가합니다.
  • 키베르노는 YAML 정책을 사용하며 검증뿐 아니라 변경도 수행할 수 있습니다.

이를 통해 hostPath를 금지하고, 서명된 이미지를 요구하거나, 클러스터 전체에 레이블을 적용할 수 있습니다.

# Apply a Kyverno policy that disallows privileged pods
kubectl apply -f disallow-privileged.yaml

기본적으로 개방된 네트워크

기본적으로 모든 파드는 모든 네임스페이스에 있는 다른 모든 파드에 연결할 수 있습니다. 네트워크 정책을 추가하기 전에는 네트워크 분리가 없습니다. 이러한 평면 네트워크 때문에 침해된 파드 하나만으로도 전체 클러스터를 검색하고 공격할 수 있습니다.

# From a pod, the flat network lets you reach any service
curl http://internal-db.prod.svc.cluster.local:5432

네트워크 정책 기본 사항

네트워크 정책은 네임스페이스 범위의 규칙으로, 파드를 선택하고 특정 수신 및 송신 트래픽을 허용합니다. 네트워크 정책은 누적 적용됩니다. 파드에 정책을 하나라도 적용하면 해당 정책이 다루는 방향에 대해 기본 거부가 적용됩니다.

  • 선택기는 레이블을 기준으로 파드를 일치시킵니다.
  • 규칙은 특정 파드, 네임스페이스 또는 CIDR에서 들어오거나 이들로 나가는 트래픽을 허용합니다.
  • 정책을 지원하는 CNI(칼리코, 실리움)가 필요합니다.

기본 거부 후 허용

권장 패턴은 네임스페이스별로 기본 거부 기준을 적용한 다음, 필요한 흐름에 대해 명시적인 허용 규칙을 추가하는 것입니다.

# Default-deny all ingress in a namespace (YAML)
# kind: NetworkPolicy spec: podSelector: {} policyTypes: [Ingress]
kubectl apply -f default-deny.yaml

# Then allow only frontend -> backend
kubectl apply -f allow-frontend.yaml

송신 트래픽 및 메타데이터 차단

송신 정책은 수신 정책만큼 중요합니다.

  • 파드가 연결할 수 있는 외부 엔드포인트를 제한합니다(데이터 유출과 명령 및 제어를 제한).
  • 노드 자격 증명 탈취를 방지하기 위해 파드에서 클라우드 메타데이터 IP 169.254.169.254로의 접근을 차단합니다.
  • DNS와 내부 동서 방향 트래픽을 제한합니다.

실행 환경 방어

정적 정책은 실행 중 탐지로 보완됩니다.

  • 팔코는 의심스러운 시스템 호출을 경고합니다(컨테이너 내 셸 실행, 민감한 마운트).
  • seccomp 프로필은 컨테이너가 수행할 수 있는 시스템 호출을 제한합니다.
  • AppArmor와 보안 강화 리눅스는 노드에 필수 접근 제어를 추가합니다.
# Apply the runtime/default seccomp profile (securityContext)
# seccompProfile: type: RuntimeDefault
kubectl apply -f seccomp-deploy.yaml

격리 테스트

격리를 검증할 때는 테스트 파드에서 파드 간 연결과 탈출 기법을 시도하여 정책이 이를 차단하는지 확인합니다. 제어된 네임스페이스에서 수행하고, 이후 테스트 파드를 삭제합니다.

특권으로 실행되는 모든 파드와 기본 거부가 없는 모든 네임스페이스를 정확한 매니페스트 수정 사항과 함께 보고합니다.

빠른 확인

격리에 관한 지식을 확인합니다.

복습

워크로드를 격리하는 방법을 배웠습니다.

  • 파드 보안 승인(제한됨)과 securityContext는 탈출을 차단합니다.
  • 게이트키퍼와 키베르노는 사용자 지정 승인 정책을 적용합니다.
  • 네트워크는 기본적으로 개방되어 있으므로 기본 거부를 적용한 다음 명시적으로 허용합니다.
  • 송신 규칙, 메타데이터 차단 및 팔코가 방어 계층을 추가합니다.

다음 주제: 소프트웨어 공급망과 보안 정보 보호

자주 묻는 질문

“Pod 보안과 네트워크 정책” 강의는 무료인가요?

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

“Pod 보안과 네트워크 정책”에서 뭘 배우나요?

워크로드를 격리합니다. 브라우저에서 직접 실행하는 실습 코드로 Cyber Security Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cyber Security Academy을(를) 시작하는 데 경험이 필요한가요?

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

“Pod 보안과 네트워크 정책” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. Kubernetes 위협 모델
  2. RBAC와 서비스 계정
  3. Pod 보안과 네트워크 정책
  4. 공급망과 비밀 정보 보호
← Cyber Security Academy(으)로 돌아가기