Установка AppSec.Hub с использованием Kubernetes
Для получения Helm-чарт AppSec.Hub необходимо добавить OCI-совместимый Helm приватный реестр (registry.appsec.global) с теми же учетными данными, что и для доступа к образам контейнеров.
-
Войдите в реестр (с ручным вводом пароля).
helm registry login -u myuser registry.appsec.global Password: Login succeeded -
Скачайте последнюю/конкретную версию AppSec.Hub Helm-чарт.
helm pull oci://registry.appsec.global/appsechub/hub-helm/appsechub --version 0.2.14 -
Сконфигурируйте параметры в файле 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). - Укажите опцию
urlAppSec.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.
-
Установите AppSec.Hub.
helm upgrade --install hub sfs/appsechub -f values.yaml