View a markdown version of this page

Seguridad y mejores prácticas para trabajos con contenedores - Nube de plazos

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Seguridad y mejores prácticas para trabajos con contenedores

Tiempo de ejecución sin root

Deadline Cloud se ejecuta Docker en modo sin root. Las acciones del contenedor se ejecutan como una job-user identidad sin privilegios y no otorgan acceso root al trabajador. La Docker configuración gestionada también habilita la no-new-privileges configuración y utiliza el CDI para el acceso a la GPU.

No añada opciones de contenedor privilegiadassudo, sin contraseña ni acceso a un socket propiedad de la raíz. Docker No monte el Docker socket dentro del contenedor de carga de trabajo.

Comanda la construcción y el escape

Prefiero el reenvío entre argumentos y vectores. El entorno de envoltura predeterminado transfiere cada valor WrappedAction.Command y los introduce WrappedAction.Args como argumentos independientes a. docker container exec Ningún shell analiza esos valores por segunda vez.

No interpoles valores empaquetados sin procesar en un comando como. bash -c "{{WrappedAction.Command}} {{WrappedAction.Args}}" Los metacaracteres del shell de un comando o argumento pueden cambiar la forma en que el shell analiza ese comando.

Cuando tenga que incrustar un valor en un texto que analice otro idioma, utilice la función de representación para ese idioma:

AnalizadorFunciónUso
Consola POSIXrepr_shArgumentos y rutas de Shell.
Pythonrepr_pyLiterales de Python incrustados en la fuente de Python.
JSONrepr_jsonValores incrustados en un documento JSON.
PowerShellrepr_pwshPowerShellliterales.
scripts de comandos de Windowsrepr_cmdValores analizados porcmd.exe.

Una función de representación protege solo el idioma al que se dirige. Por ejemplo, repr_py produce un literal de Python, no un argumento de shell. Pasa los parámetros del trabajo como argumentos de acción cuando la aplicación ya acepta un vector de argumentos.

Haga referencia WrappedAction.* solo en el command o de un gancho de ajusteargs. Los archivos incrustados son compartidos por todas las acciones del entorno, incluso cuando los valores de onEnter las onExit acciones empaquetadas no están dentro del ámbito de aplicación. Mantenga el script de empaquetado incrustado estático y pásele la acción empaquetada como argumentos.

Imágenes, permisos y datos

  • Utilice una versión de imagen fija o un resumen para que cada sesión reciba el contenido de imagen deseado.

  • Conceda permiso a las identidades de compilación para insertar imágenes. Proporcione a los roles de cola y flota acceso de solo lectura a Amazon ECR.

  • No almacene AWS credenciales, secretos de licencia ni claves privadas en una imagen.

  • Reenvíe solo las variables de entorno requeridas por la carga de trabajo. El entorno de colas predeterminado reenvía una lista de variables de licencia permitidas basadas en el uso y no reenvía las credenciales del anfitrión. AWS

  • Monta solo los directorios que requiera la carga de trabajo. Utilice montajes de solo lectura para los datos de entrada cuando no sea necesario realizar ninguna acción para modificarlos.

  • Detenga únicamente el contenedor creado para la sesión actual. No pode ni detenga los contenedores que no estén relacionados con la pieza de trabajo.