Ограничить доступ к реестру контейнеров gitlab - PullRequest
0 голосов
/ 06 мая 2018

Я хочу, чтобы пользователи могли отправлять файл docker вместе с кодом в gitlab и позволять gitlab создавать образ, который затем может быть извлечен аутентифицированным пользователем проекта.

Проблема в том, что я хочу убедиться, что пользователи не помещают образы докеров непосредственно в реестр контейнеров gitlab, чтобы мы могли просматривать файлы и элементы управления docker, а также убедиться, что Dockefiles используют реестр Redhat only для извлечения вещей. от.

Как мы можем запретить пользователям отправлять свои собственные встроенные изображения в gitlab? Другими словами, как мы можем убедиться в том, что образ докера в реестре контейнеров проекта gitlab - это файл, созданный gitlab из dockerfile, а не тот, который был вытолкнут директ-пользователями проекта из другого места?

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Я делаю аналогичную оценку, и хотя мне действительно нравится общее предложение Gitlab, для меня это потенциальный ограничитель шоу.

Другим возможным обходным путем может быть использование маркеров развертывания . Потенциальная проблема заключается в том, что они предоставляются отдельно для каждого проекта, поэтому, если вы хотите предоставить доступ к большому количеству изображений, это может стать громоздким. С другой стороны, вы можете назначить один проект, который будет содержать все ваши изображения (вы можете сохранить более одного имени изображения в одном реестре проектов Gitlab), и настроить свои скрипты CI так, чтобы все туда помещалось.

Возможно, более полезным было бы использовать токены личного доступа . Они установлены глобально для пользователя, и вы можете указать сколько угодно (например, по одному для каждого клиента), установить срок действия и ограничить доступ к read_registry.

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

Я не думаю, что в настоящее время это возможно. Если вы проверите модель разрешений gitlab , вы увидите, что уровни доступа пользователей определяют, что вы можете делать в реестре контейнеров:

  • права на чтение доступны как Reporter +
  • Права на обновление доступны для разработчиков +

Если ваши пользователи разработчики, то они смогут загружать изображения в реестр. Если вы хотите ограничить это сборками gitlab-ci, вам нужно будет использовать защищенные ветви и ограничить пользователей уровнем доступа Reporter (возможно, не тем, что вы хотите).

Альтернатива, немного запутанная, заключается в том, чтобы настроить второй проект, который используется в качестве источника изображений, и настроить его сборку для извлечения из первой защищенной ветви проекта. Привязки к защищенной ветке в первом проекте всегда должны быть проверены, а образы докеров будут извлечены из второго проекта.

...