Владельцы групп и мейнтейнеры проектов применяют эти настройки для повседневной защиты проектов. Откройте страницу «Настройки» группы или проекта в боковом меню слева, а затем вкладку, указанную в каждом разделе ниже.

Настройки уровня группы

Настройки, которые владелец группы применяет ко всем проектам группы.

Основные

Установите уровень видимости группы «Приватный», где это возможно, в разделе «Настройки» → «Основные»: тогда группа и её проекты видны только участникам, что снижает риск непреднамеренного доступа к исходному коду и задачам.

Права доступа и возможности группы

Настройте права доступа и возможности группы в разделе «Настройки» → «Основные»:

  • Могут ли участники приглашать группы за пределами этой группы и её подгрупп.
  • Можно ли передавать проекты этой группы другим группам.
  • Уровень доступа к wiki группы.
  • Протоколы доступа к Git (SSH, HTTP(S)), включённые для группы.
  • Минимальная роль, необходимая для создания проектов в группе.
  • Минимальная роль, необходимая для создания подгрупп.
  • Могут ли участники создавать токены доступа группы и проекта в этой группе. Токен доступа группы может создать только участник с ролью Owner; токен доступа проекта, созданный участником группы, ограничен ролью этого участника в проекте.
  • Обязательна ли двухфакторная аутентификация для каждого участника группы, и какова продолжительность периода до её принудительного применения. После включения этой настройки подгруппы не могут задавать собственные правила двухфакторной аутентификации.
  • Ограничен ли доступ к содержимому Pages участниками проекта для всех проектов группы.

Репозиторий

Настройки, которые применяются к Git-репозиторию каждого проекта группы.

Токены деплоя

Токены деплоя предоставляют доступ к репозиториям и пакетам группы без привязки к личной учётной записи. Регулярно проверяйте токены деплоя, удаляйте неиспользуемые и следите, чтобы у оставшихся были чёткое описание, ограниченная область действия и срок действия.

Ветка по умолчанию

Настройте защиту ветки по умолчанию для всех проектов группы в разделе «Настройки» → «Репозиторий». Проект наследует эту настройку от группы, если группа не разрешила её переопределять.

Правила отправки изменений

Настройте правила отправки изменений для всех проектов группы в разделе «Настройки» → «Репозиторий». Если переопределение правил уровня инстанса разрешено, переопределите их здесь для политики, специфичной для группы. Список доступных правил — в разделе Правила отправки изменений.

Запретите переопределение этих правил на уровне проекта, если проекту не нужна собственная политика.

CI/CD

Настройки, которые применяются к CI/CD-пайплайнам и переменным во всех проектах группы.

Пайплайны

Включите опцию «Включить формат JWT для токенов заданий CI/CD» в разделе «Настройки» → «CI/CD».

Переменные

Маскируйте переменные CI/CD, которые содержат чувствительные значения, в разделе «Настройки» → «CI/CD». Значение замаскированной переменной не отображается в логах заданий и событиях аудита.

Настройки уровня проекта

Настройки, которые мейнтейнер или владелец проекта применяет к отдельному проекту.

Основные

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

Видимость, функции и разрешения проекта

Установите видимость проекта «Приватный», где это возможно, в разделе «Настройки» → «Основные». Включите опцию «Требуйте аутентификацию для просмотра медиафайлов», чтобы запретить неавторизованный доступ к медиафайлам, встроенным в задачи и запросы на слияние, и ограничьте доступ к объектам LFS, запросам на слияние, веткам, реестрам пакетов и контейнеров, задачам, окружениям и релизам в соответствии с требованиями вашей организации. Скачивание из реестра пакетов по умолчанию запрещено для всех пользователей.

Репозиторий

Настройки, которые применяются к Git-репозиторию проекта.

Правила отправки изменений

Настройте правила отправки изменений для проекта в разделе «Настройки» → «Репозиторий». Если переопределение правил уровня группы разрешено, переопределите их здесь для политики, специфичной для проекта. Список доступных правил — в разделе Правила отправки изменений.

Защищённые ветки

Используйте защищённые ветки, в разделе «Настройки» → «Репозиторий», чтобы определить, какие роли могут сливать изменения в основную и стабильные ветки или отправлять изменения в них напрямую. По умолчанию отправлять изменения в защищённую ветку напрямую могут только участники с ролью Maintainer или Owner. Подробнее — в разделе Защищённые ветки.

Защищённые теги

Если теги отмечают релизы или другие значимые точки в истории проекта, ограничьте, какая роль может создавать теги по заданному шаблону, в разделе «Настройки» → «Репозиторий». Например, ограничьте создание тегов версий по шаблону *_v* ролью Maintainer.

Токены деплоя

Токены деплоя предоставляют доступ к репозиторию и пакетам проекта без привязки к личной учётной записи. Регулярно проверяйте токены деплоя, удаляйте неиспользуемые и следите, чтобы у оставшихся были чёткое описание, ограниченная область действия и срок действия.

Ключи деплоя

Ключи деплоя — альтернатива токенам деплоя для предоставления доступа к репозиторию без привязки к личной учётной записи, в разделе «Настройки» → «Репозиторий». К ним применима та же проверка: область действия, описание и срок действия.

Запросы на слияние

Настройки, которые определяют, как запрос на слияние проходит ревью и сливается в основную или стабильные ветки проекта, в разделе «Настройки» → «Запросы на слияние».

Проверки слияния

  • Включите опцию «Пайплайны должны завершиться успешно» и добавьте в пайплайн проекта необходимые проверки безопасности: сканирование секретов, статический и динамический анализ кода, сканирование зависимостей и образов контейнеров на уязвимости.
  • Включите опцию «Все дискуссии должны быть закрыты», чтобы код, который ещё проходит ревью, не мог попасть в основную или стабильные ветки.

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

CI/CD

Настройки, которые применяются к CI/CD-пайплайнам, переменным и токенам проекта, в разделе «Настройки» → «CI/CD».

Пайплайны

Включите опцию «Используйте отдельные кеши для защищённых ветвей». Назначьте на файл .gitlab-ci.yml ответственного через CODEOWNERS, чтобы контролировать, кто может изменять конфигурацию пайплайна, и требуйте ручного подтверждения перед запуском критичного пайплайна или задания.

Переменные

Отмечайте переменные CI/CD с чувствительными значениями как защищённые и маскируемые и храните секреты в переменных CI/CD либо во внешнем Vault или Deckhouse Stronghold вместо репозитория. Подробнее — в разделе Интеграция с внешним Vault. Включите опцию «Показывать переменные конвейера», чтобы значения переменных пайплайна отображались в логах заданий: это упрощает диагностику сбоев пайплайна и обнаружение неожиданных значений.

Токены запуска конвейера

Токен запуска конвейера запускает пайплайн с правами участника, который его выпустил. Проверяйте такие токены с той же тщательностью, что и разрешения токена заданий CI/CD (ниже).

Разрешения токена заданий CI/CD

Ограничьте список групп и проектов, которым разрешён доступ к данным этого проекта из их собственных пайплайнов, в разделе «Настройки» → «CI/CD», с помощью белого списка.

Пакеты и реестры

Защищайте пакеты, опубликованные в реестре пакетов проекта, с помощью механизма защищённых пакетов, в разделе «Настройки» → «Пакеты и реестры», ограничивая доступ участникам выше определённой роли. То же применимо к реестру контейнеров.