¿Existe alguna ventaja real en incluir a un usuario en el docker
grupo en lugar de otorgarle sudo
acceso al host?
Para continuar, estoy escribiendo un tutorial que muestra cómo los miembros del docker
grupo pueden interactuar directamente (es decir, sin usar sudo
) con el servidor Docker a través de un socket de dominio Unix dockerd
en el que el servidor está escuchando.
Sin embargo, al otorgarle a un usuario sin privilegios el poder de crear contenedores arbitrarios, parece que el usuario ganaeficazacceso root al host: por ejemplo, resulta bastante fácil de esa manera modificar el fs del host a través de montajes vinculantes. O interactuar con el kernel a través de procfs
/ sysfs
. Entonces, ¿cuál es el punto de incluir a alguien en el docker
grupo en lugar de darle a ese usuario acceso raíz al sistema?
Respuesta1
O el usuario podría simplementecargue un contenedor Docker agradable y conveniente que los coloque directamente en un shell raíz.
De hecho, otorgar acceso al socket de la ventana acoplable prácticamente garantiza la capacidad de escalar privilegios.
Lo que importa aquí es declarar tus intenciones. Pones a alguien en el docker
grupo para que pueda ejecutar contenedores sin necesidad de ejecutar sudo
cada comando todo el tiempo. Pones a alguien sudoers
cuando quieres que pueda hacerlo sudo
y ejecutas cualquier comando como root.
Si no desea dar acceso a personas arbitrarias al socket Docker, es casi seguro que debería utilizar un sistema de orquestación como OpenShift o Kubernetes.