Cloud Security Course 7Batch 8Week: CI/CD and Kubernetes Security Practical Guide

클라우드 시큐리티 과정 7기 - 8주차: CI/CD와 Kubernetes 보안 실전 가이드

Google 번역
AI 요약
제목 클라우드 시큐리티 과정 7기 - 8주차: CI/CD와 Kubernetes 보안 실전 가이드
카테고리 Kubernetes
태그 CI/CD Kubernetes Security DevSecOps GitOps Pipeline-Security
핵심 내용
  • 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), 실무 적용 체크리스트
기술/도구 Kubernetes, GitHub Actions, Kyverno, Falco, Cosign
대상 독자 클라우드 보안 전문가, DevOps 엔지니어, 보안 담당자

Cloud Security Course 7Batch 8Week: CI/CD and Kubernetes Security Practical Guide

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 계정으로 로그인하여 댓글을 작성할 수 있습니다.

댓글을 불러오는 중...