튜토리얼2025년 12월 25일Chris Jang22 조회

Pod Security Standards — PSP 폐기 이후 Kubernetes 보안 정책 관리 완벽 가이드

Kubernetes 환경에서 Pod 보안은 클러스터의 전체적인 안정성과 신뢰도를 결정하는 핵심 요소입니다. Pod Security Policy(PSP)가 폐기된 이후, Pod Security Standards(PSS)와 동적 Admission Controller를 활용한 Kubernetes 보안 정책 관리 전략은 클러스터의 공격 표면을 최소화하고 규제 준수를 달성하는 데 필수적인 접근 방식이 되었습니다. 이 가이드에서는 PSS의 깊이 있는 분석과 함께, 실전 적용 가능한 구성 및 운영 방안을 제시하여 안전하고 효율적인 Kubernetes 환경 구축을 지원합니다.

#Kubernetes#Pod Security Standards#PSS#PSP#Admission Controller#OPA Gatekeeper#Kyverno#Kubernetes Security#SRE#Cloud Native#SeekersLab#FRIIM CNAPP#Seekurity SIEM#KYRA AI Sandbox
Pod Security Standards — PSP 폐기 이후 Kubernetes 보안 정책 관리 완벽 가이드
Chris Jang

Chris Jang

2025년 12월 25일

Kubernetes 클러스터의 안정성과 신뢰성을 확보하는 데 있어 Pod 보안은 더 이상 선택 사항이 아닌 필수 요구 사항입니다. 특히 2020년 1.21 버전에서 Deprecation이 발표되고 1.25 버전에서 완전히 제거된 Pod Security Policy(PSP) 이후, Kubernetes 환경의 보안 정책 관리 방식은 근본적인 변화를 맞이하였습니다. 이 변화의 핵심은 바로 Pod Security Standards(PSS)입니다. PSS는 Kubernetes Pod의 보안 컨텍스트를 제한하여 일반적인 보안 위협으로부터 클러스터를 보호하는 표준화된 방법을 제공합니다. SRE Engineer의 관점에서, PSS는 시스템의 안정성과 보안이라는 두 가지 중요한 목표를 동시에 달성하기 위한 강력한 도구입니다.

과거 PSP의 복잡성과 관리의 어려움은 많은 운영팀에게 부담으로 작용하였습니다. PSS는 이러한 단점을 보완하며, 명확하고 계층적인 보안 프로필을 통해 사용자들이 보다 쉽게 보안 정책을 적용하고 관리할 수 있도록 설계되었습니다. 이 글에서는 PSS의 기술적 개요부터 아키텍처 분석, 핵심 메커니즘, 성능 비교, 실전 구성 및 운영 방안에 이르기까지, Kubernetes 보안 정책 관리에 대한 포괄적인 가이드를 제시하고자 합니다. 궁극적으로 PSS는 클러스터의 공격 표면을 최소화하고, 잠재적 장애 요소를 제거하며, 서비스의 무결성을 유지하는 데 기여합니다. 이를 통해 우리는 SLO(Service Level Objective)를 충족하고 고객에게 안정적인 서비스를 제공할 수 있습니다.

기술 개요: Pod Security Standards의 본질

Pod Security Standards(PSS)는 Kubernetes Pod에 적용되는 세 가지 미리 정의된 보안 프로필(Privileged, Baseline, Restricted)을 의미합니다. 이 표준은 특정 보안 제약 조건 집합을 Pod에 강제하여 잠재적인 보안 위험을 완화하는 것을 목표로 합니다. PSS의 핵심 가치는 클러스터 운영자에게 Pod의 권한 에스컬레이션, 호스트 시스템 접근, 컨테이너 이미지 무결성 등 다양한 보안 취약점을 예방할 수 있는 일관되고 표준화된 방법을 제공하는 데 있습니다. PSS는 과거 PSP가 가졌던 복잡하고 비직관적인 정책 정의의 한계를 극복하고, 더욱 사용자 친화적인 접근 방식을 제공합니다.

