본문 바로가기

* Twodragon/보안 강의 (Course)

🚀 클라우드 보안 과정 8기 7주차: Docker & Kubernetes 보안 실전 가이드 - 컨테이너 보안부터 클러스터 보안까지

안녕하세요, Twodragon입니다.

지난 6주차에서는 AWS WAF/CloudFront 보안 아키텍처와 GitHub DevSecOps 실전을 다루었습니다. 이번 클라우드 보안 과정 8기 7주차에서는 Docker & Kubernetes 보안 실전 가이드를 통해 컨테이너 보안부터 클러스터 보안까지 실무 중심으로 다루고자 합니다.

특히 이번 주에는 2024-2026년 최신 Kubernetes 보안 기능과 실전 보안 사례를 결합하여, DevSecOps 관점에서 컨테이너 보안을 강화하는 방법을 깊이 있게 다뤄보겠습니다.

본 과정은 온라인 미팅으로 진행되며, ‘20분 강의 + 5분 휴식’ 사이클로 멘티분들의 집중력을 최대로 유지하며 진행됩니다.


📅 7주차 타임테이블 (Agenda)

10:00 - 10:20 근황 토크 & 과제 피드백 한 주간의 보안 이슈 공유 및 Q&A
10:25 - 10:50 Docker/Container/Kubernetes 기본 이해 Docker 이미지/컨테이너 개념, VM vs Container, Kubernetes 핵심 리소스
11:00 - 11:25 컨테이너 보안 Best Practices Docker 이미지 보안, Secret 관리, 비루트 실행, 이미지 스캔(Trivy, Snyk)
11:30 - 11:50 Kubernetes 보안 아키텍처 & Best Practices Pod Security Standards, User Namespaces, Network Policies, RBAC, 보안 모범 사례
11:55 - 12:00 실습 및 Q&A Minikube 보안 환경 구성, 실전 보안 강화 사례

🌐 1. Docker/Container/Kubernetes 기본 이해

컨테이너와 Kubernetes를 이해하기 전에 기본 개념을 명확히 하는 것이 중요합니다.

1.1 Docker 기본 개념

Docker의 핵심 구성 요소

개념 설명 비유
Image 컨테이너 실행에 필요한 파일과 설정을 포함한 템플릿 빵을 만드는 레시피
Container 이미지를 기반으로 실행되는 인스턴스 레시피로 만든 빵
Dockerfile 이미지를 빌드하기 위한 명령어 스크립트 레시피 작성 방법
Registry 이미지를 저장하고 공유하는 저장소 (Docker Hub 등) 빵 레시피 도서관

기본 Docker 명령어

참고: Docker 기본 명령어는 Docker 공식 문서 및 Docker GitHub 저장소를 참조하세요.

# 이미지 다운로드
docker pull nginx:latest

# 컨테이너 실행
docker run -d -p 8080:80 --name my-nginx nginx:latest

# 실행 중인 컨테이너 확인
docker ps

# 컨테이너 로그 확인
docker logs my-nginx

# 컨테이너 중지
docker stop my-nginx

# 컨테이너 삭제
docker rm my-nginx

1.2 Container 이해

VM vs Container 비교

항목 가상머신(VM) 컨테이너
실행 단위 전체 OS 포함 앱 + 라이브러리
성능 무겁고 느림 경량, 빠름
실행 환경 독립적 커널 호스트 커널 공유
사용 목적 레거시 시스템, 완전 격리 마이크로서비스, DevOps
리소스 사용 높음 (GB 단위) 낮음 (MB 단위)
시작 시간 느림 (분 단위) 빠름 (초 단위)

컨테이너 격리 원리

컨테이너는 Linux 커널의 다음 기능을 활용하여 격리를 제공합니다:

Linux 기능 설명 격리 효과
Namespaces 프로세스, 네트워크, 파일시스템 격리 각 컨테이너가 독립적인 환경을 가짐
Cgroups CPU, 메모리, I/O 리소스 제한 리소스 사용량 제어
Union File Systems 레이어드 파일시스템 이미지 효율적 관리

1.3 Kubernetes 기본 개념

Kubernetes 핵심 리소스

리소스 설명 비유
Pod 하나 이상의 컨테이너로 구성된 최소 배포 단위 컨테이너를 담는 상자
Deployment Pod의 배포, 업데이트, 스케일링을 관리 Pod를 관리하는 관리자
Service Pod에 대한 안정적인 네트워크 엔드포인트 제공 Pod를 찾는 전화번호부
Namespace 리소스를 논리적으로 분리하는 가상 클러스터 아파트의 층 구분
ConfigMap 설정 데이터를 저장하는 리소스 설정 파일 저장소
Secret 민감한 데이터를 저장하는 리소스 비밀 정보 저장소

