Я хотел бы ограничить возможности моих демонов Docker, используемых для запуска производственных контейнеров, чтобы уменьшить их поверхность атаки.
Я хочу:
- ограничение извлечения из одного реестра
- запретить
push
- запретить
build
- вероятно, запретит многие другие функции
Вероятно, речь идет о блокировке некоторых маршрутов REST API демона.
Я это прочиталДокументация Docker об уменьшении поверхности атаки демонано там ничего не сказано об отключении функций демона.
Возможно ли это? Как мне это сделать?
решение1
Во-первых, доступ к API docker обычно эквивалентен доступу root на хосте. Не предоставляйте пользователям доступ к этому API, которым вы в противном случае не доверяли бы как root. Существует работа по поддержке rootless, которая входит в GA с движком docker, поэтому вы можете изучить это, а не пытаться заблокировать API.
Большинство попыток ограничить движок подразумевают обертывание API Docker с помощью API более высокого уровня, например, Kubernetes, Docker EE и других абстракций более высокого уровня, которые обеспечивают детализированный RBAC без предоставления прямого доступа к API Docker.
Тем не менее, вы можете ограничить API Docker, как вы и просили, используяплагин authz. Первоначально единственная известная мне реализация с открытым исходным кодом была предоставленаповоротный замок. В последнее время,OPA предоставила собственную реализацию. Просто поймите, что любой пользователь с таким доступом к API может потенциально отключить или обойти этот плагин с помощью доступа уровня root, который у него в противном случае был бы в Docker.