Finalmente, está tan enamorado de Docker que desea mover sus sistemas de producción críticos para el negocio en línea con datos confidenciales de los clientes a un Docker Swarm. Algunos incluso podrían haberlo hecho. La otra organización no puede permitírselo mediante una política que prohíbe los procesos de producción que se ejecutan en modo raíz.
¿Cuál podría ser una lista de verificación de bloques de construcción a considerar para un entorno de producción de Docker? Uno no los necesita a todos, pero todos deben ser importantes para ser evaluados.
Descargo de responsabilidad: Sé que hay una política de SE para evitar "grandes listas interminables", pero creo que esta lista de verificación no puede ser muy grande ... y de todos modos infinita.
Entonces, ¿qué son estos bloques de construcción?
- Si aún no está implementado, considere ejecutar un sistema host Linux con configuraciones de seguridad avanzadas: kernel reforzado, SELinux, etc.
- Considere usar una pequeña imagen base de Docker, como alpine, busybox o incluso scratch, por ejemplo, comience con una imagen base vacía
- Utilice la configuración de USUARIO que no sea root
- Evalúe cuidadosamente para reducir aún más el conjunto ya reducido de capacidades de kernel otorgadas al contenedor
- Considere tener solo un binario ejecutable por contenedor para iniciar su proceso, idealmente vinculado estáticamente
- Aquellos que quieran romper su sistema para obtener un acceso de shell pueden preguntarse si descubrieron que su contenedor tiene todos los shells desactivados
- Monte volúmenes de solo lectura donde solo sea posible
Pregunta: ¿qué más?
devsecops
?
Consider using a tiny Docker base image, like alpine, busybox or even scratch e.g. start with an empty base image
mejora la seguridad?