Certificated 도전/KCSA - Kubernetes

[KCSA]Kubernetes 애플리케이션 보안 체크리스트 (개발자용)

지추월자 2025. 3. 30. 10:07
반응형

✅ Kubernetes 애플리케이션 보안 체크리스트 (개발자용)

📌 1. 기본 보안 하드닝 (Base Security Hardening)

📐 애플리케이션 설계

항목 설명

보안 원칙을 고려해 설계 최소 권한, 입력 검증, 무신뢰 기본 원칙 등
적절한 QoS 클래스 설정 requests와 limits 설정 필수
memory limit ≥ memory request 설정 OOM 이슈 방지
민감한 앱은 CPU limit도 설정  

🆔 서비스 계정

항목 설명

default ServiceAccount 사용 금지 마이크로서비스 별로 생성
automountServiceAccountToken: false 필요할 때만 API 접근 허용

🔒 2. 보안 컨텍스트 설정

🧱 Pod-Level 설정

항목 설명

runAsNonRoot: true 설정 루트 실행 방지
runAsUser, runAsGroup 사용 비권한 사용자 실행
fsGroup 설정 볼륨 접근 그룹 지정
PodSecurity 기준 준수 Baseline 또는 Restricted 정책 적용된 네임스페이스 사용 권장

📦 Container-Level 설정

항목 설명

allowPrivilegeEscalation: false 권한 상승 방지
readOnlyRootFilesystem: true 루트 파일 시스템을 읽기 전용으로
privileged: false 특권 컨테이너 사용 금지
capabilities.drop: ["ALL"] 기본 Capabilities 제거 후 필요한 것만 추가

🔐 3. RBAC 설정

항목 설명

create, patch, update, delete는 필요한 경우에만
Role, RoleBinding 생성 권한은 최소화
system:unauthenticated 그룹은 제거 (API에 누구나 접근 위험)

🛡️ 민감한 앱엔 ValidatingAdmissionPolicy로 쓰기 제한 강화도 고려


🐳 4. 이미지 보안

항목 설명

이미지 스캔 도구 사용 배포 전 보안 취약점 탐지
이미지 서명 확인 무결성 검증 (예: cosign, sigstore)
root로 동작하지 않도록 USER 설정 포함된 이미지 사용 권장  

🌐 5. 네트워크 정책

항목 설명

NetworkPolicy 사용 Ingress, Egress 모두 제한 후 필요한 것만 허용
기본 “deny all” 설정 후 필요한 통신만 허용  
사용자가 배포하는 환경에서 적용 가능한지 문서화 또는 fallback 고려  

⚙️ 6. 고급 보안 하드닝


🐧 Linux 커널 기반 보안 설정

항목 설명

seccomp 적용 위험한 syscall 차단
AppArmor 적용 파일/네트워크 권한 제한
SELinux 설정 라벨 기반 강제 접근 제어 (MAC)

🧪 RuntimeClass

항목 설명

runtimeClassName 사용 gVisor, kata-containers 등으로 고립 강화
민감한 앱은 가상화된 런타임에서 실행 고려  
고신뢰 환경에선 Confidential VM까지도 고려 가능  

✅ 최종 요약: 개발자용 보안 체크리스트

카테고리 핵심 점검 포인트

Pod 보안 non-root 실행, 권한 최소화, rootFS 읽기 전용
ServiceAccount default 사용 X, 자동 토큰 마운트 금지
RBAC 최소 권한 설정, 특권 Role 생성 제한
이미지 서명 검증, 스캔 완료된 이미지만 배포
네트워크 NetworkPolicy 적용 필수
컨테이너 보안 seccomp / AppArmor / SELinux 적용
런타임 격리 RuntimeClass로 민감 앱 고립
도구 적용 AdmissionPolicy, 이미지 스캐너, 서명 툴 연동 권장

 

반응형