Openshift / Kubernetes 컨테이너 권한 설정하기

리눅스/OpenShift|2023. 6. 20. 09:13
반응형

Openshift 또는 Kubernetes 에서 컨테이너 생성시 권한을 제한하여 보안을 강화하는 방법이 있습니다.

Pod 생성시 컨테이너 권한 제한 예제입니다.

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: container1
    image: docker.io/php
    securityContext:
      capabilities:
        add: ["ALL"]
        remove: ["SYS_ADMIN", "SETUID", "SETGID", "SETPCAP", "SYS_MODULE", "SYS_BOOT", "NET_ADMIN", "SYS_RAWIO"]
...

 

위 예제에서 container1 컨테이너의 securityContext 에서 SYS_ADMIN 외 여러개의 권한을 제한하도록 설정하였습니다. 이렇게 하면 container1 에서만 시스템 관리 작업과 기타 작업을 위한 명령어 사용이 제한됩니다. 아래는 securityContext의 capabilities 섹션에서 remove 필드에 사용할 수 있는 종류 중 일부 목록입니다. 아래 항목을 remove 필드에 추가하여 사용을 제한하면, 컨테이너 보안 강화에 도움이 됩니다.

"SETPCAP": 프로세스의 임의의 캐퍼빌리티 설정을 방지합니다.
"SYS_MODULE": 커널 모듈의 적재 및 언로드를 방지합니다.
"SYS_RAWIO": 장치에 대한 원시 입출력을 방지합니다.
"SYS_PACCT": 프로세스 계정 정보에 대한 접근을 제한합니다.
"SYS_ADMIN": 시스템 관리 작업을 수행할 수 있는 권한을 제한합니다.
"SYS_NICE": 프로세스에 대한 우선 순위 설정을 방지합니다.
"SYS_RESOURCE": 자원 제한에 대한 설정을 방지합니다.
"SYS_TIME": 시스템 시간 설정을 방지합니다.
"SYS_PTRACE": 다른 프로세스에 대한 추적 기능을 제한합니다.
"SYS_BOOT": 부팅 설정을 제한합니다.
"DAC_READ_SEARCH": 파일의 소유권 및 검색 설정에 대한 권한을 제한합니다.
"LINUX_IMMUTABLE": 파일의 변경 및 수정을 방지합니다.
"NET_ADMIN": 네트워크 설정에 대한 권한을 제한합니다.
"IPC_LOCK": 공유 메모리 세그먼트에 대한 락 설정을 방지합니다.

 

반응형

댓글()