DevOps
[Kubernetes] Security Context
네른
2022. 5. 13. 22:03
종종, Pod를 생성하고 나서 내부의 앱이 권한문제로 인해 정상적으로 동작하지 않을 때가 있다.
그럴 때 주로 사용한 방법이 Pod의 SecurityContext를 수정하는 것.
SecurityContext란 Pod/Container의 권한을 수정하는 데 사용되는 기능으로, 프로세스의 사용자/그룹을 수정하거나 보안정책, 권한 등을 설정하게 된다.
대표적인 몇가지만 간단히 나열하자면,
- hostPID/IPC : 해당 리소스가 node의 PID와 IPC를 사용할 수 있게되어 직접 통신이 가능해진다
- hostNetwork : 해당 리소스가 node의 network interface에 접근할 수 있게된다
- runAsUser: 해당 리소스의 사용자 ID(UID)를 지정한다. 디폴트 값이 0 이기에, 특정 UID를 할당해서 권한을 제한할 수 있다
- fsGroup : 해당 리소스(파드)의 볼륨에 대한 그룹을 할당.
- seLinux : 해당 리소스에 selinux 지정
- privileged : 해당 리소스(컨테이너)가 privileged로 생성되도록 지정. privileged가 설정되면, 노드의 모든 리소스에 접근이 가능해진다!
- seccomp : 해당 리소스 내의 프로세스가 사용할 수 있는 시스템콜의 종류를 제한
spec:
containers:
- name: test
securityContext:
runAsUser: 2000
runAsGroup: 2000
이런식으로 지정해서 사용할 수 있다.
권한 관련해서 종종 사용했었다.