- CI/CD 파이프라인 보안: GitHub Actions 보안 설정(permissions 최소화, Secret 관리), SAST/DAST 통합(Semgrep, SonarQube, Gitleaks, Trivy, OWASP ZAP), Secret 스캐닝, 의존성 취약점 스캔
- Kubernetes 클러스터 보안: RBAC(Role, RoleBinding, ClusterRole, ClusterRoleBinding), Pod Security Standards(Restricted/Baseline/Privileged), Network Policy(트래픽 제어, 네임스페이스 격리), Service Account 최소 권한
- 이미지 서명 및 Secret 관리: Cosign 이미지 서명, Kubernetes Secrets 관리, External Secrets Operator, Sealed Secrets, Vault 통합
- 런타임 보안: Kyverno 정책 엔진(Admission Control, Policy as Code), Falco 이상 행위 탐지, GitOps 보안 모범 사례(ArgoCD, Flux), 실무 적용 체크리스트

1. CI/CD 파이프라인 보안 기초
1.1 CI/CD 보안의 중요성
1.2 GitHub Actions 보안 설정
코드 예시: 전체 코드는 GitHub 예제 저장소를 참조하세요.
# .github/workflows/secure-pipeline.yml...
2. Kubernetes RBAC 보안
2.1 최소 권한 원칙 적용
참고: Kubernetes RBAC 및 최소 권한 원칙 관련 내용은 Kubernetes RBAC 문서 및 Kubernetes 보안 모범 사례를 참조하세요.
# 개발자용 제한된 Role...
2.2 ServiceAccount 보안
코드 예시: 전체 코드는 GitHub 예제 저장소를 참조하세요.
# 전용 ServiceAccount 생성...
3. Pod Security Standards (PSS)
3.1 Namespace 레벨 보안 정책
참고: Pod Security Standards 관련 내용은 Kubernetes Pod Security Standards 문서 및 Kubernetes 예제를 참조하세요.
# Restricted 정책이 적용된 Namespace
apiVersion: v1
kind: Namespace
metadata:
name: secure-namespace
labels:
pod-security.kubernetes.io/enforce: restricted
pod-security.kubernetes.io/audit: restricted
pod-security.kubernetes.io/warn: restricted
3.2 보안 컨텍스트 모범 사례
코드 예시: 전체 코드는 GitHub 예제 저장소를 참조하세요.
apiVersion: apps/v1...
4. Network Policy 구현
4.1 기본 거부 정책
참고: Kubernetes Network Policy 관련 내용은 Kubernetes Network Policy 문서 및 Network Policy 예제를 참조하세요.
# 모든 인그레스/이그레스 트래픽 차단 (기본)...
4.2 필요한 트래픽만 허용
참고: Kubernetes Network Policy 관련 내용은 Kubernetes Network Policy 문서 및 Network Policy 예제를 참조하세요.
# Frontend -> Backend 통신만 허용...
5. Secret 관리
5.1 External Secrets Operator
참고: External Secrets Operator 관련 내용은 External Secrets Operator GitHub 저장소 및 External Secrets Operator 문서를 참조하세요.
# AWS Secrets Manager와 연동...
5.2 Sealed Secrets (GitOps 환경)
참고: Sealed Secrets 관련 내용은 Sealed Secrets GitHub 저장소 및 Sealed Secrets 문서를 참조하세요.
# Sealed Secrets 컨트롤러 설치
kubectl apply -f https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.24.0/controller.yaml
# Secret을 SealedSecret으로 암호화
kubeseal --format yaml < secret.yaml > sealed-secret.yaml
# Git에 안전하게 커밋 가능
git add sealed-secret.yaml
git commit -m "Add encrypted database credentials"
6. 이미지 보안
6.1 Admission Controller로 이미지 검증
참고: Kyverno를 통한 이미지 검증 관련 내용은 Kyverno GitHub 저장소 및 Kyverno 공식 문서를 참조하세요.
# Kyverno 정책: 서명된 이미지만 허용...
6.2 취약점이 있는 이미지 차단
참고: Kyverno를 통한 취약점 이미지 차단 관련 내용은 Kyverno GitHub 저장소 및 Kyverno 공식 문서를 참조하세요.
# Kyverno 정책: Critical 취약점 차단...
7. 런타임 보안
7.1 Falco 규칙 설정
코드 예시: 전체 코드는 GitHub 예제 저장소를 참조하세요.
# 의심스러운 활동 탐지 규칙...
8. 2025년 Kubernetes 보안 업데이트
8.1 Kubernetes 1.32~1.35 주요 보안 기능
Kubernetes는 2024년 말 1.32 “Penelope”를 시작으로 2025년 12월 1.35 “Timbernetes”까지 보안 기능을 대폭 강화했습니다.
Fine-grained Kubelet API Authorization (KEP-2862)
kubelet API에 대한 세밀한 접근 제어가 가능해졌습니다.
참고: Kubelet API 접근 제어 관련 내용은 Kubernetes Kubelet 문서 및 Kubernetes RBAC 문서를 참조하세요.
# RBAC을 통한 kubelet API 세밀한 제어...
보안 이점:
- 노드별, Pod별 kubelet API 접근 권한 세밀 제어
- 측면 이동(Lateral Movement) 공격 방지
- 침해 발생 시 피해 범위 최소화
Credential Tracking for Forensics
인증서 서명 기반 credential ID 생성으로 포렌식 기능이 강화되었습니다.
참고: Kubernetes Audit 및 credential 추적 관련 내용은 Kubernetes Audit 문서를 참조하세요.
# Audit Policy에서 credential 추적 활성화...
참고: Kubernetes Audit 로그 분석 관련 내용은 Kubernetes Audit 문서를 참조하세요.
# Audit 로그에서 credential 추적 예시...
User Namespaces Support (Linux Kernel 6.3+)
워크로드 격리를 크게 강화하는 User Namespaces가 정식 지원됩니다.
코드 예시: 전체 코드는 GitHub 예제 저장소를 참조하세요.
apiVersion: v1...
User Namespace 보안 효과: | 공격 시나리오 | 기존 | User Namespace 적용 | |—————|——|———————| | 컨테이너 탈출 후 root 권한 | 호스트 root 획득 가능 | 비특권 사용자로 제한 | | /proc, /sys 접근 | 민감 정보 노출 | 접근 권한 격리 | | 다른 컨테이너 침해 | 가능 | 격리로 차단 |
Pod Certificates for mTLS (KEP-4317)
kubelet이 Pod용 인증서를 자동으로 요청하고 마운트합니다.
코드 예시: 전체 코드는 GitHub 예제 저장소를 참조하세요.
apiVersion: v1...
자동 인증서 Rotation:
참고: Kubernetes 인증서 관리 관련 내용은 Kubernetes Certificate Signing Requests 문서를 참조하세요.
# CertificateSigningRequest 자동 생성 및 갱신...
8.2 EKS 1.32 Anonymous Authentication 제한
Amazon EKS 1.32부터 익명 인증이 health check endpoint로 제한됩니다.
참고: Amazon EKS 보안 관련 내용은 Amazon EKS 문서 및 EKS 보안 모범 사례를 참조하세요.
# EKS 1.32+ 익명 접근 허용 endpoint...
8.3 Deprecated 기능 및 마이그레이션
참고: Kubernetes Deprecated 기능 관련 내용은 Kubernetes Deprecation Guide를 참조하세요.
# DEPRECATED: ServiceAccount의 enforce-mountable-secrets annotation...
8.4 2025년 보안 강화 체크리스트
| 기능 | 버전 | 상태 | 적용 권장 |
|---|---|---|---|
| Fine-grained Kubelet AuthZ | 1.32+ | GA | 즉시 적용 |
| Credential Tracking | 1.32+ | GA | 포렌식 환경 필수 |
| User Namespaces | 1.32+ | GA | Linux 6.3+ 환경에서 적용 |
| Pod Certificates (mTLS) | 1.33+ | Beta | Zero Trust 환경 적용 |
| Anonymous Auth 제한 | EKS 1.32 | 적용됨 | EKS 사용자 필수 검토 |
9. CI/CD 보안 체크리스트
| 항목 | 설명 | 도구 |
|---|---|---|
| Secret 스캐닝 | 코드 내 하드코딩된 시크릿 탐지 | Gitleaks, TruffleHog |
| SAST | 정적 애플리케이션 보안 테스트 | Semgrep, SonarQube |
| SCA | 오픈소스 의존성 취약점 스캔 | Trivy, Snyk |
| 컨테이너 스캔 | 이미지 취약점 스캔 | Trivy, Clair |
| IaC 스캐닝 | 인프라 코드 보안 검사 | Checkov, KICS |
| DAST | 동적 애플리케이션 보안 테스트 | OWASP ZAP |
| 이미지 서명 | 빌드 아티팩트 무결성 보장 | Cosign, Notary |
10. 마무리
이번 주차에서는 CI/CD 파이프라인과 Kubernetes 환경의 보안을 강화하는 다양한 방법을 학습했습니다. 또한 2025년 Kubernetes 보안 업데이트를 통해 Fine-grained Kubelet API Authorization, Credential Tracking, User Namespaces, Pod Certificates 등 최신 보안 기능들을 살펴보았습니다. Shift-Left Security 원칙에 따라 개발 초기 단계부터 보안을 적용하는 것이 중요합니다.
다음 주차 예고: DevSecOps 전체 통합 정리 및 실무 적용 가이드
📚 참고 자료:
댓글
의견이나 질문을 남겨주세요. GitHub 계정으로 로그인하여 댓글을 작성할 수 있습니다.
댓글을 불러오는 중...