Ao descobrir como gerenciar ambientes python para projetos, estou pensando em usar contêineres Docker . Tomei conhecimento de que o wiki do Debian avisa , como outras fontes online , sobre o risco de grupos do Docker. Mas tenho menos certeza:
A mera possibilidade de criar grupos Docker, tendo instalado o Docker, representa riscos per se?
Ou seja, se eu não criar um grupo, ou me adicionar a um (obs: sou o único usuário), corre o risco de ter o Docker instalado e usá-lo para gerenciar ambientes conforme sugerido pelo blog deles?
Mas ter vários projetos em andamento no mesmo ambiente rapidamente se torna um problema, pois podemos entrar em conflitos de configuração ou dependência. Além disso, ao compartilhar um projeto com colegas de equipe, precisaríamos também coordenar nossos ambientes. Para isso, temos que definir nosso ambiente de projeto de forma que o torne facilmente compartilhável.
Uma boa maneira de fazer isso é criar ambientes de desenvolvimento isolados para cada projeto. Isso pode ser feito facilmente usando contêineres e o Docker Compose para gerenciá-los.
O risco está associado a ter usuários no grupo, porque esses usuários fornecem um caminho fácil para o root sem nenhum controle de acesso adicional. Existem outros grupos desse tipo em sistemas Debian , por exemplo
disks
, instalar o Docker e criar odocker
grupo não aumenta o risco por si só. Se você não adicionar usuários a esses grupos, tudo bem, pois adicionar usuários a um grupo é uma operação privilegiada de qualquer maneira (portanto, se um invasor puder fazer isso, você já perdeu).Há também algum risco associado a ter um daemon privilegiado em execução. Existem outras soluções que você pode examinar que não envolvem a execução de um daemon Docker privilegiado; por exemplo Podman , ou como você está procurando especificamente para projetos Python, ambientes virtuais Python .
Sistemas/serviços de containers como Docker ou LXD/LXC ou com serviços em nuvem como Amazon Elastic Container Service (EC2), Amazon Elastic Container Service for Kubernetes, Microsoft Azure Kubernetes Service e Google Kubernetes Engine (GKE), são na minha opinião, a melhor solução para desenvolvimento de software em geral, pois você pode dividir todas as partes em microsserviços, testar, usar e compartilhar separadamente e usar uma estratégia inteligente para fugir de sistemas monolíticos.
os sistemas de contêiner são simplesmente os melhores para o desenvolvimento de software porque posso configurar e iniciar com rapidez e facilidade determinados ambientes ou sistemas de desenvolvimento, testá-los e experimentá-los, e os recursos são usados e gerenciados melhor do que com VMs ou um sistema monolítico.
Na minha opinião, eu deveria ter pelo menos 3 sistemas separados para projetos de software, como meu ambiente de desenvolvimento, meu ambiente de teste e meu ambiente de produção, e seria melhor se estes fossem fisicamente e logicamente separados (agora não faz sentido para muito pequenos projetos separem fisicamente e logicamente).
nada é seguro e não apenas a configuração do docker desempenha um papel aqui, mas a configuração de todo o sistema em si.
Como meu sistema operacional está configurado, que outro software está rodando nele, como minha rede está configurada com meu firewall, como eu compartilho e uso meus grupos e dados, etc.
Você pode ver que não pode responder a tudo isso com uma resposta e há muito a considerar
De qualquer forma, trabalhar e se familiarizar com serviços de container como o docker é um ganho para você
Instalar o Docker em si não é inerentemente arriscado, é importante entender os riscos potenciais associados à criação de grupos do Docker.
Os grupos do Docker permitem que os usuários executem contêineres do Docker sem privilégios de root, o que pode ser conveniente e melhorar a segurança.
Se você não gerenciar adequadamente, os grupos do Docker também podem criar vulnerabilidades de segurança ou se um usuário for adicionado ao grupo sem autenticação e autorização adequadas, esse usuário poderá executar contêineres arbitrários do Docker, levando potencialmente a violações de dados, infecções por malware e outros incidentes de segurança.
Certifique-se de que os grupos do Docker sejam criados e gerenciados de maneira segura, como:
https://security.stackexchange.com/questions/178542/is-adding-docker-group-not-a-good-idea
Segurança do Docker