Ограничить push и pull для DTR доверенного реестра DTR
В Docker EE есть ли способ разрешить push и pull для DTR с определенных машин, сохраняя доступ к веб-интерфейсу на том же уровне, что и в обычном режиме?
- Вариант использования: мы хотели бы обеспечить использование стандартных базовых образов из DTR только в сборках докеров
И мы хотели бы обеспечить сборку образа докера только на стандартных машинах сборки докера, где включено доверие контента докера
Разрешены только следующие команды: Docker Pull, Docker Build и Docker Push на CI-сервере.
Эффективное принуждение пользователей использовать только базовые изображения из DTR. Если они строят образ где-то еще, они не смогут его подтолкнуть, и если они построят его на нашем CI-сервере, он удостоверится, что сможет получать базовый образ только из DTR, а не откуда-то еще, это также гарантирует они строят это с включенным доверием контента докера.
1 ответ
У меня был похожий случай использования, и ниже я поделюсь с вами, как я ограничил периметр подтягивающих и толкающих действий на DTR:
Настроить: у кого есть разрешения на выполнение определенных действий с объектами реестра и на загрузку образов Docker через веб-интерфейс UCP; это приводит к предоставлению конкретных грантов пользователям и / или командам.
Настроить: откуда пользователи (люди и / или роботы автоматизации) могут выполнять действия с реестром, добавляя специальные правила брандмауэра на сетевом уровне сетевым администратором.
Ограничьте действия извлечения только из определенного реестра, обновите файл по следующему пути в файловой системе хоста Docker,/var/lib/docker/daemon.json добавив URL-адрес DTR:
{ ... # some your custom Docker daemon configuration "registry-mirrors": ["https://your-registry-url"] ... # some other custom Docker daemon configuration }
Наконец, я получил: разрешить только определенным пользователям загружать образы Docker в репозитории DTR и только из местоположения, которое занесено в белый список сетевых ACL.
Некоторые ссылки:
Как настроить демон Docker: https://docs.docker.com/engine/reference/commandline/dockerd/;
Пример RBAC: https://success.docker.com/article/rbac-example-overview;
Разрешения DTR по умолчанию, поддерживаемые Docker EE RBAC: https://docs.docker.com/ee/dtr/admin/manage-users/permission-levels/.