PSS는 Kubernetes 클러스터 내에서 Pods를 생성하거나 업데이트할 때 동작하는 Admission Controller의 한 종류인 PodSecurity Admission Controller에 의해 강제됩니다. 이는 Pod Spec이 클러스터에 등록되기 전에 정의된 PSS 프로필에 따라 유효성을 검사하도록 하여, 보안 정책 위반을 사전에 차단합니다. PSS는 컨테이너 런타임 보안, 네트워크 정책, RBAC(Role-Based Access Control) 등 다양한 Kubernetes 보안 생태계 구성 요소와 함께 작동하여 다층적인 방어 체계를 구축하는 데 중요한 역할을 합니다. 특히 CIS Benchmarks for Kubernetes와 같은 업계 표준 보안 가이드라인 준수를 위한 기초적인 요구 사항들을 효과적으로 충족시킬 수 있습니다. 안정적인 서비스 운영을 지향하는 SRE 관점에서, PSS는 예측 불가능한 보안 사고를 방지하고 서비스 가용성을 높이는 데 필수적인 기반 기술입니다.

아키텍처 분석: PSS의 동작 원리

PSS는 Kubernetes API Server의 Admission Control 메커니즘을 통해 클러스터에 적용됩니다. 이는 Pod가 생성되거나 업데이트되는 모든 요청에 대해 보안 정책을 검사하는 핵심적인 위치에 존재합니다. 전체 아키텍처는 다음과 같습니다.

  • API Server: 클러스터의 모든 요청이 통과하는 게이트웨이입니다. Pod 생성/업데이트 요청이 들어오면, 이 요청은 Admission Controllers 체인을 거칩니다.
  • PodSecurity Admission Controller: Kubernetes 1.25 버전부터 기본적으로 활성화되어 있으며, Namespace에 정의된 PSS 모드 레이블을 기반으로 Pod Spec을 검사합니다. 이 컨트롤러는 Core Kubernetes 프로젝트의 일부로, 외부 의존성 없이 작동합니다.
  • Namespace 레이블: PSS 정책은 개별 Pod에 직접 적용되는 것이 아니라, Pod가 속한 Namespace에 레이블을 통해 선언됩니다. 각 Namespace는 pod-security.kubernetes.io/enforce, pod-security.kubernetes.io/audit, pod-security.kubernetes.io/warn와 같은 레이블을 가질 수 있으며, 이를 통해 특정 PSS 모드(Privileged, Baseline, Restricted)를 강제하거나, 감사하거나, 경고할 수 있습니다.
  • 동적 Admission Controller (Webhook-based): OPA Gatekeeper, Kyverno와 같은 Policy Engine은 PSS가 제공하는 세 가지 표준 프로필을 넘어 더욱 세밀하고 사용자 정의 가능한 보안 정책을 적용하는 데 사용됩니다. 이들은 Mutating Admission Webhook 또는 Validating Admission Webhook으로 구성되어, PodSecurity Admission Controller 이후 또는 이전에 요청을 가로채어 추가적인 정책 검사를 수행합니다.
  • etcd: 모든 Kubernetes 오브젝트와 정책 정의는 etcd에 저장됩니다. Admission Controller는 etcd에 저장된 정책을 참조하여 요청의 유효성을 검사합니다.

데이터 흐름은 다음과 같습니다. 사용자가 kubectl apply -f pod.yaml 명령을 실행하면, Pod Spec이 API Server로 전송됩니다. API Server는 먼저 인증(Authentication) 및 인가(Authorization) 과정을 거친 후, Admission Controllers 체인으로 요청을 전달합니다. 이때 PodSecurity Admission Controller가 Namespace 레이블을 확인하여 PSS 정책을 적용합니다. 만약 동적 Admission Controller가 구성되어 있다면, 이어서 추가적인 사용자 정의 정책 검사가 진행됩니다. 모든 검사를 통과한 Pod Spec만이 etcd에 저장되고, 스케줄러를 통해 노드에 배포됩니다. 이 구조는 GitOps 원칙과 결합될 때, 보안 정책의 코드화 및 자동화된 배포를 가능하게 하여 클러스터의 보안 posture를 일관되게 유지하고 관리 비용을 절감하는 데 큰 이점을 제공합니다.

핵심 메커니즘

3.1. Pod Security Standards 모드 이해 및 적용

PSS는 세 가지 주요 보안 모드를 제공하며, 각 모드는 다른 수준의 보안 제약 조건을 정의합니다. 클러스터 운영자는 워크로드의 특성과 요구 사항에 따라 적절한 모드를 선택하여 Namespace에 적용해야 합니다.

  • Privileged: 이 모드는 어떠한 보안 제약도 적용하지 않습니다. Pod는 호스트 시스템에 대한 광범위한 접근 권한을 가질 수 있으며, 이는 보안상 매우 위험합니다. 특수한 시스템 DaemonSet이나 운영 도구와 같이 호스트 리소스에 직접 접근해야 하는 극히 제한적인 경우에만 사용되어야 합니다.
  • Baseline: 이 모드는 알려진 권한 에스컬레이션(Privilege Escalation) 위험을 방지하기 위한 최소한의 보안 제약 조건을 적용합니다. 예를 들어, hostPath 볼륨의 사용을 제한하고, runAsNonRoot를 강제하며, 특권 있는 컨테이너의 실행을 금지합니다. 이는 대부분의 비즈니스 애플리케이션 워크로드에 적합한 기본 보안 수준입니다.
  • Restricted: 가장 엄격한 보안 모드입니다. Baseline의 모든 제약 조건 외에, 더욱 강력한 보안 설정을 요구합니다. 예를 들어, 컨테이너의 특정 Linux Capabilities 사용을 제한하고, seccompProfile을 강제하며, readOnlyRootFilesystem을 권장합니다. 이는 민감한 데이터 처리, 규제 준수가 엄격한 환경, 또는 제로 트러스트(Zero Trust) 아키텍처를 구현할 때 적합합니다.

각 모드는 Namespace에 레이블을 추가하여 적용됩니다. 예를 들어, 특정 Namespace에 Restricted 모드를 강제하고 싶다면 다음과 같은 레이블을 사용합니다.

apiVersion: v1kind: Namespacemetadata:  name: secure-app  labels:    pod-security.kubernetes.io/enforce: restricted    pod-security.kubernetes.io/audit: restricted    pod-security.kubernetes.io/warn: restricted

여기서 enforce는 정책 위반 시 Pod 생성을 거부하고, audit는 위반 사항을 감사 로그에 기록하며, warn은 사용자에게 경고 메시지를 표시합니다. SRE 관점에서는 auditwarn 모드를 통해 점진적으로 정책을 강화하고, 프로덕션 환경에 영향을 미치지 않으면서 정책 위반 사항을 사전에 파악하는 것이 중요합니다. 이 데이터를 기반으로 Seekurity SIEM과 같은 중앙 집중식 로그 관리 시스템에서 위반 패턴을 분석하고, 필요한 경우 정책 조정을 통해 안정적인 운영을 유지할 수 있습니다.

3.2. 동적 Admission Controller를 활용한 고급 정책 관리

내장된 PodSecurity Admission Controller는 PSS 모드를 통해 기본적인 보안 정책을 제공하지만, 클러스터 운영 환경은 PSS로만 해결할 수 없는 복잡한 요구 사항을 가질 수 있습니다. 예를 들어, 특정 이미지 레지스트리만 허용하거나, 모든 Pod에 특정 리소스 제한을 강제하거나, 특정 환경 변수 사용을 금지하는 등의 세밀한 제어가 필요할 수 있습니다. 이러한 고급 정책 관리를 위해 OPA Gatekeeper 또는 Kyverno와 같은 동적 Admission Controller를 활용합니다.

이들 Policy Engine은 CRD(Custom Resource Definition)를 통해 정책을 코드화하고 관리하며, Admission Webhook을 이용하여 Kubernetes API 요청을 가로채어 사용자 정의 정책을 적용합니다. 이를 통해 클러스터 전체에 걸쳐 일관된 보안 거버넌스를 구현할 수 있습니다.

OPA Gatekeeper 예시: 특정 레이블 강제

다음은 OPA Gatekeeper를 사용하여 모든 Pod에 app 레이블이 있어야 함을 강제하는 Constraint 예시입니다. 이는 클러스터 내 리소스에 대한 가시성과 관리를 향상시키는 데 기여합니다.

apiVersion: constraints.gatekeeper.sh/v1beta1kind: K8sRequiredLabelsmetadata:  name: pod-must-have-app-labelspec:  match:    kinds:    - apiGroups: [""]      kinds: ["Pod"]  parameters:    labels:    - app

Kyverno 예시: 특권 있는 컨테이너 금지

Kyverno는 YAML 기반의 정책 정의를 지원하여 Kubernetes 네이티브한 방식으로 정책을 작성할 수 있습니다. 다음은 특권 있는 컨테이너의 생성을 금지하는 ClusterPolicy 예시입니다.

apiVersion: kyverno.io/v1kind: ClusterPolicymetadata:  name: disallow-privileged-containersspec:  validationFailureAction: Enforce  rules:  - name: validate-privileged    match:      resources:        kinds:        - Pod    validate:      pattern:        spec:          containers:            - securityContext:                privileged: "false"

이러한 동적 Policy Engine은 PSS와 상호 보완적으로 작동하여, PSS가 제공하는 기본 보안 위에 조직의 특화된 보안 요구 사항을 만족시키는 강력한 정책 레이어를 추가합니다. SeekersLab의 FRIIM CNAPP는 이러한 클라우드 네이티브 보안 정책의 설정 및 준수 여부를 통합적으로 관리하고 모니터링하여, 복잡한 정책 환경에서도 클러스터의 보안 posture를 효과적으로 유지할 수 있도록 지원합니다.

3.3. Supply Chain Security 관점에서의 PSS 및 정책 통합

현대 소프트웨어 개발에서 Supply Chain Security는 핵심적인 고려 사항입니다. PSS와 동적 Admission Controller는 이러한 Supply Chain Security 전략의 중요한 구성 요소로 기능합니다. 컨테이너 이미지의 보안 취약점 스캔, 이미지 서명 및 증명(Attestation) 검증은 CI/CD 파이프라인의 핵심 단계이지만, 이러한 검증 결과를 런타임에 강제하는 것은 Admission Controller의 역할입니다.

예를 들어, Admission Controller는 Pod가 배포될 때 이미지가 특정 스캔 도구(예: Trivy, Clair)에 의해 스캔되었고, 알려진 심각한 취약점이 없음을 증명하는 서명이 유효한 경우에만 컨테이너 생성을 허용하도록 정책을 설정할 수 있습니다. 또한, OCI Image Manifest의 특정 필드를 검사하여 Trusted Image Registry에서만 이미지를 가져오도록 강제할 수 있습니다. 이러한 'Shift-Left' 보안 접근 방식은 개발 초기 단계에서부터 보안을 내재화하고, 프로덕션 환경으로 배포되는 아티팩트의 신뢰성을 보장하는 데 필수적입니다. PSS는 컨테이너 런타임의 기본적인 보안 환경을 제공하며, 동적 Admission Controller는 이 위에 강력한 Supply Chain 검증 레이어를 추가하여 전체 시스템의 보안 무결성을 강화합니다.

성능 비교: PSS 및 정책 관리 도구의 특성

Kubernetes 보안 정책 관리 도구의 성능은 단순히 처리량이나 Latency만으로 평가하기 어렵습니다. 정책의 복잡성, 적용 유연성, 관리 용이성, 그리고 클러스터 전체에 미치는 운영 오버헤드 등 다양한 측면을 종합적으로 고려해야 합니다. 아래 표는 Pod Security Standards(PSS)와 주요 동적 Admission Controller, 그리고 Deprecation된 Pod Security Policy(PSP)의 주요 특성을 비교합니다.

