파드 보안 표준 강제하기

파드 보안 표준 강제하기 (Enforcing Pod Security Standards)

이 페이지에서는 파드 보안 표준(Pod Security Standards)을 강제(enforce)할 때의 모범 사례 개요를 다뤄요.

출처: 문서

본문

내장 파드 보안 어드미션 컨트롤러 사용하기

파드 보안 어드미션 컨트롤러(Pod Security Admission Controller)는 폐기된 PodSecurityPolicies를 대체하기 위한 것이에요.

모든 클러스터 네임스페이스 구성하기

아무 구성도 없는 네임스페이스는 클러스터 보안 모델에서 중요한 구멍으로 간주해야 해요. 각 네임스페이스에서 어떤 유형의 워크로드가 발생하는지 분석하고, 파드 보안 표준을 참고해 각각에 적절한 수준을 결정하는 시간을 갖길 권장해요. 라벨이 없는 네임스페이스는 아직 평가되지 않았다는 뜻일 뿐이어야 해요.

모든 네임스페이스의 모든 워크로드가 같은 보안 요구 사항을 갖는 시나리오에서는, PodSecurity 라벨을 일괄 적용하는 방법을 보여 주는 예시를 제공하고 있어요.

최소 권한 원칙(principle of least privilege) 받아들이기

이상적인 세계에서는 모든 네임스페이스의 모든 파드가 restricted 정책의 요구 사항을 충족할 거예요. 하지만 일부 워크로드는 정당한 이유로 높은 권한이 필요하기 때문에, 이것은 가능하지도 실용적이지도 않아요.

  • 권한 있는(privileged) 워크로드를 허용하는 네임스페이스는 적절한 접근 제어를 수립하고 강제해야 해요.
  • 그러한 관대한(permissive) 네임스페이스에서 실행되는 워크로드에 대해서는 고유한 보안 요구 사항에 대한 문서를 유지하세요. 가능하다면 그 요구 사항을 어떻게 더 제약할 수 있을지 고민해 보세요.

다중 모드 전략 채택하기

파드 보안 표준 어드미션 컨트롤러의 audit(감사)와 warn(경고) 모드는 기존 워크로드를 깨뜨리지 않고 파드에 대한 중요한 보안 통찰을 수집하기 쉽게 해줘요.

이 모드들을 모든 네임스페이스에 활성화하고, 궁극적으로 강제하고 싶은 수준(level)과 버전으로 설정하는 것이 좋은 관행이에요. 이 단계에서 생성되는 경고와 audit 어노테이션은 그 상태로 가는 길을 안내해 줘요. 워크로드 작성자가 원하는 수준에 맞게 변경할 것이라고 기대한다면 warn 모드를 활성화해요. 감사 로그를 사용해 원하는 수준에 맞게 변경을 모니터링/주도할 것이라면 audit 모드를 활성화해요.

enforce 모드를 원하는 값으로 설정한 후에도 이 모드들은 몇 가지 방식으로 여전히 유용할 수 있어요.

  • warnenforce와 같은 수준으로 설정하면, 클라이언트는 검증을 통과하지 못하는 파드(또는 파드 템플릿이 있는 리소스)를 만들려고 할 때 경고를 받아요. 이는 그 리소스들을 준수하도록 업데이트하는 데 도움이 돼요.
  • enforce를 특정 비최신(non-latest) 버전으로 고정하는 네임스페이스에서, auditwarn 모드를 enforce와 같은 수준이지만 최신 버전으로 설정하면, 이전 버전에서는 허용됐지만 현재 모범 사례에서는 허용되지 않는 설정에 대한 가시성을 얻을 수 있어요.

서드파티 대안 (Third-party alternatives)

쿠버네티스 생태계에서는 보안 프로필을 강제하는 다른 대안들이 개발되고 있어요.

  • Kubewarden
  • Kyverno
  • OPA Gatekeeper

내장 솔루션(예: PodSecurity 어드미션 컨트롤러)을 쓸지, 서드파티 도구를 쓸지는 전적으로 자신의 상황에 달려 있어요. 어떤 솔루션을 평가할 때든 공급망(supply chain)에 대한 신뢰가 중요해요. 궁극적으로 앞서 언급한 접근 방식 중 하나를 사용하는 것이 아무것도 하지 않는 것보다 낫다는 점을 기억하세요.

더 알아보기 (Learn more)