CKS 쿠버네티스 보안 전문가 합격 로드맵 및 핵심 출제 영역

💡 CKS skills map 핵심 가이드 및 실전 아키텍처 핵심 요약 (Executive Summary)

본 가이드는 CKS skills map 핵심 가이드 및 실전 아키텍처의 핵심 개념, 구성 아키텍처 및 실무 엔지니어링 베스트 프랙티스를 체계적으로 정리했습니다.

📑 Table of Contents

CKS 시험은 문제에서 구체적으로 어떤 기술(AppArmor, Seccomp, RBAC 등)을 사용해야 하는지 명시하지 않고, 추상적인 보안 요구사항(예: “컨테이너의 호스트 쓰기 권한을 제한하라”, “의심스러운 시스템 콜을 로깅하라”)을 제시하는 경우가 많습니다.

이를 대비하기 위해 요구사항 상황별 해결 범주와 필요 스킬 집합을 다음과 같이 표로 정리하였습니다.


CKS 문제 해결 범위별 스킬 맵 (Skills Map)

대분류 (Domain) 상세 시나리오 (Scenario) 필요 스킬 및 리눅스/K8s 도구 (Required Skill & Tools) 핵심 CLI 명령어 / 설정 패턴 결과 검증 방법 (Verification)
1. Cluster Setup (클러스터 설정) 네트워크 트래픽 제한 NetworkPolicy 설정 kubectl apply -f netpol.yaml (podSelector, ingress/egress, ipBlock 지정) kubectl exec -it -- wget -T 2 (타임아웃 발생 여부 확인)
인프라/컴포넌트 취약점 점검 kube-bench 도구 활용 ./kube-bench run --targets master 등 실행 및 결과(FAIL) 분석 리포트의 [FAIL] 항목에 명시된 remediation 지시사항 이행
API 서버 보안 기본 강화 Admission Controller 및 NodeRestriction 적용 /etc/kubernetes/manifests/kube-apiserver.yaml 편집 / --enable-admission-plugins=NodeRestriction,... API 서버 자동 재시작 후 kubectl get po -n kube-system 정상 가동 확인
외부 이미지 승인 정책 제어 ImagePolicyWebhook 연동 Kube-apiserver의 --admission-control-config-file 및 Kubeconfig 연동 설정 승인되지 않은 이미지 배포 시 API 서버 차단 메시지 확인
2. Cluster Hardening (클러스터 강화) 리소스 권한 제어 RBAC (Role, Binding) 설정 kubectl create role/clusterrole 및 kubectl create rolebinding/clusterrolebinding kubectl auth can-i --as=system:serviceaccount::
SA 토큰 탈취 방지 ServiceAccount 보안 강화 SA 또는 Pod 정의에 automountServiceAccountToken: false 추가 Pod 내부 /var/run/secrets/kubernetes.io/serviceaccount 디렉토리 마운트 여부 확인
쿠버네티스 버전 업그레이드 kubeadm 기반 업그레이드 apt-get install kubeadm=X.Y.Z / kubeadm upgrade plan -> apply / apt-get install kubelet kubectl kubectl get nodes로 버전 확인 및 노드 상태 Ready 확인
3. System Hardening (시스템 보호) 특정 프로세스 권한 차단 AppArmor 프로필 적용 apparmor_parser -q /etc/apparmor.d/profile / Pod의 securityContext.appArmorProfile 설정 kubectl describe pod에서 에러 확인 또는 Pod 진입 후 차단 동작 확인
시스템 콜 차단/제한 Seccomp 프로필 적용 /var/lib/kubelet/seccomp/profiles/profile.json 배치 / Pod의 securityContext.seccompProfile 설정 Pod 생성 상태 및 /proc/1/status에서 Seccomp: 2 (filtering) 확인
컨테이너 엔진 데몬 보안 Docker Daemon 보호 /etc/docker/daemon.json 또는 containerd 설정 수정 (userns-remap, TLS 활성화 등) docker info 또는 systemctl status docker로 동작 모드 확인
불필요/위험 패키지 제거 Host OS Security 관리 systemctl stop/disable (예: telnet) systemctl status 또는 포트 리슨 여부 확인
4. Minimize Microservice Vulnerabilities (마이크로서비스 보호) 컨테이너 격리 및 권한 제한 SecurityContext 설정 Pod/Container 내부 설정 변경: readOnlyRootFilesystem: true, runAsNonRoot: true, capabilities: { drop: ["ALL"] } kubectl exec로 진입 후 쓰기 테스트 (touch /test -> Read-only file system 확인), id 명령어로 비-루트 여부 확인
신뢰할 수 없는 코드 안전 격리 gVisor (RuntimeClass) 활용 RuntimeClass 생성 (handler: runsc) 및 Pod 내 runtimeClassName: gvisor 바인딩 Pod 내부 dmesg 실행 시 gVisor(runsc) 커널 샌드박스 로깅 확인
L7 HTTP 세부 트래픽 제어 Cilium Network Policy CiliumNetworkPolicy CRD 생성 및 specs.egress/ingress 하위 HTTP 규칙 추가 허용되지 않은 HTTP URL 경로 호출 시 403 Forbidden 차단 확인
애플리케이션 정책 제어 OPA Gatekeeper 정책 선언 ConstraintTemplate 및 Constraint (Rego 언어) 작성 및 적용 규칙에 어긋나는 Pod 배포 시도 (kubectl apply) 시 Admission Controller 단에서 차단 확인
민감 정보 보호 Secrets Encryption at Rest EncryptionConfiguration YAML 작성 / kube-apiserver에 --encryption-provider-config 옵션 인입 Secret 생성 후 etcdctl get으로 데이터 조회 시 평문이 아닌 암호화 상태(k8s:enc:aescbc:v1...) 확인
5. Supply Chain Security (공급망 보안) 컨테이너 이미지 패키징 보안 Dockerfile 정적 하드닝 USER , RUN find / -perm /6000 -type f -exec chmod a-s {} + (setuid 제거) 빌드된 이미지 실행 시 id 확인 및 setuid 실행 파일 비활성화 검증
소프트웨어 빌 문서 생성 SBOM 생성 도구 (bom / trivy) bom generate -o sbom.spdx --image 또는 trivy sbom 지정 경로에 SPDX 규격의 .spdx 또는 JSON SBOM 파일 생성 여부 확인
이미지 보안 검증 Trivy 이미지 스캔 trivy image --severity HIGH,CRITICAL 출력 결과 중 취약점 개수 카운팅 및 리포트 파일 저장
정적 야믈 매니페스트 검증 Kubesec 정적 분석 kubesec scan pod.yaml score 점수 및 가이드라인 확인하여 야믈의 보안 미비점 수정
6. Monitoring & Logging (모니터링 및 로깅) 호스트/컨테이너 런타임 위협 감지 Falco 런타임 모니터링 /etc/falco/falco_rules.local.yaml 편집 / systemctl restart falco /var/log/syslog 또는 /var/log/falco.log에서 실시간 위협 감지 로그 모니터링
클러스터 행동 감사 Kubernetes Audit Log 설정 /etc/kubernetes/audit-policy.yaml 정책 작성 / kube-apiserver에 audit-log-path, audit-policy-file 등록 /var/log/kubernetes/audit.log 파일에 이벤트가 기록되는지 확인

CKS 문제 해결 흐름도 (Troubleshooting Flow)

Architecture & System Flow Diagram
Architecture & System Flow
Pan & Zoom


시험장에서의 빠른 판단 요령

  1. “Restrict system calls” 또는 “seccomp profile” 단어가 보이면 무조건 /var/lib/kubelet/seccomp/ 디렉토리와 securityContext.seccompProfile 매핑을 머리에 떠올려야 합니다.
  2. “Strict write permissions / Read only” 관련 요구사항은 컨테이너 내부 securityContext.readOnlyRootFilesystem: true 지정을 의미합니다.
  3. “Audit system events” 또는 “Detect runtime threats”는 호스트의 Falco 서비스나 K8s의 Audit Log 설정 변경을 지시하는 것입니다.
  4. “Sandbox containers” 또는 “Isolate untrusted workload”가 보이면 RuntimeClass (gVisor/runsc)를 생성하고 Pod 스펙에 runtimeClassName을 추가해야 합니다.
  5. “Check external image approval” 또는 “Image admission check”는 ImagePolicyWebhook 어드미션 플러그인을 활성화하라는 지시입니다.

이 포스팅은 쿠팡 파트너스 및 알리익스프레스 어필리에이트 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *