Quais são as vantagens de colocar um usuário no grupo `docker` em vez de conceder a ele acesso `sudo` ao host?

Quais são as vantagens de colocar um usuário no grupo `docker` em vez de conceder a ele acesso `sudo` ao host?

Existe alguma vantagem real em colocar um usuário no dockergrupo em vez de conceder-lhe sudoacesso ao host?


Para resumir, estou escrevendo um tutorial mostrando como os membros do dockergrupo podem interagir diretamente (ou seja, sem usar sudo) com o servidor docker por meio de um soquete de domínio Unix dockerdno 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 dockergrupo 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 dockergrupo para que ele possa executar contêineres sem precisar executar sudotodos os comandos o tempo todo. Você coloca alguém sudoersquando deseja que ele possa fazê-lo sudoe 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.

informação relacionada