Boas práticas para mantermos o container seguro
Olá, pessoal :)
Hoje, vamos comentar sobre algumas boas práticas para mantermos o nosso container (docker) rodando de maneira segura
Existem alguns fatores, como configurar os recursos utilizados pelo container ou verificar as APIs utilizadas pelo Docker, conforme podemos observar aqui:
Porém, os pontos que eu gostaria de realmente ressaltar são quatro:
1# Manter o Docker com a versão mais recente possível
Sei que nem sempre isso é possível ser feito, principalmente quando pensamos em ambiente de produção. Caso utilizemos a versão mais recente, não necessariamente a código da aplicação conseguirá rodar nesse ambiente.
Para isso, coloque na versão mais estável possível, mas observe no ambiente de teste e futuramente, no ambiente de homologação, se é possível utilizar a ultima versão disponível.
Portanto, tente utilizar a tag com a versão especificada (ubuntu:18.04
) ou com latest, conforme a imagem acima.
2# Utilize sempre o container com a versão oficial
Podemos encontrar as versões oficiais pelo próprio site Dockerhub, onde ficam disponíveis diversos containers.
3# Realize o scan do container
Embora você vá utilizar o container oficial na empresa, nem sempre isso ocorre. Pois em determinados projetos, você cria o próprio container com as especificações que você precisa e as vezes, você precisa participar de projetos legados, onde dificilmente, esses containers foram atualizados.
Para isso, utilize dessa boa prática
Caso não consiga rodar diretamente com esse comando, não há problema. É possível ser feito utilizando o snyk (que é o programa que ele chama para analisar as dependências utilizadas no Dockerfile)
snyk container test michelleamesquita/simple-app
4# Não utilize ROOT!
Quando rodamos o container, ele inicia a sessão como Root, ou seja, usuário com maior privilégio.
Vale lembrar, que na segurança, devemos seguir o princípio de sempre termos o menor privilégio, para evitar que alguém consiga acessar a sua aplicação ou sistema e possua o acesso máximo de uma só vez.
Dessa forma, devemos escrever um Dockerfile, adicionando um usuário de menor privilégio, da seguinte maneira:
FROM ubuntu:latest# criar grupo e usuarioRUN groupadd -r michelle && useradd -g michelle michelle# dar permissao ao usuarioRUN chown -R michelle:michelle /app# trocar usuarioUSER michelle# rodar aplicaçaoCMD python3 app.py
Portanto, essas são algumas boas práticas para mantermos segura a nossa aplicação 💜