Безопасность

Безопасная коммуникация между компонентами

Для всех внутренних коммуникаций между сервисами GitLab в кластере Kubernetes используется шифрование TLS. Внешний доступ защищён с помощью HTTPS или другого безопасного протокола.

Безопасный сбор метрик

Сбор метрик защищается с помощью контейнера sidecar kube-rbac-proxy в сочетании с RBAC Kubernetes. Kube-rbac-proxy выполняет функции аутентификации и авторизации, предоставляя доступ к конечным точкам метрик только для запросов с действующими правами.

Поддерживаемое шифрование TLS

  • Для всех входящих и исходящих соединений требуется TLS версии 1.2 или выше.
  • TLS-сертификаты должны иметь длину не менее 112 бит.
  • Использование ключей RSA, DSA и DH короче 2048 бит, а также ECC короче 224 бит не допускается.

Политика обновлений

  • При обновлении мажорной версии модуля обновляется мажорная версия GitLab (например, 17 → 18).
  • При обновлении минорной версии модуля обновляется минорная или патч-версия GitLab (например, 17.3 → 17.4 или 17.3.0 → 17.3.6).
  • Полный список соответствия версий модуля версиям GitLab приведён в разделе Поддерживаемые версии.

Вопросы, связанные с серверами Gitaly

Обновление реплики Gitaly

Сценарии обновления:

  • Восстановление данных на узле Gitaly после пересоздания PV.
  • Ручное обновление узла при устаревании данных.

Для обновления конкретного узла выполните следующую команду:

kubectl exec -i -t -n d8-code praefect-0 -c praefect -- praefect -config /etc/gitaly/config.toml verify --virtual-storage <virtual_storage> --storage <gitaly_pod_name>

Данные всех репозиториев на <gitaly_pod_name> будут помечены как устаревшие для приоритизации перепроверки. Перепроверка будет работать асинхронно в фоновом режиме.

Удаление модуля

При необходимости вы можете удалить модуль и полностью очистить кластер от его следов:

  • Выключите модуль, следуя обычной процедуре выключения модуля (одинакова для всех модулей кластера DKP).
  • Добавьте в ModuleConfig аннотацию modules.deckhouse.io/allow-disable: "true", чтобы предотвратить ошибку удаления от deckhouse-controller.
  • Измените enable параметр в ModuleConfig со значения true на false.
  • Удалите пространство имён, так как оно может содержать некоторые остаточные артефакты в виде ConfigMap или секретов:

    `kubectl delete ns d8-code`.
    

    Внимание. Перед удалением секретов не забудьте сохранить secrets/rails-secret, иначе вы потеряете возможность восстановиться из существующих бекапов в будущем.