특성PSS (내장 PodSecurity)OPA GatekeeperKyvernoPSP (Deprecated)
정책 정의Namespace 레이블 기반 표준 프로필 (Privileged, Baseline, Restricted)Rego 언어 (ConstraintTemplate/Constraint CRD)YAML 기반 정책 (ClusterPolicy/Policy CRD)PodSecurityPolicy 오브젝트 (Cluster-scoped)
적용 범위Namespace 전체클러스터 전체 또는 특정 Namespace/리소스로 선택적 적용클러스터 전체 또는 특정 Namespace/리소스로 선택적 적용RBAC을 통한 Pod/ServiceAccount 매핑
세밀성미리 정의된 3단계 보안 프로필매우 높음 (모든 Kubernetes 오브젝트 속성 제어 가능)매우 높음 (Kubernetes 네이티브 확장 기능)제한된 Pod Spec 속성 제어
성능 오버헤드매우 낮음 (Kubernetes 내장)중간 (Policy Engine Pods 및 Webhook Latency)낮음-중간 (Policy Engine Pods 및 Webhook Latency)낮음 (Kubernetes 내장)
관리 복잡성낮음 (명확한 프로필)중간-높음 (Rego 학습 및 정책 작성)낮음-중간 (YAML 익숙도에 따라)높음 (RBAC 매핑의 복잡성)
유연성/확장성낮음 (정의된 표준만)매우 높음 (광범위한 확장 가능)매우 높음 (Kubernetes 리소스 변환, 생성 등)낮음
주요 사용 사례기본 Pod 보안 baseline 적용고급 클러스터 거버넌스, 규제 준수Kubernetes 네이티브 정책, Supply Chain Security(Deprecate)

PSS 자체는 Kubernetes의 핵심 컴포넌트로 구현되어 있으므로, 그 자체의 성능 오버헤드는 거의 무시할 수 있는 수준입니다. 그러나 OPA Gatekeeper나 Kyverno와 같은 동적 Admission Controller는 별도의 Pod로 실행되며, API Server와의 Webhook 통신을 통해 정책을 적용하므로 필연적으로 약간의 Latency를 유발합니다. 이 Latency는 Policy Engine의 효율성, 정책의 복잡성, 그리고 클러스터의 부하에 따라 달라질 수 있습니다. SRE 관점에서, 이러한 잠재적 Latency는 서비스의 SLI(Service Level Indicator)에 직접적인 영향을 미칠 수 있으므로, 충분한 부하 테스트와 모니터링을 통해 최적의 구성을 찾아야 합니다. SeekersLab의 FRIIM CNAPP는 이러한 다양한 보안 정책 도구의 통합 관리를 통해 전체 클러스터의 성능과 보안 posture를 동시에 최적화하는 데 필요한 가시성을 제공합니다.

실전 구성: 안전한 Kubernetes 환경 구축

PSS를 Kubernetes 클러스터에 성공적으로 적용하는 것은 단계적이고 체계적인 접근 방식을 요구합니다. 특히 운영 중인 클러스터에 적용할 경우, 워크로드의 가용성에 영향을 주지 않도록 신중하게 진행해야 합니다.

1. 점진적 PSS 적용 전략

가장 안전한 접근 방식은 `audit` 모드부터 시작하여 `warn`을 거쳐 `enforce`로 전환하는 것입니다. 이 과정을 통해 정책 위반 사항을 식별하고, 필요한 경우 워크로드 설정을 수정하거나 정책 예외를 정의할 시간을 확보할 수 있습니다.

  • 감사 모드 (Audit): 모든 Namespace에 pod-security.kubernetes.io/audit: restricted 레이블을 추가하여, Restricted 프로필에 위반되는 모든 Pod 생성 시도를 감사 로그에 기록합니다. 실제 워크로드 배포에는 영향을 주지 않습니다.
  • 경고 모드 (Warn): 감사 모드와 함께 pod-security.kubernetes.io/warn: restricted 레이블을 추가합니다. 이는 Pod 생성 시 위반 사항이 있을 경우 사용자에게 경고 메시지를 표시하지만, 여전히 생성은 허용합니다.
  • 강제 모드 (Enforce): 충분한 감사 및 경고 기간을 거쳐 정책 위반이 없음을 확인한 후, pod-security.kubernetes.io/enforce: restricted 레이블을 추가하여 정책 위반 Pod의 생성을 완전히 차단합니다.

