본문 바로가기
MLOps/Doker & Kubernetes

Udemy CKA 강의 정리 171: Security Contexts

by 공부하는 무니 2023. 1. 19.
반응형

해당 내용은 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의를 공부한 내용입니다. 내용을 그대로 번역하기보다는, 제가 이해하기 쉬운 대로 수정한 부분들이 있습니다.

⚠️ 영어 독해가 많이 부족합니다. 틀린 내용이 있으면 알려주시면 감사하겠습니다.


이전 강의에서 보았듯이 Docker 컨테이너를 실행할 때 보안 표준을 정의하는 옵션이 있었습니다. 사용자 ID, 컨테이너에서 추가하거나 제거할 수 있는 Linux capablitiy 등 입니다. 이는 Kubernetes에서도 구성할 수 있습니다. 이미 알고 있듯이 Kubernetes에서 컨테이너는 파드에 캡슐화됩니다. 컨테이너 수준 또는 파드 수준에서 보안 설정을 구성하도록 선택할 수 있습니다.

- Pod 수준에서 구성하면 설정이 Pod 내의 모든 컨테이너로 전달됩니다.

- Pod와 컨테이너 모두에서 구성하는 경우, 컨테이너의 설정이 Pod의 설정을 재정의(overrride)합니다.

Pod definition 을 보겠습니다.

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

이 파드는 sleep 커맨드으로 우분투 이미지를 실행합니다. 컨테이너에서 보안 컨텍스트를 구성하려면 Pod의 spec 섹션 아래에 securityContext라는 필드를 추가합니다. 사용자로 실행 옵션을 사용하여 Pod의 사용자 ID를 설정합니다.

컨테이너 수준에서 동일한 구성을 설정하려면 다음과 같이 전체 섹션을 컨테이너 spec 아래로 이동하세요.

capability를 추가하려면 capabilities 옵션을 사용하고 파드에 추가할 capability 목록을 지정합니다.

apiVersion: v1
kind: Pod
metadata:
  name: web-pod
spec:
  containers:
  - name: ubuntu
    image: ubuntu
    command: ["sleep", "3600"]
    securityContext:
      runAsUser: 1000
      capabilities: 
        add: ["MAC_ADMIN"]

지금까지 Kubernetes의 보안 컨텍스트에 대해 알아보았습니다.

반응형

댓글