피드로 돌아가기
Dev.toSecurity
원문 읽기
Multi-stage Build와 K8s SecurityContext를 통한 컨테이너 공격 표면 최소화
Container Security for SREs: The Practical Checklist
AI 요약
Context
빌드 도구가 포함된 비대한 베이스 이미지와 Root 권한 실행으로 인한 보안 취약점 노출. 리소스 제한 부재 및 환경 변수 기반 Secret 관리로 인한 시스템 안정성 및 기밀성 저하 문제 발생.
Technical Solution
- Multi-stage Build 도입을 통한 빌드 도구 제거 및 최종 이미지 크기 800MB에서 50MB로 최적화
- Trivy-action 기반 CI 파이프라인 구축으로 HIGH/CRITICAL 취약점 발견 시 Build Fail 처리
- Kubernetes securityContext 설정을 통한 Non-Root 실행 및 readOnlyRootFilesystem 강제로 권한 상승 원천 차단
- Default-deny-all NetworkPolicy 설정을 통한 Pod 간 불필요한 트래픽 차단 및 서비스 간 최소 권한 통신 구현
- External Vault 연동 및 SecretKeyRef 사용을 통한 Pod Spec 내 민감 정보 노출 방지
- Resource Limits 설정을 통한 단일 컨테이너의 리소스 독점 및 Disk Filling 공격 방어
실천 포인트
1. Multi-stage Build 적용 여부 및 최종 이미지 내 Build Tool 포함 여부 확인
2. K8s securityContext의 runAsNonRoot 및 allowPrivilegeEscalation 설정 검토
3. Namespace 레벨의 Pod Security Standards(restricted) 적용 상태 점검
4. NetworkPolicy의 Default Deny 설정 및 화이트리스트 기반 통신 정의 여부 확인
5. Secret 관리 체계가 환경 변수에서 Vault 등 외부 저장소로 전환되었는지 검토