Перейти к содержанию

Установка AppSec.Hub с использованием Kubernetes

Для получения Helm-чарт AppSec.Hub необходимо добавить OCI-совместимый Helm приватный реестр (registry.appsec.global) с теми же учетными данными, что и для доступа к образам контейнеров.

  1. Войдите в реестр (с ручным вводом пароля).

    helm registry login -u myuser registry.appsec.global
    Password:
    Login succeeded
    
  2. Скачайте последнюю/конкретную версию AppSec.Hub Helm-чарт.

    helm pull oci://registry.appsec.global/appsechub/hub-helm/appsechub --version 0.2.14
    
  3. Сконфигурируйте параметры в файле values.yaml.

    Пример конфигурационного файла приведен в приложении «Приложение 23. Конфигурационный файл values.yaml». Для запуска AppSec.Hub без глубокой настройки необходимо указать логин и пароль для реестра образов и MODEL_SECRET_KEY в секции hubair (их необходимо получить у вендора). Для более гибкой настройки смотрите файл values.yaml, который поставляется вместе с Helm-чартом.

    Внимание!

    При обновлении продукта через Helm, пожалуйста, обратите внимание, что структура файла values.yaml существенно изменилась.

    Убедитесь, что все настройки из текущего values.yaml перенесены в новый файл корректно.

    3.1. Скачайте новый файл values.yaml, соответствующий обновленной версии продукта.

    3.2. Настройте параметры файла values.yaml в соответствии с требованиями вашей среды.

    Сконфигурируйте следующие разделы и модули:

    3.3. images.registry:

    Для доступа к приватному реестру образов вам понадобится секрет (ImagePullSecret), который хранит учетные данные для аутентификации.

    • create - определяет создание секрета:
      • true: секрет будет создан.
      • false: необходимо вручную указать существующий секрет в параметре name. Укажите имя существующего секрета Kubernetes, если вы хотите использовать его для аутентификации.
    • username и password - если вы хотите создать секрет, укажите значения для username и password.

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.4. hub-air:

    • Укажите настройки шифрования моделей AVC через секцию env, для MODEL_USE_ENCRYPTION установите значение 1, MODEL_SECRET_KEY - ключ шифрования моделей AVC - необходимо получить у сотрудников компании - поставщика AppSec.Hub.
    • При необходимости настройте запросы и лимиты ресурсов.

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.5. hubdbmigration:

    • Задайте необходимые пароли:
      • PGPASSWORD — пароль пользователя с административным доступом к основной схеме БД.
      • hubadmPassword — пароль пользователя с правами администратора на БД AppSec.Hub.
      • hubappPassword — пароль пользователя БД для работы AppSec.Hub.
      • hubauthPassword — пароль пользователя для сервиса аутентификации AppSec.Hub.
      • hubbiPassword — пароль пользователя с правами работы с AppSec.Hub DWH.

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.6. hub-core:

    • Укажите необходимые параметры app_properties:
      • db_hub_password - пароль пользователя с доступом к основной схеме БД, должен соответствовать паролю hubapp секции hubdbmigration.
      • encrypt_key - ключ шифрования паролей, используемых для доступа к инструментам ИБ. Размер ключа — 24 символа (для генерации ключа можно использовать следующую команду: dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2-25 | rev).
      • hub_app_url - замените значение параметра на URL, который будет использоваться для доступа к AppSec.Hub.
      • hub_consul_token - замените значение параметра на токен для сервиса consul.
    • Укажите необходимые параметры auth_properties:
      • db_auth_password - пароль пользователя для сервиса аутентификации AppSec.Hub.
      • jwt_token_signing_key - замените <HUBAPP-SIGN-KEY> на значение, полученное в результате выполнения следующей команды: dd if=/dev/urandom bs=1 count=64 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev.
      • metrics_password - замените пароль по умолчанию пользователя администратора metrics.
    • Для использования ZAP необходимо создать постоянный том для хранения, указав в секции pvc 'enable: true', storageClassName, и размер storage.

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.6. hub-ui:

    • Для включения использования метрик замените значение selectedNginxConf на "metrics" - метрики включены. В случае если метрики не требуются, можно оставить значение по умолчанию.

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.7. hub-engine-manager:

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.8. hub-engine - настройка CI-инструмента:

    • Включите сервис docker-in-docker, указав в разделе enable: true.
    • Включите CI инструмент hub-engine-manager, указав в разделе enable: true.
      • Укажите base_url, который будет использоваться для доступа к hub-engine-manager.
    • Включите slave ноду hub-Engine, указав в разделе enable: true
      • Укажите приватный ключ authorized_keys - приватный ключ создается в секретах через web-интерфейс hub-engine-manager.
      • Раскомментируйте раздел nodes.

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.9. ingress:

    • Укажите домены AppSec.Hub и hub-engine-manager в полях соответствующих секций. Параметр enabled: определяет, нужно ли создавать Ingress для конкретного сервиса.
    • Создайте секрет с SSL-сертификатами, установив create: true и указав необходимые сертификаты.
    • Включите использование SSL, установив опцию ssl: true.
    • Для задания специфичных параметров укажите их в секции annotations.
    • Укажите класс Ingress-контроллера.

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.10. postgresql:

    Основные настройки PostgreSQL:

    • Включите PostgreSQL, укажите enable: true для активации PostgreSQL.
    • Остальные параметры привести в соответствие с hubdbmigration (POSTGRES_PASSWORD), вне зависимости от использования или нет, образ используется для проверки доступности БД, то есть данные должны быть актуальны.
    • Включите PVC:
      • Установите enable: true для создания постоянного тома.
      • Укажите класс хранилища storageClassName (оставьте пустым, чтобы использовать значение по умолчанию).
      • Укажите размер тома storage.

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.11. consul:

    • Добавьте consulToken.
    • Добавьте секрет imagePullSecrets для доступа к реестру, если требуется.
    • Включите UI (пользовательский интерфейс Consul), если требуется.

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.12. gateway:

    • Укажите ключ подписи - jwtToken (для генерации токена можно использовать следующую команду: dd if=/dev/urandom bs=1 count=64 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev).

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.13. hub-sso:

    • Укажите ключ шифрования - encKey (для генерации токена можно использовать следующую команду: dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2-17 | rev).
    • Укажите опцию url AppSec.Hub.

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.14. hub-pipeline:

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.15. rabbitmq:

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.16. hub-issue:

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.17. hub-issue-rule:

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.18. superset - включение метрик в AppSec.Hub:

    • Убедитесь, что модуль superset включен, установив параметр enabled: true.
    • Установите пользователя, от имени которого будет запускаться контейнер: runAsUser: 1000.
    • В разделе configOverrides модуля superset, раскомментируйте secret и укажите SECRET_KEY (для генерации можно использовать следующую команду: openssl rand -base64 42).
    • Укажите пароль для подключения superset к базе данных метрик в разделе supersetNode, db_pass: 'пароль_для_подключения_BD'.
    • Замените пароль по умолчанию в опции init.adminUser.password. Этот пароль должен совпадать с METRICS_PASSWORD из модуля hubmetricsbridge.
    • Укажите пароль для пользователя metrics в разделе postgresql. Пароль должен совпадать с db_pass, указанным в supersetNode.
    • Включите использование PVC, указав storageClass, accessModes, size - размер тома.
    • В разделе hubmetricsbridge укажите следующие параметры:
      • PGPASSWORD - пароль пользователя с административным доступом БД метрик, должен совпадать с паролем указанным в модуле postgresql.
      • SCHEDULER_DB_PASSWORD - пароль пользователя scheduler БД метрик.
      • METRICS_DB_PASSWORD - пароль пользователя метрик.
      • REMOTE_PASSWORD_DB - пароль пользователя с правами администратора на БД AppSec.Hub.
      • METRICS_PASSWORD - имя пользователя метрик, должно совпадать с паролем, указанным в модуле init.

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.19. hub-scheduler:

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.20. defect-sync:

    Пример модуля приведен в приложении «Приложение 23. Конфигурационный файл values.yaml».

    3.21. Для более гибкой настройки смотрите файл values.yaml.

  4. Установите AppSec.Hub.

    helm upgrade --install hub sfs/appsechub -f values.yaml
    
К началу