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

You should also read: