Установка#
Данное руководство предназначено для описания установки Platform V ASOC Control Center в Platform V DropApp при помощи инструментов Platform V DevOps Tools (CDJE).
Порядок установки#
Выбор режима Platform V ASOC Control Center (обязательный)#
Последовательность действий#
В рамках выполнения шага, необходимо определить в каком режиме требуется функционирование Platform V ASOC Control Center.
В Platform V ASOC Control Center реализовано два режима работы:
Установка в режиме встраивания в OneWork - установка как часть платформы OneWork, интеграция осуществляется через внутренние механизмы платформы. При этом компоненты ASOC используют общую инфраструктуру OneWork, включая аутентификацию, логирование и управление ресурсами.
Установка в режиме Standalone - поднятие Docker-контейнеров на локальной машине или выделенном сервере. В этом режиме система работает независимо от OneWork, все зависимости и сервисы (база данных, брокер сообщений, веб-сервер) запускаются в контейнерах согласно конфигурации в
docker-compose.yml. Данный режим подходит для тестирования, разработки или эксплуатации в изолированной инфраструктуре.
Проверка результата#
В результате выполнения шага должно быть однозначно определено, в каком режиме будет функционировать Platform V ASOC Control Center:
в режиме встраивания с OneWork;
в режиме Standalone.
Выбранный режим не подлежит изменению в процессе эксплуатации без полной переустановки или миграции, поэтому его корректное определение на данном этапе критически важно.
Настройка подключения модулей Platform V ASOC Control Center (обязательный)#
Последовательность действий#
В рамках выполнения шага, необходимо настроить следующие модулей:
UI Личного кабинета. Информация о настройке приведена в разделе Настройка подключения UI Личного кабинета.
SCAMASTER (Dependency Track). Информация о настройке приведена в разделе Настройка подключения SCAMASTER (Dependency Track).
SASTMASTER. Информация о настройке приведена в разделе Настройка подключения SASTMASTER.
Оркестратор. Информация о настройке приведена в разделе Настройка подключения модуля Orchestrator.
Access Control Service. Информация о настройке приведена в разделе Настройка подключения модуля Access Control Service.
Project Store. Информация о настройке приведена в разделе Настройка подключения модуля Project Store.
Сервис хранения единой базы уязвимостей. Информация о настройке приведена в разделе Настройка подключения модуля Сервис хранения единой базы уязвимостей.
Личный кабинет. Информация о настройке приведена в разделе Настройка подключения модуля Личный кабинет.
Дашборд (Micro Frontend). Информация о настройке приведена в разделе Настройка подключения модуля Дашборд (Microfrontend).
Настройка подключения UI Личного кабинета#
Настройка подключения UI Личного кабинета выполняется путем определения параметров. Параметры настройки подключения модуля UI Личного кабинета приведены в Справочнике конфигурационных файлов и параметров.
Настройка подключения SCAMASTER (Dependency Track)#
Для настройки подключения SCAMASTER (Dependency Track), необходимо выполнить следующие шаги:
Перейти в Dependency Track:
curl --request POST \ --url https://${asoc-ingress-dependency-track}/api/v1/user/login \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data username=admin \ --data password=admin \ --insecureСменить пароль для администратора:
curl --request POST \ --url https://${asoc-ingress-dependency-track}/api/v1/user/forceChangePassword \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data username=admin \ --data password=admin \ --data newPassword=${your_password} \ --data confirmPassword=${your_password} \ --insecureВыполнить повторный вход (с использованием нового пароля):
curl --request POST \ --url https://${asoc-ingress-dependency-track}/api/v1/user/login \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data username=admin \ --data password=${your_password} \ --insecureВ ответ вернется токен формата
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlzcyI6IkRlcGVuZGVuY3ktVHJhY2siLCJpYXQiOjE3NTYzOTMyNjUsImV4cCI6MTc1Njk5ODA2NSwicGVybWlzc2lvbnMiOiJBQ0NFU1NfTUFOQUdFTUVOVCxCT01fVVBMT0FELFBPTElDWV9NQU5BR0VNRU5ULFBPTElDWV9WSU9MQVRJT05fQU5BTFlTSVMsUE9SVEZPTElPX01BTkFHRU1FTlQsUFJPSkVDVF9DUkVBVElPTl9VUExPQUQsU1lTVEVNX0NPTkZJR1VSQVRJT04sVEFHX01BTkFHRU1FTlQsVklFV19CQURHRVMsVklFV19QT0xJQ1lfVklPTEFUSU9OLFZJRVdfUE9SVEZPTElPLFZJRVdfVlVMTkVSQUJJTElUWSxWVUxORVJBQklMSVRZX0FOQUxZU0lTLFZVTE5FUkFCSUxJVFlfTUFOQUdFTUVOVCxBQ0NFU1NfTUFOQUdFTUVOVCxCT01fVVBMT0FELFBPTElDWV9NQU5BR0VNRU5ULFBPTElDWV9WSU9MQVRJT05fQU5BTFlTSVMsUE9SVEZPTElPX01BTkFHRU1FTlQsUFJPSkVDVF9DUkVBVElPTl9VUExPQUQsU1lTVEVNX0NPTkZJR1VSQVRJT04sVEFHX01BTkFHRU1FTlQsVklFV19CQURHRVMsVklFV19QT0xJQ1lfVklPTEFUSU9OLFZJRVdfUE9SVEZPTElPLFZJRVdfVlVMTkVSQUJJTElUWSxWVUxORVJBQklMSVRZX0FOQUxZU0lTLFZVTE5FUkFCSUxJVFlfTUFOQUdFTUVOVCIsImlkcCI6IkxPQ0FMIn0.340llxFb-A1NTSnRRkcUZyoUvkPmesiDPyWh-lMyEtkПосле повторного входа получить список групп администратора:
curl --request GET \ --url https://${asoc-ingress-dependency-track}/api/v1/team/ \ --header 'Authorization: Bearer ${your_token}' \ --insecureВ ответ вернется json-файл со списком групп. В полученном json-файле, необходимо:
найти следующий фрагмент данных:
{ "uuid":"0c9e175e-a1c7-4144-b1ec-b7aaaf3a2857", "name":"Administrators" }скопировать значение поля
uuid.
Настройка подключения SCA-адаптер#
Настройка подключения SCA-адаптера выполняется путем определения параметров. Параметры настройки подключения модуля SCA-адаптер приведены в Справочнике конфигурационных файлов и параметров.
Настройка подключения Dependency track tool adapter#
Настройка подключения Dependency track tool adapter выполняется путем определения параметров. Параметры настройки подключения модуля Dependency track tool adapter приведены в Справочнике конфигурационных файлов и параметров.
Настройка подключения SASTMASTER#
Настройка подключения SASTMASTER, TASKMANAGER и инструментов сканирования SASTMASTER выполняется путем определения параметров. Параметры настройки подключения приведены в Справочнике конфигурационных файлов и параметров.
Настройка подключения модуля Orchestrator#
Настройка подключения модуля Orchestrator выполняется путем определения параметров. Параметры настройки подключения приведены в Справочнике конфигурационных файлов и параметров.
Настройка подключения модуля Access Control Service#
Настройка подключения модуля Access Control Service выполняется путем определения параметров. Параметры настройки подключения приведены в Справочнике конфигурационных файлов и параметров.
Настройка подключения модуля Project Store#
Настройка подключения модуля Project Store выполняется путем определения параметров. Параметры настройки подключения приведены в Справочнике конфигурационных файлов и параметров.
Настройка подключения модуля Сервис хранения единой базы уязвимостей#
модуля Сервис хранения единой базы уязвимостей выполняется путем определения параметров. Параметры настройки подключения приведены в Справочнике конфигурационных файлов и параметров.
Настройка подключения модуля Личный кабинет#
Подключение модуля Личный кабинет не требует заполнения параметров.
Проверка результата#
В результате выполнения шага все модули Platform V ASOC Control Center должны быть корректно настроены для взаимодействия между собой и с внешними системами.
Для проверки корректности работы модулей Platform V ASOC Control Center, необходимо выполнить шаги по проверке работоспособности описанные в разделе Чек-лист проверки корректности работы.
Настройка интеграций (обязательный)#
В рамках выполнения шага, требуется настроить необходимые для работы интеграции:
Последовательность действий#
Настройка интеграции с Базой данных ASOC (Platform V Pangolin DB)#
Для настройки интеграции с Базой данных ASOC, в файле ConfigMap.yml каждого сервиса имеющего подключение к БД,
необходимо заполнить параметры:
DB_URL- URL подключения к БД;DB_DRIVER- Класс драйвера БД;DB_USER- пользователь.
В DropApp создать секцию secrets и заполнить следующие параметры:
asoc.database.certs.deploy- разворачивать ли TLS-сертификаты для подключения к БД;asoc.ose.istio.type- тип интеграции с Istio в OpenShift;asoc.ose.secrets.deploy- автоматическое создание Kubernetes Secrets из значений Helm.
Подробное описание и пример заполнения параметров приведено в таблице.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
URL подключения к БД |
|
|
Класс драйвера БД |
|
|
Имя пользователя для подключения к БД |
|
|
Разворачивать ли TLS-сертификаты для подключения к БД. Значение по умолчанию: |
|
|
Тип интеграции с Istio в OpenShift. Определяет, как сервисы ASOC взаимодействуют с service-mesh Istio. Доступные значения: |
|
|
Автоматическое создание Kubernetes Secrets из значений Helm. Доступные значения: |
|
Необходимо выполнить установку и конфигурирование базы данных согласно руководству по установке продукта Platform V Pangolin DB.
Настройка интеграции с Platform V IAM#
Для настройки интеграции, необходимо предварительно получить сертификаты необходимой точки подключения и создать ответвление в Platform V IAM.
Процесс выпуска и подготовки сертификатов описан в разделе Подготовка окружения.
Настройка интеграции с Platform V Keycloak (KCSE)#
Для настройки интеграции с Platform V Keycloak (KCSE), необходимо задать параметр приведенный в таблице. Параметр
задается в файле asoc-cm-personal-office.yaml.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Путь до ролей в токене аутентификации |
|
Глобальные роли в клиенте OneWork#
Для корректной работы системы ASOC через интеграцию с Keycloak, в клиенте OneWork должны быть назначены следующие глобальные роли пользователям, взаимодействующим с ASOC:
Роль |
Описание |
|---|---|
|
Глобальная административная роль с полным доступом к управлению системой, включая настройку параметров, безопасность и мониторинг |
|
Базовая роль пользователя, предоставляющая доступ к проектам, данным и функционалу для выполнения повседневных задач в ASOC |
|
Глобальная роль DevOps-специалиста, отвечающего за интеграцию, настройку CI/CD и поддержку инфраструктуры безопасности |
Эти роли должны быть добавлены в конфигурацию клиента OneWork в Keycloak.
Настройка интеграции с Platform V IAM Proxy#
Для настройки интеграции с Platform V IAM Proxy, необходимо создать junction (ответвление) на IAM proxy, это обеспечит перенаправление запросов к UI ASOC.
Пример junction (ответвления), для секции proxy_jct_list, для компонента ASOC:
JunctionConfig[asoc-dev1]:
junctionName: "ASOC / DEV1" # Имя ответвления
junctionPoint: /asoc-dev1 # Точка входа в ответвление
indexUrl: /asoc # Стартовая страница внутри ответвления
transparent: false # Режим прозрачности ответвления (по умолчанию false)
https: true # Использовать HTTPS для соединения (по умолчанию true)
sslCommonName: "office-ui-asoc-dev-1.apps.dap.devpub-02.solution.mycompny" # Шаблон имени из CN сертификата backend-серверов
applyJctRequestFilter: "common/rds-set-header-host-to-backend.location.conf, common/rds-ssl-sni-on.server.conf" # Список применяемых фильтров запросов
serverAddresses:
- office-ui-asoc-dev-1.apps.dap.devpub-02.solution.mycompny:443 # Хост сервиса ASOC
Процесс создания ответвлений описан в документации продукта Platform V IAM.
Настройка интеграции с Platform V S-UP#
Для настройки интеграции с Platform V S-UP, необходимо указать в файле конфигурации следующие переменные:
S3_BUCKET- название бакета;S3_URL- URL подключения к S3;S3_REGION- регион, где развернуто объектное хранилище S3;EXPIRY_MINUTES- время жизни подписанной ссылки на файл (в минутах);
В DropApp в секции secrets заполнить следующие параметры:
S3_ACCESS_KEY- ключ доступа;S3_SECRET_KEY- секретный ключ.
Подробное описание и пример заполнения параметров приведено в таблице.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Имя S3-бакета, в котором хранятся артефакты (например, результаты сканирований, отчеты) |
|
|
URL-адрес S3-совместимого хранилища Platform V S-UP для подключения по REST API. Должен включать схему ( |
|
|
Регион размещения S3-хранилища. Используется для корректной аутентификации и маршрутизации запросов |
|
|
Срок действия временной подписанной ссылки (presigned URL) на скачивание или загрузку файла, в минутах |
|
|
Идентификатор ключа доступа (access key ID) для аутентификации в Platform V S-UP. Аналог логина |
|
|
Секретный ключ (secret access key), используемый для подписи запросов к Platform V S-UP. Аналог пароля. Должен храниться в секрете |
|
|
Алгоритм расчета контрольной суммы для проверки целостности передаваемого payload |
|
|
Режим адресации S3 (используется для старых версий S3, где требуется явное указание стиля адресации) |
|
Настройка интеграции с MinIO#
В качестве альтернативного S3 хранилища допустимо использование объектного хранилища MinIO. Для корректной работы с MinIO необходимо учесть следующие моменты:
Параметр
S3_CHECKSUM_PAYLOADдолжен быть установлен в значениеUNSIGNED-PAYLOAD, так как MinIO не поддерживает подписанные контрольные суммы.Параметр
S3_PATH_STYLEдолжен быть установлен в значениеtrue, чтобы использовать классический стиль адресации, который поддерживается MinIO.
Настройки MinIO аналогичны настройкам Platform V S-UP, за исключением указанных выше параметров.
Настройка интеграции с Platform V Corax#
Для настройки интеграции с Platform V Corax, необходимо заполнить параметры в файле values.yaml всех компонентов
пайплайна взаимодействующих с Platform V Corax.
Параметры настройки модуля Orchestrator#
Ниже приведены параметры конфигурации модуля Orchestrator, необходимые для установки безопасного соединения, включая настройки протокола, аутентификации и управления сертификатами.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Список Kafka-брокеров (хост и порт), к которым подключается клиент для инициализации соединения с кластером |
|
|
Протокол аутентификации и шифрования при подключении к Kafka |
|
|
Версия протокола |
|
|
Путь к файлу в хранилище доверенных сертификатов на файловой системе контейнера |
|
|
Пароль для доступа к хранилищу доверенных сертификатов. Используется при загрузке хранилища сертификатов |
|
|
Тип хранилища сертификатов |
|
|
Путь к файлу в хранилище ключей на файловой системе контейнера |
|
|
Пароль для доступа к хранилищу ключей |
|
|
Пароль от приватного ключа внутри хранилища ключей. Может совпадать с |
|
|
Тип хранилища ключей |
|
Параметры настройки модуля Project Store#
Ниже приведены параметры конфигурации модуля Project Store, необходимые для установки защищенного соединения.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Протокол подключения к Kafka. Значение |
|
|
Версия протокола |
|
|
Путь к файлу в хранилище доверенных сертификатов на файловой системе контейнера |
|
|
Пароль для доступа к хранилищу доверенных сертификатов |
|
|
Формат хранилища доверенных сертификатов |
|
|
Путь к файлу в хранилище ключей на файловой системе контейнера |
|
|
Пароль для доступа к хранилищу ключей |
|
|
Пароль от приватного ключа, хранящегося внутри хранилища ключей. Может совпадать с |
|
|
Формат хранилища ключей клиента |
|
Параметры модуля SASTMASTER#
Параметры SAST-адаптера#
Ниже приведены параметры конфигурации SAST-адаптера, отвечающие за:
Подключение к Kafka с использованием SSL;
Настройку уровня логирования;
Опции запуска JVM (параметры производительности и кодировки).
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Протокол подключения к Kafka. Значение |
|
|
Версия протокола |
|
|
Путь к файлу в к хранилище доверенных сертификатов |
|
|
Пароль для доступа к хранилищу доверенных сертификатов |
|
|
Формат хранилища доверенных сертификатов |
|
|
Путь к файлу в хранилище ключей |
|
|
Пароль для доступа к хранилищу ключей |
|
|
Формат хранилища ключей клиента |
|
|
Пароль от приватного ключа внутри хранилища ключей. Может совпадать с |
|
|
Название топика Kafka, в который публикуются задачи SAST-анализа |
|
|
Название топика Kafka, используемого для обновления статуса задач анализа |
|
Параметры инструмента сканирования Gitleaks#
Конфигурация включает настройки подключения, безопасности, групп потребителей, а также параметры логирования и управления временными данными.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Имя пользователя для аутентификации в Kafka. Пустое значение — если аутентификация не требует логина |
|
|
Пароль пользователя Kafka |
|
|
Хост (FQDN) брокера Kafka, к которому подключается клиент |
|
|
Порт брокера Kafka для подключения |
|
|
Определяет, является ли подключение к Kafka обязательным при старте приложения. Если |
|
|
Флаг, указывающий, нужно ли выполнять тестовое подключение к Kafka при старте. Если |
|
|
Механизм аутентификации. |
|
|
Включает использование SSL/TLS для шифрования соединения с Kafka |
|
|
Тип хранилища ключей клиента |
|
|
Путь к файлу сертификата клиента, используемому для аутентификации в Kafka |
|
|
Путь к файлу приватного ключа клиента (не пароль) |
|
|
Тип хранилища доверенных сертификатов |
|
|
Путь к файлу с доверенными сертификатами |
|
|
Пароль для доступа к хранилищу доверенных сертификатов |
|
|
Алгоритм хеширования для SCRAM-аутентификации |
|
|
Имя группы потребителей (consumer group), к которой принадлежит приложение |
|
|
Название топика Kafka, связанного с инструментом анализа |
|
Параметры инструмента сканирования Gosec#
Конфигурация включает параметры подключения, безопасности, групп потребителей и управления доверием.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Имя пользователя для аутентификации в Kafka. Пустое значение — если аутентификация не требует логина. |
|
|
Пароль пользователя Kafka |
|
|
Хост (FQDN) брокера Kafka, к которому подключается клиент |
|
|
Порт брокера Kafka для подключения |
|
|
Определяет, является ли подключение к Kafka обязательным при старте приложения. Если |
|
|
Флаг, указывающий, нужно ли выполнять тестовое подключение к Kafka при старте. Если |
|
|
Механизм аутентификации. |
|
|
Включает использование SSL/TLS для шифрования соединения с Kafka |
|
|
Тип хранилища ключей клиента |
|
|
Путь к файлу сертификата клиента, используемому для аутентификации в Kafka |
|
|
Путь к файлу приватного ключа клиента (не пароль) |
|
|
Тип хранилища доверенных сертификатов |
|
|
Путь к файлу с доверенными сертификатами |
|
|
Пароль для доступа к хранилищу доверенных сертификатов |
|
|
Алгоритм хеширования для SCRAM-аутентификации |
|
|
Имя группы потребителей (consumer group), к которой принадлежит приложение |
|
|
Название топика Kafka, связанного с инструментом анализа |
|
Параметры инструмента сканирования Infer#
Конфигурация включает параметры подключения, настройки безопасности, групп потребителей и топиков.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Имя пользователя для аутентификации в Kafka (используется при SCRAM или SASL). Пустое значение — если аутентификация не требует логина |
|
|
Пароль пользователя Kafka |
|
|
Хост (FQDN) брокера Kafka, к которому подключается клиент |
|
|
Порт брокера Kafka для подключения |
|
|
Определяет, является ли подключение к Kafka обязательным при старте приложения. Если |
|
|
Флаг, указывающий, нужно ли выполнять тестовое подключение к Kafka при старте. Если |
|
|
Механизм аутентификации. |
|
|
Включает использование SSL/TLS для шифрования соединения с Kafka |
|
|
Тип хранилища ключей клиента |
|
|
Путь к файлу сертификата клиента |
|
|
Путь к файлу приватного ключа клиента (не пароль) |
|
|
Тип хранилища доверенных сертификатов |
|
|
Путь к файлу с доверенными сертификатами |
|
|
Пароль для доступа к хранилищу доверенных сертификатов |
|
|
Алгоритм хеширования для SCRAM-аутентификации |
|
|
Имя группы потребителей (consumer group), к которой принадлежит приложение |
|
|
Название топика Kafka, связанного с инструментом анализа |
|
Параметры инструмента сканирования PTAI#
Конфигурация включает настройки подключения, безопасности, групп потребителей и топиков, что обеспечивает над ежное и защищ енное взаимодействие с инфраструктурой.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Имя пользователя для аутентификации в Kafka (используется при SCRAM или SASL). Пустое значение — если аутентификация не требует логина |
|
|
Пароль пользователя Kafka |
|
|
Хост (FQDN) брокера Kafka, к которому подключается клиент |
|
|
Порт брокера Kafka для подключения |
|
|
Определяет, является ли подключение к Kafka обязательным при старте приложения. Если |
|
|
Флаг, указывающий, нужно ли выполнять тестовое подключение к Kafka при старте. Если |
|
|
Механизм аутентификации. |
|
|
Включает использование SSL/TLS для шифрования соединения с Kafka. |
|
|
Тип хранилища ключей клиента |
|
|
Путь к файлу сертификата клиента , используемому для аутентификации в Kafka |
|
|
Путь к файлу приватного ключа клиента (не пароль) |
|
|
Тип хранилища доверенных сертификатов |
|
|
Путь к файлу с доверенными сертификатами . |
|
|
Пароль для доступа к хранилищу доверенных сертификатов |
|
|
Алгоритм хеширования для SCRAM-аутентификации |
|
|
Имя группы потребителей (consumer group), к которой принадлежит приложение |
|
|
Название топика Kafka, связанного с инструментом анализа |
|
Параметры инструмента сканирования Semgrep#
Конфигурация включает настройки подключения, безопасности, групп потребителей и топиков, что обеспечивает над ежное и защищ енное взаимодействие с инфраструктурой.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Имя пользователя для аутентификации в Kafka (используется при SCRAM или SASL). Пустое значение — если аутентификация не требует логина |
|
|
Пароль пользователя Kafka |
|
|
Хост (FQDN) брокера Kafka, к которому подключается клиент |
|
|
Порт брокера Kafka для подключения |
|
|
Определяет, является ли подключение к Kafka обязательным при старте приложения. Если |
|
|
Флаг, указывающий, нужно ли выполнять тестовое подключение к Kafka при старте. Если |
|
|
Механизм аутентификации. |
|
|
Включает использование SSL/TLS для шифрования соединения с Kafka |
|
|
Тип хранилища ключей клиента |
|
|
Путь к файлу сертификата клиента, используемому для аутентификации в Kafka |
|
|
Путь к файлу приватного ключа клиента (не пароль) |
|
|
Тип хранилища доверенных сертификатов |
|
|
Путь к файлу с доверенными сертификатами |
|
|
Пароль для доступа к хранилищу доверенных сертификатов |
|
|
Алгоритм хеширования для SCRAM-аутентификации |
|
|
Имя группы потребителей (consumer group), к которой принадлежит приложение |
|
|
Название топика Kafka, связанного с инструментом анализа |
|
Параметры инструмента сканирования Svace#
Конфигурация включает параметры подключения, безопасности, групп потребителей и топиков, что обеспечивает над ежную и безопасную интеграцию с инфраструктурой.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Имя пользователя для аутентификации в Kafka (используется при SCRAM или SASL). Пустое значение — если аутентификация не требует логина |
|
|
Пароль пользователя Kafka |
|
|
Хост (FQDN) брокера Kafka, к которому подключается клиент |
|
|
Порт брокера Kafka для подключения |
|
|
Определяет, является ли подключение к Kafka обязательным при старте приложения. Если |
|
|
Флаг, указывающий, нужно ли выполнять тестовое подключение к Kafka при старте. Если |
|
|
Механизм аутентификации. |
|
|
Включает использование SSL/TLS для шифрования соединения с Kafka |
|
|
Тип хранилища ключей клиента |
|
|
Путь к файлу сертификата клиента, используемому для аутентификации в Kafka |
|
|
Путь к файлу приватного ключа клиента (не пароль) |
|
|
Тип хранилища доверенных сертификатов |
|
|
Путь к файлу с доверенными сертификатами |
|
|
Пароль для доступа к хранилищу доверенных сертификатов |
|
|
Алгоритм хеширования для SCRAM-аутентификации |
|
|
Имя группы потребителей (consumer group), к которой принадлежит приложение |
|
|
Название топика Kafka, связанного с инструментом анализа |
|
Параметры модуля SCAMASTER#
Параметры SCA-адаптер#
Модуль интегрирован с кластером Platform V Corax и использует защищенное соединение по протоколу SSL/TLS. Аутентификация осуществляется с помощью хранилища ключей и хранилища доверенных сертификатов.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Список брокеров Kafka (хост:порт), к которым подключается клиент для инициализации соединения с кластером |
|
|
Протокол подключения к Kafka |
|
|
Версия протокола TLS, используемая для безопасного соединения |
|
|
Путь к файлу хранилища доверенных сертификатов на файловой системе контейнера |
|
|
Пароль для доступа к хранилищу доверенных сертификатов |
|
|
Формат хранилища доверенных сертификатов |
|
|
Путь к файлу хранилища ключей на файловой системе контейнера |
|
|
Пароль для доступа к хранилищу ключей |
|
|
Пароль от приватного ключа, хранящегося внутри хранилища ключей |
|
|
Формат хранилища ключей |
|
Параметры модуля Dependency track tool adapter#
Модуль настроен на работу с кластером Platform V Corax по защищенному протоколу SSL/TLS с использованием взаимной аутентификации (mTLS). Для аутентификации применяются хранилище ключей и хранилище доверенных сертификатов.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Список брокеров Kafka (хост:порт), к которым подключается клиент для инициализации соединения с кластером |
|
|
Протокол подключения к Kafka |
|
|
Версия протокола TLS, используемая для безопасного соединения |
|
|
Путь к файлу хранилища доверенных сертификатов на файловой системе контейнера |
|
|
Пароль для доступа к хранилищу доверенных сертификатов |
|
|
Формат хранилища доверенных сертификатов |
|
|
Путь к файлу хранилища ключей на файловой системе контейнера |
|
|
Пароль для доступа к хранилищу ключей |
|
|
Пароль от приватного ключа, хранящегося внутри хранилища ключей |
|
|
Формат хранилища ключей |
|
Настройка подключения модуля Дашборд (Microfrontend)#
Подключение модуля Дашборд (Microfrontend) не требует заполнения параметров.
Настройка Platform V ASOC Control Center для работы в едином меню OneWork#
Настройка для работы в едином меню OneWork, выполняется в соответствии с разделом «Внутренние событийные топики Kafka для интеграции новых инструментов» руководства прикладного разработчика документации продукта Platform V Works OneWork.
Для работы в едином меню OneWork, в Platform V ASOC Control Center реализован OneWork-адаптер. Описание OneWork-адаптера приведено в разделе OneWork-адаптер руководства прикладного разработчика ASOC.
Настройка встраивания Microfrontend Platform V ASOC Control Center в OneWork#
Для интеграции UI Личного кабинета ASOC в единое меню OneWork реализована поддержка архитектуры Microfrontend (MFE) на базе Module Federation 2.0. Это позволяет отображать интерфейс ASOC как встроенный компонент в рамках хост-приложения OneWork.
Настройка включает два этапа:
Подготовка и запуск Microfrontend Platform V ASOC Control Center.
Конфигурация хост-приложения OneWork для встраивания Microfrontend Platform V ASOC Control Center
выполняется на стороне OneWork.
Подготовка и запуск Microfrontend Platform V ASOC Control Center#
Microfrontend Platform V ASOC Control Center — это отдельное React-приложение, которое должно быть собрано и размещено
в доступном для OneWork статическом хранилище (например, через ssd-proxy-ws или Platform V SynGX).
Для установки зависимостей и запуска Microfrontend Platform V ASOC Control Center, необходимо выполнить команды:
npm install
npm start
Приложение запускается на
localhost:8080и предоставляет:
UI Личного кабинета ASOC.
Файл
mf-manifest.json— точку входа для загрузки микрофронтенда в OneWork.
Конфигурация взаимодействия с OneWork задается в файле oneWorkSideMenu.ts компонента UI Личного кабинета.
Для конфигурации взаимодействия с OneWork, необходимо задать параметры приведенные в таблице.
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Уникальный ключ инструмента в OneWork. Значение по умолчанию |
|
|
Относительный путь к проекту в UI ASOC. Определяет, какой контекст будет передан при переходе из OneWork в ASOC |
|
Настройка параметров Kafka для OneWork-адаптера#
Для обмена событиями между Platform V ASOC Control Center и OneWork используется интеграция через Kafka. После
получения из документации OneWork адресов Kafka-брокеров, названий топиков (inbound, outbound) и параметров
безопасности (при использовании), необходимо настроить asoc-one-work-adapter в файле values.yaml.
Адаптер использует следующие топики для обмена сообщениями:
project_operation_topic— операции по проектам (из OneWork в ASOC);project_operation_reply_topic— ответы на операции по проектам;user_role_operation_topic— операции по ролям пользователей;user_role_operation_reply_topic— ответы на операции по ролям.
Параметры подключения к Kafka
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Список адресов Kafka-брокеров OneWork |
|
|
Протокол подключения: |
|
|
Версия SSL/TLS протокола |
|
|
Путь к truststore внутри контейнера |
|
|
Тип хранилища доверенных сертификатов |
|
|
Путь к keystore |
|
|
Тип хранилища закрытых ключей |
|
Параметры топиков Kafka
Имя параметра |
Описание параметра |
Пример заполнения |
|---|---|---|
|
Топик для операций по проектам (OneWork → ASOC) |
|
|
Топик для ответов на операции по проектам |
|
|
Топик для операций по ролям пользователей |
|
|
Топик для ответов на операции по ролям |
|
Настройка доступа к базе данных и Kafka (через Secrets)
В values.yaml параметры, требующие повышенной безопасности, задаются через тройки полей:
имя переменной окружения, имя Kubernetes Secret, ключ в секрете.
Группа параметра |
Имя переменной (env) |
Имя Secret |
Ключ в Secret |
|---|---|---|---|
Пароль БД |
|
|
|
Пароль truststore |
|
|
|
Пароль keystore |
|
|
|
Пароль ключа |
|
|
|
Пример конфигурации в values.yaml:
asoc-one-work-adapter:
enabled: true
db_userpass_secret_key: '<DB_PASSWORD>'
db_userpass_secret_name: 'asoc-secret'
kafka_truststore_password_secret_name: 'asoc-secret'
kafka_truststore_password_secret_key: '<kafka-keystore-password>'
kafka_keystore_password_secret_name: 'asoc-secret'
kafka_keystore_password_secret_key: '<kafka-keystore-password>'
kafka_key_password_secret_name: 'asoc-secret'
kafka_key_password_secret_key: '<kafka-keystore-password>'
asoc_one_work_adapter_cm:
stand_type: 'STANDTYPE'
one_work_host: 'http'
db:
driver: org.postgresql.Driver
user: 'user'
server: 'FQDN.DB.host'
port: 5432
postfix: 'asoc_postgres?currentSchema=asoconeworkadapter'
schema: asoconeworkadapter
kafka:
bootstrap_servers: 'FQDN.Kafka.host:port.FQDN.Kafka2.host:port'
protocol: 'SSL'
ssl_protocol: 'TLSv1.3'
truststore_location: '/app/certs/kafka.jks'
truststore_type: 'JKS'
keystore_location: '/app/certs/kafka.jks'
keystore_type: 'JKS'
project_operation_topic: 'onework.project.operations.asoc'
project_operation_reply_topic: 'asoc.project.operations.reply'
user_role_operation_topic: 'onework.user.roles.asoc'
user_role_operation_reply_topic: 'asoc.user.roles.reply'
Необходимо убедиться, что сертификаты доступны в контейнере. Имена топиков и хосты Kafka должны быть согласованы с администратором OneWork. Значения топиков в примере (
TEST.TOPIC4ONEWADAPT) являются заглушками — их необходимо заменить на реальные. Настройки безопасности должны соответствовать политике OneWork.
Конфигурация хост-приложения OneWork для встраивания Microfrontend Platform V ASOC Control Center#
Для встраивания Microfrontend Platform V ASOC Control Center в OneWork необходимо настроить хост-приложение
(например, через ssd-proxy-ws или Platform V SynGX). Для встраивания Microfrontend Platform V ASOC Control
Center в OneWork, необходимо выполнить следующие
шаги:
Определить префикс маршрутизации. Для Platform V ASOC Control Center, необходимо выделить уникальный префикс, например:
/asoc/*→onework.ru/asoc/*.Настроить конфигурацию Microfrontend. Хост-приложение OneWork должно получать два JSON-файла через специальные
location-роуты:Конфигурация инструментов (роут
/api/remote-routes) содержит список Microfrontend, загружаемых по требованию. Пример конфигурации (в Platform V SynGX илиssd-proxy-ws):location = /api/remote-routes { add_header 'Content-Type' 'application/json'; return 200 ' [ { "path": "/asoc/*", "id": "asoc", "name": "ASOC", "options": { "name": "export-app", "url": "/external/asoc/mf-manifest.json" } } ] '; }Пояснение полей:
path— путь в URL, по которому будет доступен ASOC.id— уникальный идентификатор экземпляра.name— отображаемое имя.options.name— ключ, экспортируемый вModule Federation(по умолчаниюexport-app).options.url— путь кmf-manifest.jsonмикрофронтенда.
Конфигурация общих microfrontend (роут
/api/common-mf). Используется для сквозных компонентов (например, боковое меню), но может включать и ASOC, если требуется постоянная загрузка.Пример:
location = /api/common-mf { add_header Content-Type application/json; return 200 ' [ { "name": "asoc", "id": "asoc", "options": { "url": "/external/asoc/mf-manifest.json", "entryPointName": "export-app" }, "htmlContainerId": "root" } ] '; }Дополнительно:
htmlContainerId— ID HTML-элемента, в который будет смонтирован микрофронтенд.
Размещение конфигурации (при использовании
ssd-proxy-ws). Если используетсяssd-proxy-ws, конфигурация добавляется вvalues.yamlсервисаssd-router:ssdProxyWs: customRoutes: - path: /api/remote-routes response: | [ { "path": "/asoc/*", "id": "asoc", "name": "ASOC", "options": { "name": "export-app", "url": "/external/asoc/mf-manifest.json" } } ] - path: /api/common-mf response: | [ { "name": "asoc", "id": "asoc", "options": { "url": "/external/asoc/mf-manifest.json", "entryPointName": "export-app" }, "htmlContainerId": "root" } ]Важно:
Убедитесь, что
mf-manifest.jsonи статические файлы ASOC доступны по пути/external/asoc/.Для локальной разработки может потребоваться настройка проксирования через
rsbuild.config.tsи переменнаяwindow.REACT_APP_BACKEND.
Эта конфигурация обеспечивает корректное отображение ASOC в едином меню OneWork и поддержку динамической загрузки интерфейса как микрофронтенда.
Настройка интеграции с Системой управления задачами#
В программном продукте Platform V ASOC Control Center реализована интеграция с Системой управления задачами, позволяющая создавать задачи на разметку уязвимостей непосредственно из карточки уязвимости.
Для осуществления связи с Системой управления задачами, в Platform V ASOC Control Center реализован Task Tracker-адаптер. Описание TaskTracker-адаптера приведено в разделе TaskTracker-адаптер руководства прикладного разработчика.
Для настройки интеграции с Системой управления задачами, необходимо определить параметры приведенные в таблице.
Имя параметра |
Описание параметра |
Заполненные значения |
|---|---|---|
|
Базовый URL внешнего сервиса управления задачами (TaskTracker) для интеграции через Feign-клиент |
|
|
Ссылка на внешний ресурс для просмотра созданных задач в системе управления задачами (TaskTracker) |
|
|
Базовый URL системы управления задачами Jira для интеграции через Feign-клиент |
|
|
Ссылка на внешний ресурс для просмотра созданных задач в системе управления задачами Jira |
|
|
Базовый URL внутреннего сервиса личного кабинета для интеграции |
|
|
Логин для аутентификации в системе управления задачами при создании задач |
|
|
Пароль для аутентификации в системе управления задачами (значение передается через безопасное хранилище, не указано напрямую) |
|
|
Определяет целевую систему для создания задач |
|
Параметры определяются в файле
application-prom.yml.Пример файле
application-prom.yml
Проверка результата#
В результате выполнения шага все интеграции необходимые для работы Platform V ASOC Control Center должны быть корректно настроены.
Для проверки корректности работы интеграций, необходимо выполнить шаги по проверке работоспособности описанные в разделе Чек-лист проверки корректности работы.
Инициализация справочников и начальных данных (обязательный)#
После настройки всех интеграций и перед началом развертывания необходимо инициализировать базовые справочники и начальные данные, необходимые для корректной работы Platform V ASOC Control Center.
Необходимые начальные данные#
В систему должны быть загружены следующие сущности:
тенант по умолчанию (
key);проект
ASOC;точка интеграции (
point-key1);артефакты разработки (
build,code,artefact,check-in);методы анализа (
SAST,SCA);инструменты анализа (
ptai,svace,dependency-track) и их конфигурации.
Выполнение инициализации#
Перед выполнением скрипта инициализации справочников и начальных данных необходимо убедиться, что:
Сервисы установлены и запущены:
Backend Личного кабинета.
Project Store.
и другие компоненты, требующие инициализации БД.
Таблицы созданы в схеме БД:
Сервисы автоматически создают структуру БД при первом запуске.
Поды перешли в статус
Running, а логи не содержат ошибок миграций.
Подключение к правильной схеме:
Скрипт должен выполняться в схеме Личного кабинета.
Перед запуском установите нужную схему. Процесс создания схем подробно описан в разделе Подготовка окружения
Выполните скрипты в базе данных asoc_postgres и схеме asocpersonaloffice под пользователем asoc_user:
Создание тенанта.
Для добавления тенанта, необходимо выполнить переход в схему при помощи команды
SET SEARCH_PATH = asocpersonaloffice.
do
language plpgsql
$$
declare
tenantKey varchar := 'key'; /* заменить на нужное значение */
tenantName varchar := 'MYCOMPANY Tenant'; /* заменить на нужное значение */
tenantDesc varchar := 'Тенант MYCOMPANY'; /* заменить на нужное значение */
tenantId UUID := gen_random_uuid();
begin
INSERT INTO asocpersonaloffice.tenant
(id, tenant_key, tenant_name, description, owner_login, user_name)
VALUES(tenantId, tenantKey, tenantName, tenantDesc, NULL, NULL);
end;
$$;
Создание проекта.
do language plpgsql $$ declare tenantKey varchar := 'key'; /* заменить на нужное значение */ projectKey varchar := 'ASOC'; /* заменить на нужное значение */ projectName varchar := 'ASOC Project'; /* заменить на нужное значение */ projectDesc varchar := 'Проект ASOC'; /* заменить на нужное значение */ projectId UUID := gen_random_uuid(); begin INSERT INTO project(id, "key", "name", description, tenant_id) select projectId, projectKey, projectName, projectDesc, t.id from tenant t where t.tenant_key = tenantKey; INSERT INTO asocpersonaloffice.product_project_info (id, project_code, product_code, releases, "owner") VALUES(productInfoId, projectKey, 'cap', '{release 1.0.0 , release 2.0.0}', 'grin.a.m'); end; $$;
Важно:
Скрипт должен выполняться один раз при первоначальной установке.
Убедитесь, что расширение
pgcryptoактивировано:CREATE EXTENSION IF NOT EXISTS pgcrypto;
Дополнительная настройка точки встраивания для внешних проверок (опционально)#
Для поддержки запуска SAST-сканирований по архиву исходных текстов реализовано создания новой точки встраивания
external-point, с возможностью определения необходимых инструментов сканирования.
Для настройки новой точки встраивания необходимо дополнительно настроить точку встраивания с ограниченным набором
доступных инструментов сканирования.
Доступна дополнительная настройка сканирования SAST с применением определенного сочетания инструментов сканирования и языков:
Инструменты сканирования -
infer,Gosec,semgrep,Gitleaks,PTAI,Svace;Языки -
go,csharp,dart,ruby,python,java,kotlin,javascript,typescript,hcl,c,php,generic,yaml,elixir,shell.
Настройка точки встраивания#
При необходимости дополнительной настройки сначала создается новая точка встраивания external-point с отдельной
конфигурацией инструментов сканирования и языков.
Если для новой точки интеграции требуется отдельный проект, его необходимо создать — инструкции приведены в разделе Выполнение инициализации.
Пример настройки точки встраивания external-point. Для настройки необходимо выполнить скрипт:
do
language plpgsql
$$
declare
pointExtKey varchar := 'external-point';
artefactNameBuild varchar := 'build'; возможные значения: 'build', 'merge_request', 'release' и др.
methodSastName varchar := 'SAST'; Метод анализа — статический анализ кода
instrumentAsocExtKey varchar := 'asoc-external'; Код инструмента, используемого для внешних проверок
r RECORD; Переменные для итераций по записям
r1 RECORD; Переменные для итераций по записям
v RECORD; Переменные для итераций по записям
begin
INSERT INTO point(id, point_key, description)
VALUES(gen_random_uuid(), pointExtKey, 'Внешняя проверка')
ON CONFLICT(point_key) DO NOTHING;
INSERT INTO instrument (id, code, "name", description)
VALUES(gen_random_uuid(), instrumentAsocExtKey, 'ASOC External', 'Инструмент внешних сканирований ASOC')
ON CONFLICT(code) DO NOTHING;
for r1 in
select
(select a.id from development_artifact a where a."name" = artefactNameBuild ) as artId,
(select m.id from instrument_method m where m."name" = methodSastName ) as methodId,
(select ARRAY_AGG(i.id) from instrument i where i.code in (instrumentAsocExtKey)) as instIds
loop
declare
ammId UUID := gen_random_uuid();
begin
select m.id into ammId
from artifact_method_matrix m
where m.artifact_id = r1.artId and m.method_id = r1.methodId;
for r in select unnest(r1.instIds) as instId loop
declare
configId UUID := gen_random_uuid();
begin
INSERT INTO instrument_configuration (id, instrument_id, method_id)
VALUES(configId, r.instId, r1.methodId);
for v in
select p.id as point_id
from point p
where p.point_key = pointExtKey
loop
INSERT INTO instrument_point_matrix(
id,
point_id,
artifact_method_matrix_id,
instrument_configuration_id
)
VALUES(
gen_random_uuid(),
v.point_id, ammId,
configId
);
end loop;
end;
end loop;
end;
end loop;
end;
$$;
После выполнения настройки точки встраивания доступна точка встраивания
external-point.
Обновление конфигурации SAST Task Manager#
Для обновления конфигурации SAST Task Manager необходимо выполнить следующие действия:
Добавить в ConfigMap
asoc-cm-sast-task-manager-config-2секцию из файлаasoc-ext-taskman-config.yml, содержащую настройки запуска для инструментаasoc-external.Пример заполнения файла
asoc-ext-taskman-config.yml:decompose: instruments: - name: asoc-external enabled: true tools: - name: infer enabled: true languages: ["java"] - name: semgrep enabled: true languages: ["go","csharp","dart","ruby","python","java","kotlin","javascript","typescript","hcl","c","php","generic","yaml","elixir","shell"]В качестве примера используется вариант настройки с использованием инструментов анализа
infer,semgrep. После внесения изменений выполните перезапуск подаsast-task-managerкомандой:kubectl rollout restart deployment/sast-task-managerПроверить конфигурацию. После выполнения всех шагов можно отправить тестовый запрос на запуск сканирования:
POST {orchestrator-URL}/v1/scanning/tenant/key/project/ASOC Content-Type: application/jsonДанный JSON-запрос инициирует процесс внешнего SAST-сканирования через точку встраивания
external-point:{ "version": "test-ext-1", // Уникальный идентификатор версии приложения или сборки для ассоциации результатов сканирования "pointKey": "external-point", // Ключ точки встраивания, через которую происходит интеграция (должен соответствовать настроенной external-point) "objects": [ { "projectStoreBlobObjId": "7xx67xx1-5xxc-4xxd-axxb-4xx77xx08xxb", // Внутренний ID объекта в хранилище проекта (например, ID коммита или артефакта) "scanTypeObject": "branch", // Тип сканируемого объекта: branch, tag, commit и т.п. "metaData": { "uri": "ssh://git@works.ru:7998/ASOC/asoc-personal-office", // SSH-адрес репозитория, который будет клонирован для анализа "branch": "dev", // Имя ветки, подлежащей сканированию "hashCommit": "76xx7cxx-5xxc-4xxd-axxb-4exx7axx8exx" // Хэш коммита, на который делается ссылка (может использоваться для точного воспроизведения) } } ] }Ожидаемый результат:
Запрос принимается с кодом
202 Accepted.В логах
sast-task-managerвиден запускsemgrep.Результаты появляются в интерфейсе Личного кабинета.
Развертывание Platform V ASOC Control Center (обязательный)#
В рамках шага, необходимо выполнить процедуру развертывания компонента посредством автоматизированной установки компонента с использованием программного продукта Platform V DevOps Tools (DOT).
В результате настройки и подготовки Platform V DevOps Tools (CDJE) описанных в разделе
Подготовка окружения, в Jenkins появится две jenkins job - Service и Deploy:
job
Service- загружает стандартные конфигурации common из дистрибутива Platform V DevOps Tools в репозитории Bitbucket и обновляет версии конфигураций.job
Deploy- устанавливает приложение в кластер Platform V DropApp.
Последовательность действий#
После настройки конфигурационных файлов subsystems.json, multiClusters.json и environment.json необходимо
выполнить шаги для установки приложения в кластер:
Выполнить миграцию параметров в job. Для этого нужно запустить job без параметров.
Выполнить миграцию стендозависимых параметров из артефакта конфигурации компонента в репозиторий с конфигурациями функциональных подсистем. Для этого нужно выполнить job с опцией
MIGRATION_FP_CONF.Выполнить настройку стендозависимых параметров.
Выполнить развертывание приложения в Platform V DropApp, запустив
job развертыванияс параметромOPENSHIFT_DEPLOY.
Пример файла values.yaml#
Пример конфигурационного файла values.yaml, используемого при установке Platform V ASOC Control Center через Helm.
Файл содержит настройки всех компонентов системы:
баз данных;
Kafka;
Ingress;
секретов;
инструментов анализа.
Примечание:
Все значения должны быть адаптированы под целевое окружение.
Секреты (пароли, ключи, токены) не должны указываться напрямую — рекомендуется использовать Kubernetes Secrets или HashiCorp Vault.
Полный перечень параметров определяемых в файле values.yaml приведен в
Справочнике конфигурационных файлов и параметров.
Проверка результата#
В результате выполнения шага Platform V ASOC Control Center должен быть успешно развернут в кластере Platform V DropApp и находиться в работоспособном состоянии.