El interruptor «Privilegios» de la aplicación de ZimaOS equivale, en la práctica, al modo privilegiado de Docker. El soporte de IceWhale lo describió como un permiso que proporciona al contenedor capacidades similares a las del host, acceso directo al hardware y capacidades de nivel raíz. Actívalo solo cuando una aplicación realmente requiera ese nivel de acceso.
Para la mayoría de las aplicaciones, el modo privilegiado es innecesario y debilita el aislamiento que hace que los contenedores sean más seguros. Es preferible asignar un dispositivo o añadir una capacidad de Linux en lugar de concederle todo al contenedor.
Qué cambia el modo privilegiado
La guía de Docker sobre contenedores privilegiados actual indica que --privileged proporciona al contenedor todas las capacidades de Linux y acceso a todos los dispositivos del host, además de relajar importantes controles de seguridad.
Por qué IceWhale lo describió como acceso de nivel host
La respuesta oficial original indica que el proceso del contenedor puede acceder directamente al hardware del host y ejecutarse con privilegios similares a los de root. Es una explicación breve útil, pero el impacto práctico en la seguridad es más amplio: el contenedor deja de estar fuertemente aislado.
No actives «Privilegios» solo para corregir un error cualquiera
Si una aplicación no puede acceder a un dispositivo USB, una GPU, una función de red o un punto de montaje, determina primero qué permiso falta exactamente. El modo privilegiado puede ocultar el verdadero problema de configuración y, al mismo tiempo, exponer todo el host.
Es preferible asignar dispositivos
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
Para un único dispositivo de hardware, asígnalo en lugar de asignar todos los dispositivos del host.
Es preferible usar capacidades específicas de Linux
cap_add:
- NET_ADMIN
Un contenedor de VPN o de enrutamiento puede necesitar una capacidad de red específica. Cuando la documentación de la aplicación lo permita, concede únicamente el conjunto mínimo necesario en lugar de activar el modo privilegiado.
Aplicaciones que pueden necesitar legítimamente más acceso
Algunos ejemplos son las herramientas de hardware de bajo nivel, Docker dentro de Docker, ciertos dispositivos VPN o de red, la gestión de USB o dispositivos y determinados programas especializados de monitorización del sistema. Aun así, consulta primero las instrucciones de implementación del proyecto original.
Aplicaciones que normalmente no lo necesitan
Las aplicaciones web normales, las bibliotecas multimedia, las aplicaciones de notas, las bases de datos, los gestores de fotos, los paneles y la mayoría de los servicios de API no deberían requerir el modo totalmente privilegiado para funcionar.
Revisa los privilegios después de actualizar una aplicación
Un paquete antiguo de una aplicación puede haber activado el modo privilegiado por comodidad, aunque el proyecto original haya añadido posteriormente permisos más específicos. Al actualizar, vuelve a comprobar los requisitos actuales de Compose.
La guía de seguridad de Docker ofrece el patrón más seguro para aplicaciones personalizadas.
Inspecciona el contenedor antes de concederle más acceso
docker inspect CONTAINER
Comprueba las asignaciones de dispositivos, las capacidades, los montajes, el modo de red y la configuración del usuario existentes. Muchas aplicaciones fallan porque falta un dispositivo o una ruta necesarios, no porque requieran acceso sin restricciones al host.
El modo privilegiado puede ampliar el alcance del impacto
Si una aplicación web normal sin privilegios se ve comprometida, el aislamiento del contenedor puede limitar aquello a lo que accede un atacante. Un contenedor privilegiado puede acceder a muchos más dispositivos del host y a interfaces del kernel, por lo que una vulnerabilidad en esa aplicación puede tener consecuencias en todo el sistema.
Documenta por qué activaste «Privilegios»
Cuando lo actives intencionadamente, anota la función exacta que lo requiere. Durante una actualización posterior de la aplicación, vuelve a comprobar si puede ejecutarse con permisos más restringidos y desactiva el interruptor si ya no es necesario.
Preguntas frecuentes
¿«Privilegios» significa que el contenedor se ejecuta como root?
Es algo más amplio que ejecutarse simplemente como root dentro del contenedor; el modo privilegiado concede amplias capacidades del host y acceso a sus dispositivos.
¿Debería activarlo para todas las aplicaciones personalizadas?
No. Déjalo desactivado a menos que la documentación del proyecto original indique que la carga de trabajo lo requiere.
¿Puedo conceder acceso únicamente a la GPU o al USB?
Sí. Es preferible usar asignaciones de dispositivos y ajustes del entorno de ejecución específicos en lugar del modo totalmente privilegiado.
¿Es peligroso el modo privilegiado?
Reduce considerablemente el aislamiento del contenedor, por lo que una aplicación privilegiada comprometida puede tener un impacto mucho mayor en el host.