2. 네임스페이스별 PSS 프로필 적용

모든 Namespace에 일률적인 PSS 모드를 적용하기보다는, 워크로드의 보안 민감도에 따라 차등적으로 적용하는 것이 효율적입니다. 예를 들어, 민감한 데이터 처리 워크로드는 Restricted, 일반적인 웹 애플리케이션은 Baseline, 클러스터 운영에 필수적인 시스템 DaemonSet은 Privileged 모드를 사용할 수 있습니다.

# baseline 모드 네임스페이스apiVersion: v1kind: Namespacemetadata:  name: default  labels:    pod-security.kubernetes.io/enforce: baseline    pod-security.kubernetes.io/audit: baseline    pod-security.kubernetes.io/warn: baseline# restricted 모드 네임스페이스apiVersion: v1kind: Namespacemetadata:  name: critical-app  labels:    pod-security.kubernetes.io/enforce: restricted    pod-security.kubernetes.io/audit: restricted    pod-security.kubernetes.io/warn: restricted

3. 특정 워크로드 예외 처리

CSI Driver, 네트워크 플러그인 등 클러스터 운영에 필수적이며 특권 있는 접근이 필요한 워크로드는 PSS 정책 예외 대상으로 지정해야 할 수 있습니다. 이러한 시스템 워크로드가 주로 위치하는 kube-system 또는 전용 Namespace에는 Privileged 모드를 적용하거나, 동적 Admission Controller의 예외 규칙을 통해 특정 Pod만 허용하도록 구성할 수 있습니다. 이는 안정적인 클러스터 운영을 위한 중요한 고려 사항입니다.

4. Helm Chart 및 GitOps를 통한 정책 관리

PSS 레이블 및 동적 Admission Controller 정책은 모두 YAML 파일로 정의 가능하므로, Helm Chart와 ArgoCD 또는 FluxCD와 같은 GitOps 도구를 사용하여 정책 배포를 자동화하고 버전 관리할 수 있습니다. 이는 정책 변경 이력을 추적하고, 롤백을 용이하게 하며, 환경 간 일관된 정책 적용을 보장합니다.

이러한 실전 구성 전략은 SeekersLab의 FRIIM CNAPP를 통해 더욱 강화될 수 있습니다. FRIIM CNAPP는 클라우드 및 컨테이너 환경 전반의 보안 posture를 지속적으로 스캔하고, PSS 준수 여부를 포함한 다양한 보안 구성 취약점을 탐지합니다. FRIIM CSPM 기능은 PSS와 같은 Kubernetes 보안 표준에 대한 컴플라이언스 보고서를 자동으로 생성하여 규제 준수 및 내부 감사 프로세스를 간소화합니다. 이를 통해 SRE 팀은 클러스터 보안 상태에 대한 명확한 가시성을 확보하고, 선제적으로 보안 리스크를 관리할 수 있습니다.

모니터링 및 운영: 안정성을 위한 감시

PSS 및 동적 Admission Controller를 통한 보안 정책은 한 번 설정으로 끝나는 것이 아니라, 지속적인 모니터링과 운영 관리가 필수적입니다. SRE 관점에서, 정책 위반은 잠재적인 서비스 불안정성 또는 보안 취약점을 나타내는 중요한 SLI가 될 수 있으므로, 이를 효과적으로 감시하고 대응하는 체계를 구축해야 합니다.

1. 정책 위반 로그 모니터링

