¿Cuáles son las ventajas de poner a un usuario en el grupo "docker" en lugar de otorgarle acceso "sudo" al host?

¿Cuáles son las ventajas de poner a un usuario en el grupo "docker" en lugar de otorgarle acceso "sudo" al host?

¿Existe alguna ventaja real en incluir a un usuario en el dockergrupo en lugar de otorgarle sudoacceso al host?


Para continuar, estoy escribiendo un tutorial que muestra cómo los miembros del dockergrupo pueden interactuar directamente (es decir, sin usar sudo) con el servidor Docker a través de un socket de dominio Unix dockerden 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 dockergrupo 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 dockergrupo para que pueda ejecutar contenedores sin necesidad de ejecutar sudocada comando todo el tiempo. Pones a alguien sudoerscuando quieres que pueda hacerlo sudoy 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.

información relacionada