Existe alguma vantagem real em colocar um usuário no docker
grupo em vez de conceder-lhe sudo
acesso ao host?
Para resumir, estou escrevendo um tutorial mostrando como os membros do docker
grupo podem interagir diretamente (ou seja, sem usar sudo
) com o servidor docker por meio de um soquete de domínio Unix dockerd
no qual o servidor está escutando.
No entanto, ao conceder a um usuário sem privilégios o poder de criar contêineres arbitrários, parece que o usuário ganhaeficazacesso root ao host: por exemplo, torna-se bastante fácil modificar o host fs através de montagens de ligação. Ou para interagir com o kernel via procfs
/ sysfs
. Então, qual é o sentido de colocar alguém no docker
grupo em vez de dar a esse usuário acesso root ao sistema?
Responder1
Ou o usuário poderia simplesmentecarregue um contêiner Docker conveniente e agradável que os jogue diretamente em um shell raiz.
Conceder acesso ao soquete docker praticamente garante a capacidade de escalar privilégios.
O que importa aqui é declarar suas intenções. Você coloca alguém no docker
grupo para que ele possa executar contêineres sem precisar executar sudo
todos os comandos o tempo todo. Você coloca alguém sudoers
quando deseja que ele possa fazê-lo sudo
e executa qualquer comando como root.
Se você não deseja conceder acesso arbitrário ao soquete Docker a pessoas, quase certamente deveria usar um sistema de orquestração como OpenShift ou Kubernetes.