전공공부
[K8S - CKA] Security Context 본문
Docker Security
docker run ubuntu sleep 3600
Container는 Namespace 단위로 격리되고 실행된다.
그래서, 프로세서에 직접 접근해서 들어가서 ps aux 하면 PID는 1이 나올 것이고 이에 대해서 Host 범위에서 ps aux 시 그저 실행되는 하나의 컨테이너 작업으로 표시되어서 PID 31157 이런식으로 랜덤 ID가 나올 것이다.
어쨌든 말하고 싶은 것은 host의 일반 유저와 Container의 접근 권한이 다르다는걸 말하고 싶었다.
docker run --privileged ubuntu
그래서, 이렇게 유저가 달라서 일반 Docker 유저는 권한을 모두 부여 받지 못한다. 따라서, 특정 명령어를 쓰기 위해서는 위와 같이 root 권한을 부여한다던지 또 다른 작업이 컨테이너 내에서 이루어져야 한다.
Security Context
docker run --user=1001 ubuntu
캡슐화 해서 도커 컨테이너를 관리하는데 이를 Pod Level에서 접근 권한을 관리 할 수 있습니다.
Pod Level으로 보겠습니다.
apiVersion: v1
kind: Pod
metadata:
name: web-pod
spec:
containers:
-name: nginx
image: nginx
command: ["sleep","5000"]
securityContext:
runAsUser: 1005
capabilities:
add: ["SYS_ADMIN"]
위 처럼 설정하면 Container Level에서 Capabilty 정보를 설정 할 수 있고 이에 따라서 container에서는 SYS_ADMIN 권한을 부여 받을 수 있습니다.
(Capabilites는 무조건 컨테이너 레벨에 지정되어야 합니다!)
'Study > K8S' 카테고리의 다른 글
[K8S - CKA] Storage in Docker (0) | 2024.01.20 |
---|---|
[K8S - CKA] Network Policy (0) | 2024.01.18 |
[K8S - CKA] Image Security (0) | 2024.01.16 |
[K8S - CKA] ServiceAccounts (0) | 2024.01.14 |
[K8S - CKA] Cluster Role & Role Binding (1) | 2024.01.11 |