Implantação Segura com Docker Compose + Ubuntu
Em startups do Vale do Silício, o Docker Compose é uma das ferramentas preferidas para implantar e gerenciar rapidamente aplicações containerizadas. Contudo, a conveniência costuma vir acompanhada de riscos de segurança. Como engenheiro de confiabilidade de sites (SRE), estou ciente de que vulnerabilidades podem gerar consequências catastróficas. Este artigo compartilha as melhores práticas de segurança que compilei no meu trabalho real combinando Docker Compose com sistemas Ubuntu, ajudando você a aproveitar a conveniência do Docker Compose enquanto garante a segurança do sistema.
I. Reforço da Segurança do Sistema Ubuntu
Antes de implantar contêineres, é crucial garantir a segurança do host Ubuntu. Aqui estão alguns passos essenciais:
1. Atualizar Ubuntu e Docker Regularmente
Mantenha tanto o sistema quanto o Docker atualizados para corrigir vulnerabilidades conhecidas:
sudo apt update && sudo apt upgrade -y
sudo apt install docker-ce docker-compose-plugin
2. Restringir Permissões de Gerenciamento do Docker
Controle estritamente as permissões de gerenciamento do Docker para impedir ataques de elevação de privilégios:
sudo usermod -aG docker deployuser
# Impedir que usuários regulares obtenham facilmente permissões de gerenciamento do Docker
3. Configurar o Firewall do Ubuntu (UFW)
Restrinja o acesso de rede de forma razoável para evitar acessos não autorizados:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
4. Configurar Adequadamente a Interação entre Docker e UFW
Por padrão, o Docker ignora o UFW ao configurar iptables, portanto, recomenda‑se controle manual:
Modifique o arquivo de configuração do Docker:
sudo nano /etc/docker/daemon.json
Adicione o seguinte conteúdo:
{
"iptables": false,
"ip-forward": true,
"userland-proxy": false
}
Reinicie o serviço Docker:
sudo systemctl restart docker
Vincule explicitamente endereços no Docker Compose:
services:
webapp:
ports:
- "127.0.0.1:8080:8080"