쿠버네티스 SecurityContext 개념 및 설정

ZER0·2022년 11월 3일
0

Kubernetes

목록 보기
29/39
post-thumbnail

1. 개념

  • 쿠버네티스는 컨테이너 실행 시 기본으로 root 권한으로 실행
  • root 권한에서의 컨테이너 실행을 방지하기 위해 파드 또는 컨테이너 단위로 실행시킬 PID를 지정

2. SecurityContext 적용 비교

  • SecurityContext를 적용하지 않은 경우(root로 실행)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    apiVersion: v1
     
    kind: Pod
     
    metadata:
      name: security-context-demo-1
     
    spec:
      containers:
      - name: sec-ctx-demo
        image: busybox:1.28
        command: [ "sh""-c""sleep 1h" ]
    cs
  • PID 확인
  • SecurityContext를 파드 단위로 적용한 경우(PID 1000으로 실행)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    apiVersion: v1
     
    kind: Pod
     
    metadata:
      name: security-context-demo-2
     
    spec:
      securityContext:
        runAsUser: 1000
      containers:
      - name: sec-ctx-demo
        image: busybox:1.28
        command: [ "sh""-c""sleep 1h" ]
    cs
  • PID 확인
  • SecurityContext를 컨테이너 단위로 적용한 경우(PID 2000으로 파드를 실행하지만 컨테이너는 PID 3000으로 실행)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    apiVersion: v1
     
    kind: Pod
     
    metadata:
      name: security-context-demo-3
     
    spec:
      securityContext:
        runAsUser: 2000
      containers:
      - name: sec-ctx-demo
        image: busybox:1.28
        command: [ "sh""-c""sleep 1h" ]
        securityContext:
          runAsUser: 3000
    cs
  • PID 확인

3. SecurityContext 옵션

  • runAsUser : 파드 또는 컨테이너를 실행시킬 PID를 지정
  • runAsGroup : 파드 또는 컨테이너를 실행시킬 GID를 지정
  • fsGroup : 볼륨 마운트 시 활용할 PID를 지정
  • runAsNonRoot : 컨테이너를 루트가 아닌 사용자로 실행할지 지정

참고

  1. https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/
  2. https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
  3. https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#podsecuritycontext-v1-core
profile
Security Compliance Engineer

0개의 댓글