- Docker 기초: 이미지/컨테이너/Dockerfile 개념, 기본 Docker 명령어(pull, run, ps, logs, stop, rm), Registry(Docker Hub), 컨테이너 격리 및 실행 환경
- Kubernetes 아키텍처: Control Plane(API Server, etcd, Scheduler, Controller Manager), Node(kubelet, Pods), 주요 리소스(Pod, Deployment, Service, ConfigMap, Secret, Namespace)
- 컨테이너 보안 Best Practices: 최소 권한 원칙, 이미지 스캔(Trivy, Snyk), Secret 관리(Kubernetes Secrets, External Secrets Operator), 비루트 사용자 실행, 읽기 전용 파일시스템
- 런타임 보안: Trivy 취약점 스캔, Falco 이상 행위 탐지, Pod Security Standards 적용, Network Policy 구현, Minikube/K9s 실습 가이드

1. Docker 기초 이해
1.1 Docker란?
Docker는 애플리케이션을 컨테이너라는 격리된 환경에서 실행할 수 있게 해주는 플랫폼입니다. 컨테이너는 애플리케이션과 그 종속성을 함께 패키징하여 어디서든 일관되게 실행할 수 있습니다.
1.2 Docker의 핵심 개념
| 개념 | 설명 |
|---|---|
| Image | 컨테이너 실행에 필요한 파일과 설정을 포함한 템플릿 |
| Container | 이미지를 기반으로 실행되는 인스턴스 |
| Dockerfile | 이미지를 빌드하기 위한 명령어 스크립트 |
| Registry | 이미지를 저장하고 공유하는 저장소 (Docker Hub 등) |
1.3 기본 Docker 명령어
코드 예시: 전체 코드는 GitHub 예제 저장소를 참조하세요.
# 이미지 다운로드...
2. Kubernetes 핵심 개념
2.1 Kubernetes 아키텍처
Kubernetes는 컨테이너화된 워크로드와 서비스를 관리하기 위한 오케스트레이션 플랫폼입니다.
2.2 주요 Kubernetes 리소스
Pod
가장 작은 배포 단위로, 하나 이상의 컨테이너를 포함합니다.
코드 예시: 전체 코드는 GitHub 예제 저장소를 참조하세요.
apiVersion: v1...
Deployment
Pod의 선언적 업데이트를 제공합니다.
코드 예시: 전체 코드는 GitHub 예제 저장소를 참조하세요.
apiVersion: apps/v1...
Service
Pod 집합에 대한 네트워크 서비스를 노출합니다.
참고: Kubernetes Service 관련 내용은 Kubernetes Service 문서 및 Kubernetes 예제를 참조하세요.
apiVersion: v1...
3. 컨테이너 보안 Best Practices
3.1 이미지 보안
- 신뢰할 수 있는 베이스 이미지 사용
- 공식 이미지 또는 검증된 이미지 사용
- 최소한의 베이스 이미지 선택 (Alpine, Distroless)
- 취약점 스캐닝
# Trivy를 사용한 이미지 스캔 trivy image nginx:latest - 이미지 서명 및 검증
- Docker Content Trust 활성화
- Cosign을 통한 이미지 서명
3.2 런타임 보안
코드 예시: 전체 코드는 GitHub 예제 저장소를 참조하세요.
# SecurityContext 설정 예시...
3.3 네트워크 정책
참고: Kubernetes Network Policy 관련 내용은 Kubernetes Network Policy 문서 및 Network Policy 예제를 참조하세요.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all-ingress
spec:
podSelector: {}
policyTypes:
- Ingress
ingress: []
4. 실습 환경 구성
4.1 Minikube 설치
참고: Minikube 설치 관련 내용은 Minikube 공식 문서 및 Minikube GitHub 저장소를 참조하세요.
# macOS
brew install minikube
# Linux
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 클러스터 시작
minikube start --driver=docker --cpus=2 --memory=4096
4.2 K9s로 클러스터 관리
K9s는 터미널 기반 Kubernetes 대시보드입니다.
참고: 관련 예제는 공식 문서를 참조하세요.
# 설치
brew install k9s
# 실행
k9s
K9s 주요 단축키:
:pod- Pod 목록 보기:deploy- Deployment 목록 보기:svc- Service 목록 보기l- 로그 보기s- Shell 접속d- Describe 보기
5. 2025년 Kubernetes 보안 업데이트
5.1 Kubernetes 릴리스 현황
Kubernetes는 2025년에도 활발하게 발전하고 있습니다.
| 버전 | 코드네임 | 출시일 | 주요 특징 |
|---|---|---|---|
| 1.32 | Penelope | 2024년 말 | Kubernetes 첫 10년의 마지막 릴리스 |
| 1.35 | Timbernetes | 2025년 12월 | World Tree Release, 새로운 10년의 시작 |
5.2 주요 보안 기능 업데이트
Fine-grained Kubelet API Authorization (KEP-2862)
Kubernetes 1.32+에서 KubeletFineGrainedAuthz feature gate를 통해 kubelet API에 대한 세밀한 접근 제어가 가능해졌습니다.
참고: Kubelet API 접근 제어 관련 내용은 Kubernetes Kubelet 문서 및 Kubernetes RBAC 문서를 참조하세요.
# kubelet 설정에서 Fine-grained 인가 활성화
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
featureGates:
KubeletFineGrainedAuthz: true
authorization:
mode: Webhook
이 기능을 통해:
- Pod별로 kubelet API 접근 권한을 세밀하게 제어
- 특정 노드의 리소스에 대한 접근을 제한
- 최소 권한 원칙을 kubelet 레벨까지 확장
Credential Tracking
인증서 서명 기반의 credential ID 생성으로 보안 포렌식이 크게 향상되었습니다.
참고: Kubernetes Audit 및 credential 추적 관련 내용은 Kubernetes Audit 문서를 참조하세요.
# 인증서 기반 credential 추적 확인
kubectl get certificatesigningrequests -o wide
# Audit 로그에서 credential ID 확인
kubectl logs -n kube-system kube-apiserver-* | grep credentialID
보안 이점:
- 각 인증 세션에 고유 ID 부여
- 보안 사고 발생 시 추적 용이
- 인증서 갱신 및 폐기 이력 관리
User Namespaces Support
Linux 커널 6.3 이상에서 사용 가능한 User Namespaces가 Kubernetes에서 정식 지원됩니다.
코드 예시: 전체 코드는 GitHub 예제 저장소를 참조하세요.
apiVersion: v1...
보안 강화 효과:
- 컨테이너 내 root 사용자가 호스트에서는 비특권 사용자로 매핑
- 컨테이너 탈출 공격 시 피해 최소화
- 워크로드 간 격리 강화
Pod Certificates for mTLS (KEP-4317)
kubelet이 Pod용 인증서를 자동으로 요청하고 마운트하는 기능이 추가되었습니다.
코드 예시: 전체 코드는 GitHub 예제 저장소를 참조하세요.
apiVersion: v1...
주요 특징:
- 자동 인증서 rotation으로 운영 부담 감소
- Pod 간 mTLS 통신 간소화
- 인증서 만료로 인한 서비스 중단 방지
5.3 EKS 1.32 Anonymous Authentication 제한
Amazon EKS 1.32에서는 익명 인증이 health check endpoint로 제한됩니다.
참고: Amazon EKS 보안 관련 내용은 Amazon EKS 문서 및 EKS 보안 모범 사례를 참조하세요.
# EKS 1.32+ 에서의 익명 인증 설정...
5.4 Deprecation 주의사항
참고: Kubernetes Deprecated 기능 관련 내용은 Kubernetes Deprecation Guide를 참조하세요.
# Deprecated (사용 자제)...
6. 마무리
이번 주차에서는 Docker와 Kubernetes의 기본 개념부터 보안 모범 사례, 그리고 2025년 최신 Kubernetes 보안 업데이트까지 다뤘습니다. 다음 주차에서는 CI/CD와 Kubernetes 보안에 대해 더 깊이 있게 다룰 예정입니다.
다음 주차 예고: CI/CD 파이프라인에서의 보안 통합과 Kubernetes 보안 도구 실습
📚 참고 자료:
댓글
의견이나 질문을 남겨주세요. GitHub 계정으로 로그인하여 댓글을 작성할 수 있습니다.
댓글을 불러오는 중...