본문 바로가기

devops/openshift

OpenShift에서 컨테이너를 Root 사용자로 실행하기

OpenShift에서 컨테이너를 Root 사용자로 실행하기

OpenShift는 기본적으로 컨테이너가 non-root 사용자로 실행되도록 설정되어 있습니다. 하지만, 특정 애플리케이션의 경우 root 권한이 필요할 수 있습니다. 이 글에서는 OpenShift의 SCC(Security Context Constraints)를 사용하여 컨테이너를 root 사용자로 실행하는 방법을 안내합니다.

SCC란 무엇인가?

SCC(Security Context Constraints)는 OpenShift에서 컨테이너가 실행될 때 적용되는 권한 및 접근 제어 규칙입니다. 이를 통해 관리자는 파드가 수행할 수 있는 작업과 액세스할 수 있는 리소스를 제어할 수 있습니다.

컨테이너를 Root로 실행하기

일부 애플리케이션은 root 권한을 필요로 합니다. 이러한 경우 anyuid SCC를 사용하여 컨테이너가 root 사용자로 실행될 수 있도록 설정해야 합니다.

1. 서비스 계정 생성

먼저, 실행할 파드의 서비스 계정을 생성합니다.

oc create serviceaccount myserviceaccount

2. 배포 구성 수정

생성한 서비스 계정을 사용하도록 애플리케이션의 배포 구성을 수정합니다. oc patch 명령을 사용할 수 있습니다.

oc patch dc/demo-app --patch '{"spec":{"template":{"spec":{"serviceAccountName": "myserviceaccount"}}}}'

3. 서비스 계정에 anyuid SCC 추가

생성한 서비스 계정에 anyuid SCC를 추가하여 컨테이너가 고정 사용자 ID로 실행되도록 합니다.

oc adm policy add-scc-to-user anyuid -z myserviceaccount

결론

이 방법을 통해 OpenShift에서 특정 컨테이너를 root 사용자로 실행할 수 있습니다. 보안상의 이유로, 이러한 설정은 필요한 경우에만 사용하고, 가능한 한 제한된 환경에서만 사용하는 것이 좋습니다.