Kubernetes 아키텍처

구성 요소 설명 역할
Control Plane 클러스터 관리 및 제어 API Server, etcd, Scheduler, Controller Manager
Node 실제 워크로드가 실행되는 서버 kubelet, kube-proxy, 컨테이너 런타임
API Server Kubernetes API를 제공하는 중앙 엔드포인트 모든 요청의 진입점
etcd 클러스터 상태를 저장하는 분산 키-값 저장소 클러스터의 데이터베이스
Scheduler Pod를 적절한 Node에 배치 리소스 할당 결정
kubelet Node에서 Pod를 관리하는 에이전트 Pod 생명주기 관리

참고: Kubernetes 기본 개념은 Kubernetes 공식 문서 및 Kubernetes GitHub 저장소를 참조하세요.

기본 Kubernetes 명령어

# 클러스터 정보 확인
kubectl cluster-info

# Node 목록 확인
kubectl get nodes

# Pod 목록 확인
kubectl get pods

# Namespace 목록 확인
kubectl get namespaces

# Deployment 생성
kubectl create deployment nginx --image=nginx:latest

# Deployment 확인
kubectl get deployments

# Pod 상세 정보 확인
kubectl describe pod <pod-name>

# Pod 로그 확인
kubectl logs <pod-name>

# Pod 삭제
kubectl delete pod <pod-name>

🌐 2. 컨테이너 보안 Best Practices

컨테이너 보안은 DevSecOps의 핵심입니다. 이미지 빌드 단계부터 런타임까지 전 과정에서 보안을 고려해야 합니다.

 

클라우드 시큐리티 과정 7기 - 7주차 Docker 및 Kubernetes 이해

안녕하세요, Twodragon입니다. 이번 포스트에서는 클라우드 보안 과정 7기의 Dcoker 및 Kubernetes 이해에 관련된 내용을 다루고자 합니다. 이 과정은 게더 타운에서 진행되며, 각 세션은 20분 강의 후 5

twodragon.tistory.com


🤖 3. Kubernetes 보안 아키텍처

Kubernetes 클러스터 보안은 다층 방어 전략으로 접근해야 합니다.

 

Security

Concepts for keeping your cloud-native workload secure.

kubernetes.io

 


 

✅ 보안 체크리스트

보안 영역체크리스트 항목설명

Docker 이미지 비루트 사용자 실행 USER 지시어로 비루트 사용자 지정
  읽기 전용 파일시스템 readOnlyRootFilesystem: true 설정
  최소 Capabilities capabilities.drop: ["ALL"] 설정
  이미지 스캔 자동화 CI/CD 파이프라인에 Trivy/Snyk 통합
Kubernetes 보안 Pod Security Standards 적용 Namespace에 PSS 레벨 설정
  User Namespaces 활성화 hostUsers: false 설정 (Kubernetes 1.33+)
  Network Policies 적용 Pod 간 통신 제어 정책 설정
  RBAC 최소 권한 원칙 필요한 권한만 부여
  Secret 관리 Kubernetes Secrets 또는 External Secrets Operator 사용
모니터링 런타임 보안 모니터링 Falco 등 런타임 보안 도구 통합
  취약점 스캔 정기 실행 주기적인 이미지 및 클러스터 스캔

결론

Docker & Kubernetes 보안은 DevSecOps의 핵심입니다. 컨테이너 보안부터 클러스터 보안까지 전 과정에서 보안을 고려해야 합니다.

주요 포인트:

  1. Docker/Container/Kubernetes 기본 이해: 이미지, 컨테이너, Pod 개념 이해, VM vs Container 비교
  2. 컨테이너 보안 Best Practices: 비루트 실행, 읽기 전용 파일시스템, 최소 Capabilities, 이미지 스캔, Secret 관리
  3. Kubernetes 보안 아키텍처: Pod Security Standards, User Namespaces, Network Policies, RBAC
  4. Kubernetes 보안 Best Practices (2024-2026): 이미지 서명 및 검증, 런타임 모니터링, 자동화된 보안 검증, 최신 Kubernetes 보안 기능(Kubernetes 1.32-1.35+, Minikube 1.37.0+, K9s)
  5. 실전 보안 강화 사례: DevSecOps 관점에서의 보안 강화 워크플로우, 취약점 발견 및 수정 사례
  6. 실습: Minikube 보안 환경 구성, Pod Security Standards 적용, 이미지 스캔 자동화

이 가이드를 참고하여 여러분의 컨테이너 환경 보안을 강화하시기 바랍니다.

관련 자료