¿Cómo evitar que varios usuarios conecten un contenedor docker?

4

Cuando ejecuta contenedores de ventana acoplable, puede enumerar los contenedores en ejecución utilizando docker ps

Luego puedes adjuntarlos por docker attach <container id>

El problema es que todas las personas que pueden adjuntar el contenedor en ejecución al mismo tiempo que usted, y verán lo que está haciendo al mismo tiempo, podrían ser interesantes para los cursos en línea, pero no muy agradables en el trabajo.

¿Cómo puedo prevenir eso?

    
pregunta aurelien 24.07.2018 - 15:48
fuente

2 respuestas

6

Si un usuario en un host de Docker Engine tiene derechos para ejecutar comandos de la ventana acoplable (ya sea por tener privilegios de sudo, o pertenencia al grupo de la ventana acoplable) no hay forma (con el producto base de Docker) de restringirlos para que no se conecten a los contenedores en ejecución en el host

Proporcionar de forma efectiva el acceso a la ventana acoplable es lo mismo que proporcionar una raíz en el host.

Por lo tanto, para evitarlo, la clave es no permitir que otros usuarios tengan derechos para ejecutar los comandos de la ventana acoplable en ese host.

    
respondido por el Rоry McCune 24.07.2018 - 16:05
fuente
2

Docker Sub comandos utilizando sudo

Una solución es proporcionarles los comandos de ventana acoplable seleccionados utilizando sudo y no proporcionar el comando docker attach o docker run .

Puede restringirlos para que se ejecuten solo docker ps

Consulte la documentación o la página de manual de sudo para saber cómo proporcionar solo los subcomandos que desea permitir a los usuarios. Proporcionar acceso a la ventana acoplable utilizando sudo es el método recomendado de todos modos, en lugar de colocar a los usuarios en un grupo de la ventana acoplable de inmediato.

Ejemplo :

Ejecute visudo o cree un archivo bajo /etc/sudoers.d/<username> y cree una línea para cada comando que necesite permitir: (esto es un poco aproximado, en producción, supongo que administrará sudo config usando alguna herramienta de administración de configuración como puppet , chef o ansible que hará esto por usted una vez que escriba el código de configuración)

<user_account> ALL=(root) NOPASSWD: /usr/bin/docker ps

Más detalles:

Detalles

Nota: tuve un caso de uso en el que un usuario de bot automatizado solo necesitaba el comando de extracción de la ventana acoplable, por lo que solo restringí esa cuenta para ejecutar la extracción de la ventana acoplable solo a través de sudo. Este enfoque asegura:

  • disponibilidad (proporcione lo que sea necesario)

  • principio de privilegio mínimo

respondido por el Ijaz Ahmad Khan 15.10.2018 - 14:43
fuente

Lea otras preguntas en las etiquetas