Gerenciando contêineres Docker com segurança
Um dos problemas de segurança que o Docker traz é que o Docker Daemon funciona com permissões root. Isso significa que todos os contêineres criados são executados como processos root. Isso pode ser preocupante em alguns casos.
Outra situação é a seguinte:
Você tem uma máquina com uma instância do Docker instalada. Nessa instância você tem 2 conteiners, x e y. Você quer que certos usuários do sistema consigam gerenciar o conteiner x mas não consigam gerenciar o conteiner y.
Num primeiro momento, essa divisão, esse multi tenancy, não é possível.
Quais são as alternativas?
- Instalar um servidor SSH dentro do conteiner
- Dar permissão sudo para tal usuário, mas para apenas certos comandos
- Criar conteiners com arquivos a nivel de usuario (mas isso pode gerar alguns problemas)
- Usar o Portainer para gerenciar os conteiners (o Portainer permite criar usuarios e permissões para usuários específicos)
Referências
Usando Docker com segurança
https://packetpushers.net/using-docker-securely-on-management-servers/
Discussão no StackOverflow sobre rodar conteineres sem sudo
https://askubuntu.com/questions/477551/how-can-i-use-docker-without-sudo
Fazendo os volumes criados pelos conteineres pertencerem à um usuário não root
https://jtreminio.com/blog/running-docker-containers-as-current-host-user/
Rodando conteineres sem sudo
https://medium.com/redbubble/running-a-docker-container-as-a-non-root-user-7d2e00f8ee15
Rodando conteineres sem sudo
https://medium.com/better-programming/running-a-container-with-a-non-root-user-e35830d1f42a