Управление разрешениями Docker

Управление разрешениями Docker

У меня есть docker на сервере, который является общим в нашей группе. Однако я обнаружил, что другие могут удалить контейнер, который я создаю. Это небезопасно. Мне интересно, есть ли способ установить разрешение для контейнеров. Например, в Linux разные пользователи имеют разные разрешения на доступ к разным файлам.

решение1

Любой, кто имеет прямой доступ к сокету docker (например, добавлен в группу docker), фактически является root на хосте. Они могут запускать контейнеры как root с файловой системой хоста и другими пространствами имен, отображенными в контейнере, и с привилегиями, которые позволяют контейнеру выходить как root на хосте. Учитывая эту ситуацию, опасения, что у них есть доступ к другим контейнерам на хосте, кажутся неверно направленными.

Вам следует сосредоточиться на предоставлении доступа к API docker только тем, кому вы доверяете как системному администратору на хосте. Все остальные должны иметь доступ только через инструменты, реализующие соответствующие меры безопасности. Часто это включает настройку централизованных систем ведения журналов и метрик, а также развертывание изменений только через систему CI/CD.

Если этого не сделать, вы можете попытаться настроить что-то вроде OPA в качестве плагина authz на движке Docker, однако вам придется перейти от доступа к сокету Docker через файловую систему к использованию учетных данных TLS, уникальных для каждого пользователя.

В качестве альтернативы Docker предлагает корпоративное решение, в котором эта функциональность встроена в продукт.

Связанный контент