[Kubernetes Security Fundamentals] Pod Security Standards & Pod Security Admissions

IMKUNYOUNG·2025년 3월 6일
0

KCSA

목록 보기
8/11

1. Pod Security Admission (PSA) 개요

  • kubernetes KEP-2579를 통해 PSP를 대체할 새로운 보안 방식이 도입됨.
  • 기본적으로 활성화된 Admission Controller이며, 추가 설정 없이 사용 가능.
  • 네임스페이스 수준에서 보안 정책을 적용.
  • 복잡한 보안 요구 사항은 Kyverno, OPA Gatekeeper 같은 외부 솔루션과 함께 사용 가능.

pod-security-admission

2. Pod Security Standards (PSS)

PSA는 3가지 사전 정의된 보안 프로필을 제공함.

1) Privileged (최소 제한)

  • 제한 없음, 높은 권한을 허용
  • 보안 제한이 없으며, 권한 상승이 가능한 환경.
  • 관리자가 완전한 제어가 필요할 때 사용.

2) Baseline (기본 보안)

  • 일반적인 컨테이너 기반 애플리케이션을 위해 설계됨.
  • 위험한 권한 상승을 방지하지만, 일반적인 사용 사례는 허용.
  • 보안과 편의성의 균형을 맞춘 설정.

3) Restricted (최대 제한)

  • 최신 보안 모범 사례를 적용하며, 강력한 보안을 제공.
  • 일부 애플리케이션과 호환성 문제가 발생할 수 있음.
  • 보안을 최우선으로 하는 환경에서 사용.

pod-security-standards

3. PSA의 동작 모드 (Mode 설정)

PSA는 정책 위반 시 취할 행동을 모드로 설정할 수 있음.

모드동작 방식
Enforce위반 시 Pod 생성이 거부됨
Audit위반해도 Pod 생성이 허용되지만, 감사 로그에 기록됨
Warn위반해도 Pod 생성이 허용되지만, 사용자에게 경고 메시지 표시

여러 모드 조합하여도 적용 가능

4. PSA 적용 예시

각 네임스페이스에 다른 보안 정책을 적용할 수 있음.

급여 시스템 (Payroll)

  • 보안이 중요한 시스템이므로 제한된 정책(Restricted) + Enforce 적용
  • 위반하는 Pod는 생성 불가
kubectl label namespace payroll \
  pod-security.kubernetes.io/enforce=restricted

HR 시스템

  • 보안을 유지하되, 너무 엄격하지 않은 기본(Baseline) + Enforce 적용
  • 일부 보안 규칙을 완화하여 운영 가능
kubectl label namespace hr \
  pod-security.kubernetes.io/enforce=baseline

개발 환경 (Dev)

  • 개발자 편의를 위해 보안 정책을 완화하여 Restricted + Warn 적용
  • 보안 정책을 위반하더라도 Pod 생성은 가능하지만 경고 표시
kubectl label namespace dev \
  pod-security.kubernetes.io/warn=restricted

5. Kubernetes 보안 정책 적용 시 고려 사항

  • 네임스페이스별 보안 수준을 설정하여 운영 환경과 개발 환경의 유연성 유지
  • Pod 보안 정책을 사전 정의된 프로필(Privileged, Baseline, Restricted) 중 선택
  • Enforce / Audit / Warn 모드를 적절히 조합하여 정책 위반 시의 대응 방식 결정
  • Kyverno, OPA Gatekeeper 등과 함께 사용하여 세부적인 정책 강화 가능

0개의 댓글