Scan Orchestrator¶
Оркестратор сканирований. Координирует выполнение атак: принимает запрос на сканирование, создаёт задания для атакующих сервисов через NATS, агрегирует прогресс.
Назначение¶
Центральный координатор платформы. Принимает запросы от ui-gateway, проверяет лицензию, формирует план атак, публикует задания в NATS stream ATTACKS, отслеживает выполнение через stream SCANS.
Зависимости¶
Входящие¶
| Сервис | Протокол | Назначение |
|---|---|---|
ui-gateway |
HTTP | запуск/остановка/мониторинг сканирований |
Исходящие¶
| Сервис | Назначение |
|---|---|
postgres |
хранение состояния сканирований (схема scan_orchestrator) |
redis (DB 1) |
очереди и distributed locks |
nats |
публикация ATTACKS, чтение SCANS и RESULTS |
model-mgmt |
получение метаданных модели |
scan-profile |
получение параметров атаки |
results |
чтение результатов |
jailbreak-api |
проверка доступности |
asr-api |
проверка доступности |
cv-api |
проверка доступности |
license-service |
проверка лицензии перед сканированием |
Values¶
| Параметр | По умолчанию | Обязателен | Описание |
|---|---|---|---|
image.name |
— | да | registry.appsec.global/appsecgenai-release/orchestrator |
image.tag |
— | да | Версия образа |
imagePullSecrets[0].name |
— | да | imagePullSecret |
secretEnv.DATABASE_URL |
— | да | PostgreSQL connection string |
env.AUTH_ENABLED |
"true" |
нет | |
env.OTEL_SDK_DISABLED |
— | нет | "true" если нет otel-collector |
global.url.redisUrl |
{svc: redis, port: 6379, scheme: redis, path: /1} |
нет | Redis DB 1 |
global.url.natsUrl |
{svc: nats, port: 4222, scheme: nats} |
нет | |
global.url.modelManagementUrl |
{svc: model-mgmt, port: 8000} |
нет | |
global.url.scanProfilesUrl |
{svc: scan-profile, port: 8000} |
нет | Обратите внимание: scanProfilesUrl (с s) |
global.url.resultsServiceUrl |
{svc: results, port: 8002} |
нет | Порт 8002 (не 8000) |
global.url.jailbreakServiceUrl |
{svc: jailbreak-api, port: 8000} |
нет | |
global.url.asrServiceUrl |
{svc: asr-api, port: 8000} |
нет | |
global.url.cvServiceUrl |
{svc: cv-api, port: 8000} |
нет | |
global.url.licenseServiceUrl |
{svc: license-service, port: 8000} |
нет |
resultsServiceUrl: порт 8002
results-сервис слушает на порту 8002. При указании resultsServiceUrl используйте port: 8002, иначе orchestrator не сможет читать результаты.
Пример values.yaml¶
# values-orchestrator.yaml
image:
name: registry.appsec.global/appsecgenai-release/orchestrator
tag: "<VERSION>"
imagePullSecrets:
- name: harbor-cr
secretEnv:
DATABASE_URL: "postgresql+asyncpg://genai_admin:<password>@postgres:5432/genai_db"
env:
ENVIRONMENT: "production"
AUTH_ENABLED: "true"
OTEL_SDK_DISABLED: "true"
global:
url:
redisUrl: { svc: redis, port: 6379, scheme: redis, path: /1 }
natsUrl: { svc: nats, port: 4222, scheme: nats }
modelManagementUrl: { svc: model-mgmt, port: 8000 }
scanProfilesUrl: { svc: scan-profile, port: 8000 }
resultsServiceUrl: { svc: results, port: 8002 }
jailbreakServiceUrl: { svc: jailbreak-api, port: 8000 }
asrServiceUrl: { svc: asr-api, port: 8000 }
cvServiceUrl: { svc: cv-api, port: 8000 }
licenseServiceUrl: { svc: license-service, port: 8000 }