Как мы можем заблокировать док-терминал - PullRequest
0 голосов
/ 15 октября 2018

У нас есть приложение, которое запускает несколько контейнеров на док-машине.Для его запуска мы используем док-терминал.Однако любой, имеющий доступ к хост-компьютеру, может запускать док-машины, запускать и останавливать контейнеры или загружать новые контейнеры

Как мы можем заблокировать доступ к док-терминалу таким образом, чтобы только авторизованные пользователи могли запускать команды

1 Ответ

0 голосов
/ 15 октября 2018

Это хуже чем это.Любой, кто может запустить любую команду Docker, может выполнить:

docker run -it -v /:/host -u root ubuntu sh

И тогда у них будет оболочка корневого уровня, которая имеет неограниченный доступ к файловой системе хоста.

Нет (легко) способ ограничить это дальше.Вы не можете безопасно сделать доступ к Docker доступным для ненадежных пользователей в общей системе.

Типичная настройка имеет сокет Docker, принадлежащий root, и выделенную группу «docker» и не доступна для всех.Если у вас есть ограниченное количество пользователей, которые уже имеют доступ к sudo (или вы не против, если они предоставят его себе), они могут sudo run docker, или вы можете добавить их в группу «Докер», и другие пользователи выиграют ».уметь запускать команды Docker;они могут получить доступ к сервисам в уже запущенных контейнерах.(Если вы изменили настройку демона Docker так, чтобы он прослушивал TCP-сокет, вы предоставили root-доступ к хосту любому, кто сможет получить доступ к сокету.)

В конкретном случае Docker Machineон всегда прослушивает сокет TCP и, хотя он не доступен вне хоста, единственный способ ограничить доступ к нему - ограничить распространение его сертификатов TLS.Вероятно, я бы не использовал его в среде, отличной от системы разработки, где я не могу использовать «более родной» Docker.

...