Skip to content

Guard ​

DLP-сервис Unishift. Маскирует персональные данные и секреты перед отправкой во внешние LLM, сканирует partner/export границы и пишет инциденты для ИБ.

Порты ​

  • HTTP: 8110 (Docker host: 18110, env GUARD_PORT)
  • БД: guard_db

Опциональный NER sidecar (guard-ner): порт 8111 (host 18111). В prod compose не входит — при необходимости поднимается отдельно (образ из services/guard/ner, или devops/dev сервис guard-ner).

API ​

S2S (Authorization: Service <token>):

МетодПутьНазначение
POST/api/v1/scanДетект + mask / audit / block
POST/api/v1/demaskВосстановить токены по token_map_id
POST/api/v1/confirmПодтвердить blocked scan

Эндпоинты scan/demask/confirm — только RequireService. Bearer JWT пользователя отклоняется (INVALID_SERVICE_TOKEN). Клиент unishift-client-go для Guard всегда шлёт Authorization: Service … (reqService), даже если на том же клиенте задан user JWT (например, test-run пайплайна).

Admin (JWT + секция monitoring_security): /api/v1/admin/{policies,patterns,incidents}.

Scan endpoints не публичны снаружи контура — gateway проксирует только admin UI.

Детекция ​

  1. Rules engine: email, телефон, ИНН, карты (Luhn), секреты, custom wordlist.
  2. Опциональный локальный NER sidecar (guard-ner) — PERSON / ORG / LOC / ADDRESS. Текст не уходит в облако. По умолчанию выключен (GUARD_NER_ENABLED=false).
  3. Действие по политике: mask (default), audit_only, block + confirm.

Fail-open: ошибка scan / недоступный NER не ломает LLM-вызов в AI Router. Flow Manager AI/HTTP egress (scanEgress) — fail-closed: ошибка Guard останавливает ноду.

События ​

  • guard.incident.created
  • guard.incident.escalated (critical / repeat offender)
  • guard.policy.violation
  • ai.chat.dlp.warning → nats-bridge namespace ai

Env ​

ПеременнаяПо умолчаниюНазначение
ENCRYPTION_KEY—Шифрование token maps
GUARD_NER_ENABLEDfalseВызывать sidecar
GUARD_NER_URLhttp://localhost:8113Base URL sidecar (POST /ner)
GUARD_NER_MIN_TEXT80Минимальная длина текста для NER
GUARD_NER_TIMEOUT2sHTTP timeout к sidecar

Включение: поднять sidecar, в env Guard выставить GUARD_NER_ENABLED=true и GUARD_NER_URL=http://<host>:8111.