Подготовка к установке
-
Разверните полноценный кластер Kubernetes версии не ниже 1.21. Инструмент Minikube не подойдет.
-
Создайте пространство имен (namespace) для Security Gate.
-
Создайте учетную запись для развертывания Security Gate в выделенном пространстве имен со следующими правами доступа ко всем ресурсам внутри пространства имен:
create,delete,get,list,patch,update.
(Опционально) Добавьте право на выполнение
kubectl execвнутри пода. -
Подготовьте узлы в соответствии с таблицей 1.
-
Обеспечьте доступные вычислительные ресурсы для кластера Kubernetes (минимальные значения):
- 30 ядер CPU;
- 65 ГБ RAM;
- 350 ГБ для эфемерного хранилища.
-
Настройте реестр образов, который Kubernetes будет использовать для развертывания подов.
-
Настройте права на скачивание (
pull) образов из реестра, указав учетные данные в секретеimagePullSecret. -
Установите балансировщик трафика NGINX Ingress Controller.
-
Обеспечьте сетевой доступ из кластера Kubernetes к компонентам Persistent-слоя (S3, СУБД PostgreSQL, Apache Kafka).
Подробнее в официальной документации Kubernetes.
Назначение узла | Количество узлов | Требования |
|---|---|---|
Сканирующий компонент | 1 | Для каждого узла:
|
Общие компоненты | 2 | Для каждого узла:
|
-
Разверните СУБД PostgreSQL версии 16 или 17.
-
Обеспечьте вычислительные ресурсы для кластера СУБД (минимальные значения):
- 8 ядер CPU;
- 16 ГБ RAM;
- 500 ГБ SSD NVMe.
-
Создайте базы данных:
work_db,core_db,user_db,sast.
-
Создайте учетные записи для каждой базы данных с правами доступа:
CREATE,DROP,CONNECT,USAGE,SELECT,INSERT,UPDATE,DELETE.
-
Установите расширения для каждой базы данных:
pg_stat_statements,pg_trgm,postgres_fdw,pgstattuple,fuzzystrmatch.
Подробнее в официальной документации PostgreSQL.
-
Подготовьте S3-совместимое объектное хранилище. Примеры: VK Object Storage, MinIO.
-
Обеспечьте вычислительные ресурсы для S3-хранилища (минимальное значение): 300 ГБ SSD.
-
Создайте бакеты:
sec-prod-its-securitygate-origin-reports,sec-prod-its-securitygate-joined-reports,sec-prod-its-securitygate-sbom-reports,sec-prod-its-securitygate-sources,vdb5.
-
Создайте сервисный аккаунт с ключевой парой
access_keyиsecret_keyс правами доступа к бакетам:LIST,GET,PUT,DELETE.
-
Разверните кластер Apache Kafka из 3 брокеров минимум.
-
Настройте конфигурацию кластера:
- режим безопасности (security protocol):
PLAINTEXT; - SASL-механизм (SASL mechanism):
PLAIN.
- режим безопасности (security protocol):
-
Создайте топики:
sbom-box,sast_results-box,service-box,notification-box.
Подробнее в официальной документации Apache Kafka.
-
Установите Helm версии 3.18.2 или выше. Подробнее в официальной документации Helm.
-
Убедитесь, что утилита
makeустановлена:$ make --version -
(Опционально) Установите утилиту для просмотра состояния и логов подов. Примеры:
kubectl, Lens,k9s. -
Подготовьте SMTP-сервер и учетную запись для него с правами на отправку сообщений.
-
Настройте доменные имена для Security Gate:
security-gate.<ДОМЕН>— домен фронтенда.security-gate-orchestrator.<ДОМЕН>— домен оркестратора.
-
Получите TLS-сертификаты для указанных доменов или wildcard-сертификат (например,
*.<ДОМЕН>.ru) и установите его в Kubernetes как секрет с именемwildcard. -
Добавьте лицензию 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