Certificated 도전/KCSA - Kubernetes

[KCSA]Kubernetes 보안 체크리스트 요약 (한눈에 보기)

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

✅ Kubernetes 보안 체크리스트 요약 (한눈에 보기)

🔐 인증(Authentication) & 권한(Authorization)

항목 설명

system:masters 그룹 사용 금지 초기 부트스트랩 이후엔 사용 금지 (비상용으로만)
컨트롤러 매니저는 서비스 계정으로 실행 --use-service-account-credentials 사용
인증서 관리 루트/중간 인증서 만료는 3년 이내, 루트는 오프라인/제한 관리
접근 권한 정기 검토 최소 24개월 이내 정기 검토
RBAC 모범 사례 준수 최소 권한 원칙에 따라 Role/Binding 설정

🌐 네트워크 보안

항목 설명

CNI 플러그인은 NetworkPolicy 지원해야 함
Ingress/Egress 모두 제어하는 NetworkPolicy 적용
기본은 “deny all” 정책 적용 후 허용 추가 (화이트리스트 접근 방식)
서비스 메시로 내부 통신 암호화 (예: Istio, Linkerd)
API, kubelet, etcd는 인터넷에 공개되면 안 됨
클라우드 메타데이터 API 접근 제한 (169.254.169.254)
LoadBalancer, ExternalIPs 사용 제한 (CVE-2020-8554 참고)

🛡️ Pod 보안

항목 설명

RBAC 권한은 리소스별 최소 권한으로  
Pod Security Standards 적용 (privileged, baseline, restricted)  
메모리 제한 = 요청값 이하로 설정 (OOM 방지)  
민감한 워크로드는 CPU limit도 설정  
Seccomp, AppArmor, SELinux 적용  
Pod는 가급적 non-root로 실행 (runAsNonRoot: true)  

🔍 감사 & 로깅

항목 설명

Audit logs 활성화 & 접근 제한  
민감한 작업 로깅 필요 (ex. 인증, 생성, 삭제 등)  

📦 이미지 보안

항목 설명

컨테이너 이미지는 최소한의 구성으로 (디버깅 도구 X)
사용자 정의 이미지도 non-root로 실행되도록 설정
태그 대신 SHA256 Digest로 참조
이미지 서명/무결성 검증 사용 (예: Cosign, Sigstore)
이미지 스캔 도구 사용 (취약점 탐지 + 패치 확인)

🔐 Secrets & Config

항목 설명

ConfigMap으로 민감한 정보 저장 금지 → Secrets 사용
etcd 내 Secrets는 암호화 저장 (encryption at rest)
필요한 Pod에만 Secret 마운트 (자동 마운트 금지)
Bound Service Account Token 사용 (만료 토큰, v1.22 이상)
Secrets는 가능한 경우 볼륨으로 주입 (env보단 파일이 안전)

📌 Pod 배치 & 격리

항목 설명

민감도에 따라 Pod 분리 배치
고감도 앱은 전용 노드 또는 샌드박스 런타임 사용
Pod 배치 제어:
  • nodeSelector
  • PodTolerationRestriction
  • RuntimeClass 사용 가능 |

⚙️ Admission Controller 보안

그룹 설명

✅ 기본 활성 추천 PodSecurity, LimitRanger, ResourceQuota, Mutating/Validating Webhook 등
🔐 활성화 추천 NodeRestriction, DenyServiceExternalIPs, AlwaysPullImages 등
🎯 고급 제어용 ImagePolicyWebhook 등으로 이미지 검증, 서명 체크

🎯 보안 설계 시 핵심 팁 요약

  1. 모든 권한은 최소화(Minimum Privilege) 원칙 적용
  2. Pod는 루트 권한 없이 실행, 보안 컨텍스트 활용
  3. Seccomp / AppArmor / SELinux 조합 적용으로 커널 단 보안 강화
  4. 네트워크 통신은 기본 차단, 명시적으로 허용
  5. 이미지 무결성 검증 & 정기 스캔
  6. 클러스터 관리자는 주기적인 감사 및 리뷰 필요
  7. 정책은 단일 설정이 아닌 Admission Controller 조합 활용
  8. 멀티 테넌시는 네임스페이스 + RBAC + Node 격리 조합으로 구성
반응형