본문 바로가기
클라우드/쿠버네티스 보안

헷갈리는 보안 개념, Security Policy vs. Security Context 완벽 정리! 🧐

by gasbugs 2025. 10. 7.

안녕하세요! 여러분의 IT 지식을 쑥쑥 키워드리는 IT 스토리 블로그입니다. 오늘은 쿠버네티스(Kubernetes)나 클라우드 환경에서 자주 등장하지만, 은근히 헷갈리는 두 가지 보안 개념, 바로 Security Policy(보안 정책)와 Security Context(보안 컨텍스트)의 차이점에 대해 쉽고 명확하게 설명해 드릴게요! 🚀

 

 

Security Policy (보안 정책): 우리 집의 '가훈' 📜

Security Policy(보안 정책)는 시스템 전체나 특정 네임스페이스(namespace)에 적용되는 '규칙의 집합'이라고 생각하면 이해하기 쉬워요. 마치 우리 집의 '가훈'처럼, "이 집에서는 이런 행동은 절대 안 돼!" 또는 "이런 것들은 꼭 지켜야 해!"라고 정해놓은 큰 틀의 규칙과 같아요.

이 정책은 주로 클러스터 관리자가 설정하며, 어떤 파드(Pod)가 실행될 수 있는지, 어떤 권한을 가질 수 있는지에 대한 최소한의 보안 기준을 정의합니다. 예를 들어, 다음과 같은 규칙들을 포함할 수 있어요.

  • "루트(root) 권한으로 컨테이너를 실행할 수 없어!" 🙅‍♂️
  • "특정 볼륨(volume) 타입만 사용할 수 있어!" 📁
  • "컨테이너는 읽기 전용(read-only) 파일 시스템만 사용해야 해!" 🛡️

이러한 정책(Policy)이 먼저 존재해야, 그 안에서 개별 컨테이너나 파드가 자신의 보안 설정을 할 수 있게 됩니다. 즉, '무엇을 할 수 있고, 무엇을 할 수 없는지'에 대한 큰 그림을 그리는 역할을 하는 것이죠.


Security Context (보안 컨텍스트): 내 방의 '규칙' 🛋️

Security Context(보안 컨텍스트)는 개별 파드(Pod)나 컨테이너(Container) 수준에서 적용되는 구체적인 '보안 설정'을 의미해요. Security Policy라는 큰 '가훈' 아래에서, "내 방에서는 이 규칙을 따를 거야"라고 정하는 것과 비슷해요.

이 설정은 파드나 컨테이너의 YAML 설정 파일 내에서 직접 정의하며, 해당 파드나 컨테이너가 어떤 권한과 어떤 환경에서 실행될지를 상세하게 지정합니다. 예를 들면 다음과 같은 설정들이 가능해요.

  • "이 컨테이너는 사용자 ID 1000번으로 실행할 거야." (runAsUser: 1000) 👤
  • "이 컨테이너는 루트 파일 시스템에 쓰기 권한을 가지지 않을 거야." (readOnlyRootFilesystem: true) ✍️🚫
  • "이 컨테이너에 특정 리눅스 커널 기능(capability)을 추가하거나 제거할 거야." (capabilities: { add: ["NET_ADMIN"], drop: ["SYS_TIME"] }) ⚙️

즉, Security Context는 실제로 파드나 컨테iner에 적용되는 구체적이고 상세한 보안 명세입니다. Security Policy라는 큰 틀을 위반하지 않는 선에서 최대한의 보안을 적용하는 역할을 담당하죠.


한눈에 보는 차이점: Policy vs. Context

구분 Security Policy (보안 정책) Security Context (보안 컨텍스트)
적용 범위 클러스터 전체 또는 네임스페이스 (넓은 범위) 🌐 개별 파드 또는 컨테이너 (좁은 범위) 🎯
역할 '무엇이 허용되는가'에 대한 규칙의 집합 📖 '어떻게 실행될 것인가'에 대한 구체적인 설정 🔧
비유 집 전체의 가훈 👨‍👩‍👧‍👦 내 방의 규칙 🚪
설정 주체 주로 클러스터 관리자 주로 개발자 또는 배포 담당자
목적 전체 시스템의 보안 기준을 강제하고 일관성 유지 개별 워크로드의 보안을 강화하고 최소 권한 원칙 적용
 

아주 쉬운 예시! 🏫

  • 학교 교칙 (Security Policy): "모든 학생은 9시까지 등교해야 하며, 염색은 금지한다."
  • 3학년 1반의 규칙 (Security Context): "우리 반은 8시 50분까지 등교하고, 매주 금요일에 자리를 바꾼다." (학교 교칙을 어기지 않는 선에서 자체 규칙을 정함)

이처럼 Security Policy는 상위 수준의 '해야 할 것'과 '하지 말아야 할 것'을 정의하는 강제적인 규칙이고, Security Context는 그 규칙 안에서 개별 실행 단위에 적용되는 상세한 보안 옵션이라고 정리할 수 있습니다.

이제 두 개념의 차이점이 명확하게 이해되셨나요? 보안은 아무리 강조해도 지나치지 않습니다. 올바른 정책과 컨텍스트 설정을 통해 여러분의 시스템을 더욱 안전하게 만드시길 바랍니다! 💪


Tags: 보안 정책, Security Policy, 보안 컨텍스트, Security Context, 쿠버네티스, Kubernetes, 컨테이너 보안, 클라우드 보안, IT, 기술