Português (Brasil)

Ferramentas de desenvolvedor · Docker executado para conversor de composição do Docker

Executando contêineres como root: o que --user e usuário: alterar e por quê

· Por que é importante

janela de encaixe recipientes segurança

Diagrama abstrato ilustrando contêineres em execução como root: o que --user e usuário: mudam e por quê
Ilustração vetorial original ToolAcre

A menos que a imagem diga o contrário, o processo no seu contêiner é root. Esta postagem explica o que isso significa no host, como --user e o usuário Compose: chave alteram isso e os problemas de propriedade de arquivo que se seguem.

Arquivos que você não pode excluir — uma montagem vinculada fica cheia de arquivos de propriedade do root após a execução de um contêiner

Arquivos que você não pode excluir — uma montagem vinculada fica cheia de arquivos de propriedade do root após a execução de um contêiner. Evidência: a saída montada em ligação pode expor incompatibilidades de identidade que a análise não consegue diagnosticar. Reproduza a identidade do tempo de execução com literais descartáveis. Combine cada ocorrência de origem com recursos de montagem do usuário; reserve namespaces e propriedade para revisão de destino.

O incidente de segurança também revela que um limite separado do incidente de segurança é que a imagem USER e os switches de ponto de entrada exigem inspeção ou fontes de imagem. Evidência: a imagem USER e os switches de ponto de entrada exigem inspeção ou fontes de imagem. Essa restrição de identidade de tempo de execução é um ponto de parada. Inspecione os recursos de montagem do usuário sem comportamento de fabricação e, em seguida, documente uma verificação de host para namespaces e propriedade.

Raiz interna é raiz externa - com configurações de namespace de usuário padrão, UID 0 no contêiner é UID 0 no host para arquivos montados

Raiz interna é raiz externa - com configurações de namespace de usuário padrão, UID 0 no contêiner é UID 0 no host para arquivos montados. Evidência: UID nenhum efeito de host depende da configuração do namespace não lida aqui. Rastreie tokens de identidade de tempo de execução nos recursos de montagem do usuário. Separe os valores ordenados dos campos de último valor; namespaces e propriedade estão fora da coleção.

Um limite de mecanismo de segurança relacionado é que Um limite de gramática de segurança separado é que um exemplo 1000:1000 demonstra preservação e não garantias de propriedade. Evidência: um exemplo 1000:1000 demonstra preservação e não garantias de propriedade. Use esse fato de identidade de tempo de execução para prever um membro ou escalar nos recursos de montagens do usuário. Verifique os avisos antes de decidir qualquer coisa sobre namespaces e propriedade.

--user torna-se usuário: - numérico UID:GID versus nomes, e por que numérico é mais seguro quando a imagem não tem conta correspondente

--user torna-se usuário: - numérico UID:GID versus nomes, e por que numérico é mais seguro quando a imagem não tem conta correspondente. Evidência: --user torna-se usuário e o texto numérico UID:GID é citado. Julgue a serialização de identidade em tempo de execução a partir de seu modelo. A citação nos recursos de montagem do usuário protege os tipos, mas não fornece prova operacional de namespaces e propriedade.

A segunda observação de serialização de segurança é: Um limite de saída de segurança separado é que read_only cap_drop e security_opt mapeiam, enquanto o modo sem raiz não. Evidência: read_only cap_drop e security_opt mapeiam enquanto o modo rootless não. Essa saída de identidade de tempo de execução separa as configurações do contexto indisponível. Mantenha os recursos de montagem do usuário revisáveis ​​e verifique os namespaces e a propriedade de forma independente.

Imagens que já eliminam privilégios — USER no Dockerfile e imagens que trocam de usuário em seu ponto de entrada

Imagens que já eliminam privilégios — USER no Dockerfile e imagens que trocam de usuário em seu ponto de entrada. Pare na exceção de identidade do tempo de execução em vez de adivinhar. Qualquer adição próxima aos recursos de montagem do usuário precisa de um motivo específico de implantação vinculado a namespaces e propriedade.

Outra restrição de exceção de segurança é que um limite de exceção de segurança separado é que o remapeamento do namespace e os contextos do Kubernetes estão fora do escopo. Evidência: o remapeamento de namespace e os contextos do Kubernetes estão fora do escopo. Mantenha o comando de identidade de tempo de execução original ao lado dos avisos. A comparação mostra o que os recursos de montagem do usuário contêm e quais namespaces e decisões de propriedade permanecem manuais.

Exemplo resolvido: convertendo docker run --user 1000:1000 -v /srv/app:/app - o usuário: chave e a propriedade resultante no disco

Exemplo resolvido: convertendo docker run --user 1000:1000 -v /srv/app:/app - a chave user: e a propriedade resultante no disco. Crie o exemplo de identidade de tempo de execução a partir de nomes sintéticos. Torne rastreável cada item de recursos de montagem do usuário sem expor namespaces de produção e detalhes de propriedade.

O mesmo exemplo de segurança demonstra que Um limite de exemplo de segurança separado é que a identidade se torna visível ao lado de montagens e recursos para revisão. Evidência: a identidade fica visível ao lado das montagens e capacidades para revisão. O fato da identidade do tempo de execução emparelhado deve estar visível nos recursos de montagem do usuário. Registre essa linha e evite suposições sobre namespaces e propriedade.

Outras chaves de proteção – read_only, cap_drop: [ALL], security_opt no-new-privileges e Docker sem root como o passo maior

Outras chaves de proteção – read_only, cap_drop: [ALL], security_opt no-new-privileges e Docker sem root como o passo maior. Traduza a consequência da identidade do tempo de execução em uma diferença observável de recursos de montagem do usuário. Docker possui os namespaces posteriores e o veredicto de propriedade.

A implementação da consequência de segurança também mostra que um limite de efeito de segurança separado é que a saída montada em ligação pode expor incompatibilidades de identidade que a análise não consegue diagnosticar. Divida as responsabilidades de identidade do tempo de execução: a conversão grava recursos de montagem do usuário, o repositório remove segredos e os operadores validam namespaces e propriedade.

O que isso não cobre – configuração de remapeamento do namespace do usuário e securityContext do Kubernetes

O que isso não cobre – configuração de remapeamento do namespace do usuário e securityContext do Kubernetes. Limite o escopo da identidade do tempo de execução às ramificações de recursos de montagem do usuário mostradas aqui. Formulários e padrões vizinhos não podem responder a questões de namespaces e propriedade.

Mais um limite de escopo de segurança segue de Um limite de limite de segurança separado é que UID zero efeitos de host dependem da configuração do namespace não lida aqui. Trate esse limite de identidade de tempo de execução como uma exclusão. Prefira recursos precisos de montagem de usuários em vez de suposições sobre namespaces e propriedade.

Conclusão: decida quem é o seu processo - e verifique se a saída do conversor inclui user: antes de aumentar a pilha

Conclusão: decida quem é o seu processo - e verifique se a saída do conversor inclui user: antes de aumentar a pilha. Audite a identidade do tempo de execução como opção de origem, campo de modelo, linha de recursos de montagem do usuário e aviso. Remova os segredos antes de verificar os namespaces e a propriedade.

Finalmente, a fonte de conclusão de segurança confirma que um limite de decisão de segurança separado é que --user se torna usuário e o texto numérico UID:GID é citado. Fechar a identidade do tempo de execução de forma restrita: os recursos de montagem do usuário são candidatos; namespaces e propriedade e equivalência de shell não são garantias.