

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Segurança e melhores práticas para trabalhos em contêineres
<a name="containers-security"></a>

## Tempo de execução sem raiz
<a name="containers-security-rootless"></a>

O Deadline Cloud é executado Docker no modo sem root. As ações do contêiner são executadas como `job-user` identidade sem privilégios e não concedem acesso root ao trabalhador. A Docker configuração gerenciada também ativa a `no-new-privileges` configuração e usa CDI para acesso à GPU.

Não adicione opções privilegiadas de contêiner, sem senha ou acesso a um `sudo` soquete de propriedade do root. Docker Não monte o Docker soquete dentro do contêiner de carga de trabalho.

## Comande a construção e a fuga
<a name="containers-security-command-construction"></a>

Prefira o encaminhamento de vetores de argumentos. O ambiente de encapsulamento padrão passa `WrappedAction.Command` e cada valor é transmitido `WrappedAction.Args` como argumentos separados para`docker container exec`. Nenhum shell analisa esses valores pela segunda vez.

Não interpole valores brutos agrupados em um comando como. `bash -c "{{WrappedAction.Command}} {{WrappedAction.Args}}"` Os metacaracteres do shell em um comando ou argumento podem alterar a forma como o shell analisa esse comando.

Quando você precisar incorporar um valor no texto que outro idioma analisa, use a função de representação desse idioma:


| Analisador | Função | Use | 
| --- | --- | --- | 
| Concha POSIX | repr\_sh | Argumentos e caminhos do Shell. | 
| Python | repr\_py | Literais Python incorporados na fonte Python. | 
| JSON | repr\_json | Valores incorporados em um documento JSON. | 
| PowerShell | repr\_pwsh | PowerShellliterais. | 
| Scripts de comando do Windows | repr\_cmd | Valores analisados porcmd.exe. | 

Uma função de representação protege somente a linguagem que ela tem como alvo. Por exemplo, `repr_py` produz um literal em Python, não um argumento de shell. Passe os parâmetros do trabalho como argumentos de ação quando o aplicativo já aceita um vetor de argumentos.

Referência `WrappedAction.*` somente em um gancho de embrulho `command` ou`args`. Os arquivos incorporados são compartilhados por todas as ações no ambiente, incluindo `onEnter` e`onExit`, onde os valores da ação encapsulada não estão no escopo. Mantenha o script de encapsulamento incorporado estático e transmita a ação encapsulada para ele como argumentos.

## Imagens, permissões e dados
<a name="containers-security-images"></a>
+ Use uma versão fixa de imagem ou resumo para que cada sessão receba o conteúdo da imagem pretendida.
+ Dê permissão para criar identidades para enviar imagens. Conceda às funções de fila e frota acesso ao Amazon ECR somente para leitura.
+ Não armazene AWS credenciais, segredos de licença ou chaves privadas em uma imagem.
+ Encaminhe somente as variáveis de ambiente exigidas pela carga de trabalho. O ambiente de fila padrão encaminha uma lista de permissões de variáveis de licença com base no uso e não encaminha as credenciais do host. AWS 
+ Monte somente os diretórios que a carga de trabalho exige. Use montagens somente para leitura para dados de entrada quando nenhuma ação precisar modificá-los.
+ Pare somente o contêiner criado para a sessão atual. Não remova nem pare contêineres não relacionados no trabalhador.