728x90
[K8s] SecurityContext
SecurityContext는 pod 또는 컨테이너에 대한 권한 및 액세스 설정을 정의한다.
SecurityContext는 다음과 같은 설정들이 포함된다.
- privileged나 unprivileged로 실행됨
- 임의적 접근 제어: 파일과 같은 객체에 대한 접근 권한은 UID와 GID를 기준으로 결정
- SELinux: object에 보안 label이 할당됨
- Linux 기능: 프로세스에 일부 권한을 부여하지만, 루트 사용자의 모든 권한을 부여하진 않음
- AppArmor: 프로그램 프로필을 사용하여 개별 프로그램의 기능을 제한
- Seccomp: 프로세스의 시스템 호출을 필터링
다음은 pod나 컨테이너에 대한 manifest 파일에 추가가 가능한 파라미터다.
allowPrivilegeEscalation | 프로세스가 상위 프로세스보다 더 많은 권한을 얻을 수 있는지 여부를 제어 |
readOnlyRootFile | 컨테이너의 루트 파일 시스템을 읽기 전용으로 마운트 |
더 많은 옵션은 다음 링크에서 확인이 가능하다.
파드에 SecurityContext 설정
pod에 보안 설정을 하려면, securityContext 단에 포함을 할 수 있다.
pod에 대해 지정하는 설정은, pod내의 모든 컨테이너에 적용이 된다.
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
volumes:
- name: sec-ctx-vol
emptyDir: {}
containers:
- name: sec-ctx-demo
image: busybox:1.28
command: [ "sh", "-c", "sleep 1h" ]
volumeMounts:
- name: sec-ctx-vol
mountPath: /data/demo
securityContext:
allowPrivilegeEscalation: false
위 설정 파일은 파드의 모든 컨테이너에 대해 모든 프로세스가 UID 1000, GID 3000으로 실행되도록 지정한다.
또한, fsGroup 필드가 지정되어, 컨테이너의 모든 프로세스가 보조그룹ID 2000의 일부가 되며, 볼륨의 소유자 /data/demo와 해당 볼륨에 생성된 모든 파일은 GID가 2000이 된다.
포드를 생성하고 ID를 확인해보자.
# 파드 생성
kubectl apply -f security-context.yaml
# 파드 확인
kubectl get pod security-context-demo
# 파드에 접속 및 프로세스 확인
kubectl exec -it securiy-context-demo -- sh
ps
다음과 같이 프로세스에 UID가 1000으로 실행되고 있음이 출력된다. (runAsUser)
PID USER TIME COMMAND
1 1000 0:00 sleep 1h
6 1000 0:00 sh
...
/data 디렉토리로 이동 후 사용자를 확인해보자
cd /data
ls -l
/data/demo 디렉터리에 대해 GID 2000이 출력된다. (fsGroup)
drwxrwsrwx 2 root 2000 4096 Jun 6 20:08 demo
마지막으로 id 명령어를 실행해보면, security context에 설정한 id들을 확인할 수 있다.
id
uid=1000 gid=3000 groups=2000
참고: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
반응형
'🐳 Container > K8S' 카테고리의 다른 글
[K8s] 쿠버네티스 컴포넌트 정리 (4) | 2024.09.03 |
---|---|
[K8s][CKS] Admission Controller (0) | 2024.06.19 |
[K8s][CKS] 감사(auditing) (0) | 2024.06.03 |
[K8s][CKS] 컨테이너의 불변성 보장 (0) | 2024.05.24 |
[K8s][CKS] TLS (Cipher-Suites) (0) | 2024.05.23 |