
컨테이너 build 단계에서 별도 조정하지 않은 경우 container는 root 계정/권한으로 실행
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
runAsUser: 1010 # Pod user 재지정
runAsGroup: 3000
containers:
- command:
- sleep
- "4800"
image: ubuntu
imagePullPolicy: Always
...
apiVersion: v1
kind: Pod
metadata:
name: pod
spec:
securityContext:
runAsUser: 1001 # 1. Pod 에서 정의했더라도
containers:
- image: ubuntu
name: web
command: ["sleep", "1000"]
securityContext:
runAsUser: 1002 # 2. container의 설정 값으로 override 되므로 주의가 필요
capabilities 추가 시 리눅스 커널에 대한 권한 부여 가능
capabilities 는 Pod 전역설정이 되지 않으므로 주의
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo-4
spec:
containers:
- name: sec-ctx-4
image: gcr.io/google-samples/hello-app:2.0
securityContext: # 1. container 내부에 securityContext 추가
capabilities: # 2. 리눅스 커널 관련 권한 추가 항목 작성
add: ["NET_ADMIN", "SYS_TIME"]
https://kubernetes.io/docs/tasks/configure-pod-container/security-context/