Security Gate logo
Помощь
Обновлена 17 июля 2026 г. в 15:27

Подготовка к установке

Kubernetes

  1. Разверните полноценный кластер Kubernetes версии не ниже 1.21. Инструмент Minikube не подойдет.

  2. Создайте пространство имен (namespace) для Security Gate.

  3. Создайте учетную запись для развертывания Security Gate в выделенном пространстве имен со следующими правами доступа ко всем ресурсам внутри пространства имен:

    • create,
    • delete,
    • get,
    • list,
    • patch,
    • update.

    (Опционально) Добавьте право на выполнение kubectl exec внутри пода.

  4. Подготовьте узлы в соответствии с таблицей 1.

  5. Обеспечьте доступные вычислительные ресурсы для кластера Kubernetes (минимальные значения):

    • 30 ядер CPU;
    • 65 ГБ RAM;
    • 350 ГБ для эфемерного хранилища.
  6. Настройте реестр образов, который Kubernetes будет использовать для развертывания подов.

  7. Настройте права на скачивание (pull) образов из реестра, указав учетные данные в секрете imagePullSecret.

  8. Установите балансировщик трафика NGINX Ingress Controller.

  9. Обеспечьте сетевой доступ из кластера Kubernetes к компонентам Persistent-слоя (S3, СУБД PostgreSQL, Apache Kafka).

Подробнее в официальной документации Kubernetes.

Таблица 1 — Требования к узлам

Назначение узла

Количество узлов

Требования

Сканирующий компонент sg-monotool

1

Для каждого узла:

  • 10 ядер CPU;
  • 30 ГБ RAM;
  • 165 ГБ для эфемерного хранилища (рекомендуется SSD)

Общие компоненты

2

Для каждого узла:

  • 12 ядер CPU;
  • 32 ГБ RAM;
  • 100 ГБ SSD

СУБД PostgreSQL

  1. Разверните СУБД PostgreSQL версии 16 или 17.

  2. Обеспечьте вычислительные ресурсы для кластера СУБД (минимальные значения):

    • 8 ядер CPU;
    • 16 ГБ RAM;
    • 500 ГБ SSD NVMe.
  3. Создайте базы данных:

    • work_db,
    • core_db,
    • user_db,
    • sast.
  4. Создайте учетные записи для каждой базы данных с правами доступа:

    • CREATE,
    • DROP,
    • CONNECT,
    • USAGE,
    • SELECT,
    • INSERT,
    • UPDATE,
    • DELETE.
  5. Установите расширения для каждой базы данных:

    • pg_stat_statements,
    • pg_trgm,
    • postgres_fdw,
    • pgstattuple,
    • fuzzystrmatch.

Подробнее в официальной документации PostgreSQL.

S3-хранилище

  1. Подготовьте S3-совместимое объектное хранилище. Примеры: VK Object Storage, MinIO.

  2. Обеспечьте вычислительные ресурсы для S3-хранилища (минимальное значение): 300 ГБ SSD.

  3. Создайте бакеты:

    • sec-prod-its-securitygate-origin-reports,
    • sec-prod-its-securitygate-joined-reports,
    • sec-prod-its-securitygate-sbom-reports,
    • sec-prod-its-securitygate-sources,
    • vdb5.
  4. Создайте сервисный аккаунт с ключевой парой access_key и secret_key с правами доступа к бакетам:

    • LIST,
    • GET,
    • PUT,
    • DELETE.

Apache Kafka

  1. Разверните кластер Apache Kafka из 3 брокеров минимум.

  2. Настройте конфигурацию кластера:

    • режим безопасности (security protocol): PLAINTEXT;
    • SASL-механизм (SASL mechanism): PLAIN.
  3. Создайте топики:

    • sbom-box,
    • sast_results-box,
    • service-box,
    • notification-box.

Подробнее в официальной документации Apache Kafka.

Прочие требования

  1. Установите Helm версии 3.18.2 или выше. Подробнее в официальной документации Helm.

  2. Убедитесь, что утилита make установлена:

    $ make --version
  3. (Опционально) Установите утилиту для просмотра состояния и логов подов. Примеры: kubectl, Lens, k9s.

  4. Подготовьте SMTP-сервер и учетную запись для него с правами на отправку сообщений.

  5. Настройте доменные имена для Security Gate:

    • security-gate.<ДОМЕН> — домен фронтенда.
    • security-gate-orchestrator.<ДОМЕН> — домен оркестратора.
  6. Получите TLS-сертификаты для указанных доменов или wildcard-сертификат (например, *.<ДОМЕН>.ru) и установите его в Kubernetes как секрет с именем wildcard.

  7. Добавьте лицензию Security Gate в Kubernetes-секрет sg-license.yaml и установите ее:

    Пример предоставленного файла с лицензией license.json:

    {"data": {  "organization_name": "Organization name",  "expires_at": "2030-12-31T23:59:59Z",  "repository_quota": 100,  "scanning_agents": 100},"signature": "<ЛИЦЕНЗИЯ_В_BASE64>"}

    Лицензия в Kubernetes-секрете sg-license.yaml:

    apiVersion: v1kind: Secrettype: Opaquemetadata:    name: sg-licensedata:    license.json: '<ЛИЦЕНЗИЯ_В_BASE64>'

    Пример команды для установки лицензии:

    $ kubectl -n <ПРОСТРАНСТВО_ИМЕН> apply -f sg-license.yaml