ZimaOS 앱의 “Privileges” 스위치는 사실상 Docker privileged 모드입니다. IceWhale 지원팀은 이 기능이 컨테이너에 호스트와 유사한 권한, 하드웨어 직접 접근 권한, 루트 수준 권한을 부여한다고 설명했습니다. 애플리케이션에 해당 수준의 접근 권한이 정말 필요한 경우에만 켜세요.
대부분의 앱에는 privileged 모드가 필요하지 않으며, 컨테이너를 더 안전하게 만드는 격리 기능을 약화시킵니다. 컨테이너에 모든 권한을 부여하는 대신 장치 하나를 매핑하거나 Linux 권한 하나를 추가하는 방법을 우선하세요.
privileged 모드로 변경되는 사항
Docker의 현재 Docker privileged 컨테이너 가이드에 따르면 --privileged는 컨테이너에 모든 Linux 권한과 모든 호스트 장치에 대한 접근 권한을 부여하는 동시에 주요 보안 제어를 완화합니다.
IceWhale이 호스트 수준 접근이라고 설명한 이유
IceWhale의 공식 답변에 따르면 컨테이너 프로세스는 호스트 하드웨어에 직접 접근하고 루트와 유사한 권한으로 실행할 수 있습니다. 간단한 설명으로는 유용하지만, 실제 보안에 미치는 영향은 더 광범위합니다. 컨테이너가 더 이상 강력하게 격리되지 않습니다.
알 수 없는 오류를 해결하려고 권한을 무작정 활성화하지 마세요
앱이 USB 장치, GPU, 네트워크 기능 또는 마운트에 접근할 수 없는 경우, 먼저 정확히 어떤 권한이 누락됐는지 확인하세요. privileged 모드는 호스트 전체를 노출하면서 실제 설정 문제를 가릴 수 있습니다.
장치 매핑을 우선하세요
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
하드웨어 장치 하나만 사용하는 경우 호스트의 모든 장치가 아니라 해당 장치만 매핑하세요.
필요한 Linux 권한만 지정하세요
cap_add:
- NET_ADMIN
VPN/라우터 컨테이너에는 특정 네트워킹 기능이 필요할 수 있습니다. 앱 문서에서 지원하는 경우 privileged 모드를 사용하는 대신 필요한 최소한의 권한만 부여하세요.
더 많은 권한이 필요한 경우가 있는 앱
낮은 수준의 하드웨어 도구, Docker-in-Docker, 일부 VPN/네트워크 어플라이언스, USB/장치 관리 도구 또는 특수 시스템 모니터링 소프트웨어가 여기에 해당합니다. 그래도 먼저 업스트림 배포 가이드를 읽어 보세요.
대개 privileged 모드가 필요하지 않은 앱들
일반 웹 앱, 미디어 라이브러리, 메모 앱, 데이터베이스, 사진 관리 앱, 대시보드, 대부분의 API 서비스는 작동에 full privileged 모드가 필요하지 않습니다.
앱 업데이트 후 privileged 모드 검토하기
오래된 앱 패키지에는 편의를 위해 privileged 모드가 활성화되어 있을 수 있으며, 이후 업스트림에서 더 제한적인 권한을 추가했을 수도 있습니다. 업데이트할 때 현재 Compose 요구 사항을 다시 확인하세요.
Docker 보안 가이드에서 더 안전한 사용자 지정 앱 사용 방식을 확인하세요.
액세스 권한을 더 부여하기 전에 컨테이너를 검사하세요
docker inspect CONTAINER
기존 장치 매핑, 기능, 마운트, 네트워크 모드, 사용자 설정을 확인하세요. 앱이 실패하는 이유는 호스트에 제한 없이 액세스해야 해서가 아니라, 필요한 장치나 경로 하나가 누락되어서인 경우가 많습니다.
privileged 모드는 피해 범위를 넓힐 수 있습니다
일반 권한으로 실행되는 웹 앱이 손상되면 컨테이너 격리를 통해 공격자가 접근할 수 있는 범위를 제한할 수 있습니다. privileged 컨테이너는 훨씬 더 많은 호스트 장치와 커널 인터페이스에 액세스할 수 있으므로, 해당 앱의 취약점이 시스템 전체에 영향을 미칠 수 있습니다.
privileged 모드를 활성화한 이유를 기록하세요
필요에 따라 의도적으로 활성화한 경우, 필요한 정확한 기능을 기록해 두세요. 나중에 앱을 업데이트할 때 권한 범위를 좁혀도 실행되는지 다시 테스트하고, 더 이상 필요하지 않으면 스위치를 끄세요.
자주 묻는 질문
privileged 모드를 사용하면 컨테이너가 root로 실행되나요?
컨테이너 내부에서 단순히 root로 실행하는 것보다 권한 범위가 넓습니다. privileged 모드는 호스트 기능과 장치에 대한 광범위한 액세스 권한을 부여합니다.
모든 사용자 지정 앱에 활성화해야 하나요?
아니요. 업스트림 문서에서 해당 워크로드에 필요하다고 안내하지 않는 한 사용하지 마세요.
GPU나 USB에만 액세스 권한을 줄 수 있나요?
네. privileged 모드를 전부 허용하기보다는 특정 장치 매핑과 런타임 설정을 사용하세요.
privileged 모드는 위험한가요?
컨테이너 격리 수준을 크게 낮추므로, 권한이 손상된 앱이 호스트에 훨씬 더 큰 영향을 미칠 수 있습니다.