Kubernetes API Server는 모든 Admission Controller의 동작을 감사 로그에 기록합니다. PSS 정책 위반 발생 시, 이 감사 로그에 관련 정보가 상세하게 남습니다. OPA Gatekeeper나 Kyverno와 같은 동적 Admission Controller 역시 자체 로그를 생성하여 정책 위반 및 처리 결과를 기록합니다. 이러한 로그를 Fluent Bit 또는 Fluentd와 같은 로그 수집기를 통해 중앙 집중식 로그 시스템으로 전송하고 분석해야 합니다.

Seekurity SIEM은 이러한 Kubernetes Audit Log 및 Admission Controller 로그를 실시간으로 수집하고, 고급 상관 분석 엔진을 통해 비정상적인 정책 위반 패턴이나 잠재적인 공격 시도를 탐지하는 데 탁월한 성능을 발휘합니다. 예를 들어, 특정 Namespace에서 Restricted 모드 위반 시도가 급증하는 경우, 이는 공격 시도 또는 잘못된 애플리케이션 설정 변경을 의미할 수 있습니다. Seekurity SIEM은 이러한 이벤트를 즉시 인지하여 SRE 및 보안 팀에 알림을 제공합니다.

2. 핵심 모니터링 지표 및 시각화

Prometheus와 Grafana를 사용하여 정책 위반 관련 메트릭을 수집하고 시각화할 수 있습니다. PodSecurity Admission Controller는 직접적인 메트릭을 제공하지 않으므로, 주로 API Server의 감사 로그를 파싱하거나, OPA Gatekeeper/Kyverno와 같은 Policy Engine이 제공하는 메트릭을 활용합니다.

예를 들어, OPA Gatekeeper는 자체적으로 정책 위반 횟수, Latency 등의 메트릭을 Prometheus 형식으로 노출합니다. 이를 통해 특정 정책의 위반율을 추적하고, SLO를 설정하여 '보안 정책 위반율'이 임계치를 초과할 경우 경고를 발생시킬 수 있습니다. 예를 들어, 5분 동안 특정 Namespace에서 Pod Security Violation이 5회 이상 발생하면 경고를 보내는 Prometheus Alerting Rule은 다음과 같습니다.

kind: Alertmetadata:  name: HighPodSecurityViolationRatespec:  rules:  - alert: HighPodSecurityViolationRate    expr: |      sum(rate(kube_pod_security_policy_violations_total[5m])) by (namespace) > 5    for: 5m    labels:      severity: warning    annotations:      summary: "Pod security violations are high in namespace {{ $labels.namespace }}"      description: "A high rate of Pod security policy violations detected in namespace {{ $labels.namespace }}. Investigate immediately."

3. 장애 대응 시나리오

정책 변경으로 인해 워크로드 배포가 실패하거나 서비스 중단이 발생하는 경우, 신속한 장애 대응이 중요합니다. SRE는 다음 시나리오를 고려해야 합니다.

  • 정책 위반으로 인한 배포 실패: Pod 생성 시 CrashLoopBackOff 상태가 지속되거나, kubectl describe pod 명령에서 Admission Controller에 의한 거부 메시지를 확인합니다.
  • 신속한 롤백: 문제가 발생한 정책을 GitOps를 통해 이전 버전으로 롤백하거나, Namespace의 PSS 레이블을 warn 또는 audit 모드로 임시 변경하여 서비스를 복구합니다.
  • 원인 분석: Seekurity SIEM의 로그 분석 기능을 활용하여 정책 위반이 발생한 정확한 원인(어떤 정책, 어떤 Pod Spec)을 파악하고, 워크로드 설정을 수정하거나 정책 예외를 추가합니다.

이러한 모니터링 및 운영 전략은 단순히 보안을 유지하는 것을 넘어, 클러스터의 전반적인 안정성과 성능을 보장하는 SRE의 핵심 역할과 직결됩니다. Seekurity SOAR는 탐지된 정책 위반에 대한 자동화된 대응 플레이북을 실행하여, 초기 대응 시간을 단축하고 운영팀의 피로도를 줄이는 데 기여할 수 있습니다.

정리: PSS를 통한 안정적이고 안전한 Kubernetes 운영

