

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
<a name="containers-security"></a>

## Tiempo de ejecución sin root
<a name="containers-security-rootless"></a>

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 privilegiadas`sudo`, 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
<a name="containers-security-command-construction"></a>

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:


| Analizador | Función | Uso | 
| --- | --- | --- | 
| Consola POSIX | repr\_sh | Argumentos y rutas de Shell. | 
| Python | repr\_py | Literales de Python incrustados en la fuente de Python. | 
| JSON | repr\_json | Valores incrustados en un documento JSON. | 
| PowerShell | repr\_pwsh | PowerShellliterales. | 
| scripts de comandos de Windows | repr\_cmd | Valores 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 ajuste`args`. 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
<a name="containers-security-images"></a>
+ 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.