Security Contexts

Yu Sang Min·2025년 6월 21일

CKA

목록 보기
59/110
post-thumbnail

🛡️ Kubernetes SecurityContext 개요

Kubernetes에서 컨테이너 보안 설정(SecurityContext) 은 Docker의 보안 기능(사용자 ID, Linux Capabilities 등)을 기반으로 구성됨.
Pod 또는 Container 단위로 설정 가능하며, Container 수준의 설정이 Pod 설정을 덮어씀.


🧾 SecurityContext 정의 위치

  • Pod 수준 설정
    모든 컨테이너에 동일한 보안 설정을 적용할 때 사용

  • Container 수준 설정
    특정 컨테이너에 개별적으로 보안 설정을 적용할 때 사용

컨테이너 수준에 설정이 있으면 Pod 수준 설정은 무시됨


⚙️ 예시: Pod 정의 파일에서 SecurityContext 사용

아래는 ubuntu 이미지를 사용하여 sleep 명령어를 실행하는 Pod이며,
Pod 수준에서 runAsUser 설정을 적용한 예시:

apiVersion: v1
kind: Pod
metadata:
  name: secure-pod
spec:
  securityContext:
    runAsUser: 1000
  containers:
    - name: ubuntu-container
      image: ubuntu
      command: ["sleep", "3600"]

🔧 예시: Container 수준 SecurityContext 설정 + Capabilities 추가

컨테이너 내부에서 별도 사용자로 실행하고 NET_ADMIN, SYS_TIME 권한을 부여하는 예시:

apiVersion: v1
kind: Pod
metadata:
  name: secure-pod-container
spec:
  containers:
    - name: ubuntu-container
      image: ubuntu
      command: ["sleep", "3600"]
      securityContext:
        runAsUser: 1001
        capabilities:
          add: ["NET_ADMIN", "SYS_TIME"]

✅ 정리

  • securityContextPod 수준, Container 수준에 모두 정의 가능
  • runAsUser: 컨테이너 내 프로세스 실행 사용자 지정
  • capabilities.add/drop: Linux Capabilities 부여 또는 제거
  • Container 수준 설정이 우선 적용됨
profile
React, Node.js, AWS, Git, Github, Github Action, Docker, K8S

0개의 댓글