Kubernetes Pod Security Policy(PSP) Deprecation 이후, Pod Security Standards(PSS)는 클라우드 네이티브 환경에서 Pod 보안을 관리하는 핵심 기술로 확고히 자리매김하였습니다. PSS는 Privileged, Baseline, Restricted 세 가지 명확한 보안 프로필을 통해 클러스터 운영자가 Pod의 공격 표면을 효과적으로 최소화하고 잠재적인 보안 위협을 선제적으로 완화할 수 있도록 지원합니다. 이러한 조치는 잠재적 보안 취약점으로 인한 에러 버짓 소진율을 예측 가능한 수준으로 관리하게 하며, SLO 99.9% 달성을 위한 필수적인 기반이 됩니다.

내장된 PodSecurity Admission Controller를 통한 PSS 적용은 Kubernetes 클러스터의 기본 보안 posture를 확보하는 데 필수적입니다. 여기에 OPA Gatekeeper나 Kyverno와 같은 동적 Admission Controller를 결합하면, 조직의 특정 요구 사항에 맞는 세밀하고 확장 가능한 보안 정책을 구현할 수 있습니다. 이러한 통합 방어 체계는 단순한 규제 준수를 넘어 CI/CD 파이프라인과 연계된 Supply Chain Security를 강화하고, 런타임 보안까지 아우르는 포괄적인 방어 체계를 구축하는 데 결정적인 역할을 수행합니다. SRE 관점에서, 이는 예측 불가능한 보안 사고로 인한 서비스 중단을 SLO 임계치 이하로 관리하고, MTTD 및 MTTR을 획기적으로 개선하여 서비스의 안정성과 신뢰성을 장기적으로 보장하는 핵심 전략이 됩니다.

PSS의 강점은 그 단순성과 효과성에 있습니다. 표준화된 프로필은 정책 정의의 복잡성을 현저히 줄이고, Namespace 기반 적용은 관리 효율성을 극대화합니다. 그러나 그 한계 또한 명확합니다. PSS 자체만으로는 모든 복잡한 보안 요구 사항을 충족할 수 없으므로, 동적 Admission Controller와의 통합이 반드시 필요합니다. 정책 적용은 워크로드 가용성에 미치는 영향을 최소화하기 위해 반드시 점진적인 접근 방식을 통해 수행되어야 하며, 이로써 서비스 다운타임을 허용 가능한 에러 버짓 내로 관리할 수 있습니다. SeekersLab의 FRIIM CNAPP는 PSS 준수 여부를 포함하여 클라우드 네이티브 환경의 전반적인 보안 posture를 지속적으로 평가하고 개선하는 데 핵심적인 역할을 수행합니다. 또한, KYRA AI Sandbox를 활용하면 새로운 정책 도입 전 잠재적인 영향과 취약점을 AI 기반으로 시뮬레이션하여, 사전 분석을 통해 잠재적 장애 발생률을 낮추는 더욱 안전하고 효율적인 정책 최적화를 달성할 수 있습니다. 마지막으로, Seekurity SIEM에서 정책 위반 메트릭이 임계치를 초과하면 실시간으로 알림이 트리거되고, 이후 Seekurity SOAR를 통해 자동화된 대응을 실행함으로써, SRE 팀은 보안 위협으로부터 서비스를 보호하고 SLO 99.999% 수준의 높은 서비스 가용성을 지속적으로 유지할 수 있습니다. Kubernetes 클러스터 운영의 안정성과 성능을 최우선으로 생각하는 SRE라면, PSS와 그 주변 생태계를 완벽하게 이해하고 활용하는 것이 시스템 신뢰성 확보의 핵심입니다.

최신 소식 받기

최신 보안 인사이트를 이메일로 받아보세요.

태그

#Kubernetes#Pod Security Standards#PSS#PSP#Admission Controller#OPA Gatekeeper#Kyverno#Kubernetes Security#SRE#Cloud Native#SeekersLab#FRIIM CNAPP#Seekurity SIEM#KYRA AI Sandbox