Владельцы групп и мейнтейнеры проектов применяют эти настройки для повседневной защиты проектов. Откройте страницу «Настройки» группы или проекта в боковом меню слева, а затем вкладку, указанную в каждом разделе ниже.
Настройки уровня группы
Настройки, которые владелец группы применяет ко всем проектам группы.
Основные
Установите уровень видимости группы «Приватный», где это возможно, в разделе «Настройки» → «Основные»: тогда группа и её проекты видны только участникам, что снижает риск непреднамеренного доступа к исходному коду и задачам.
Права доступа и возможности группы
Настройте права доступа и возможности группы в разделе «Настройки» → «Основные»:
- Могут ли участники приглашать группы за пределами этой группы и её подгрупп.
- Можно ли передавать проекты этой группы другим группам.
- Уровень доступа к 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», с помощью белого списка.
Пакеты и реестры
Защищайте пакеты, опубликованные в реестре пакетов проекта, с помощью механизма защищённых пакетов, в разделе «Настройки» → «Пакеты и реестры», ограничивая доступ участникам выше определённой роли. То же применимо к реестру контейнеров.