Appearance
Guard
DLP-сервис Unishift. Маскирует персональные данные и секреты перед отправкой во внешние LLM, сканирует partner/export границы и пишет инциденты для ИБ.
Порты
- HTTP: 8110 (Docker host:
18110, envGUARD_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.
Детекция
- Rules engine: email, телефон, ИНН, карты (Luhn), секреты, custom wordlist.
- Опциональный локальный NER sidecar (
guard-ner) — PERSON / ORG / LOC / ADDRESS. Текст не уходит в облако. По умолчанию выключен (GUARD_NER_ENABLED=false). - Действие по политике: mask (default), audit_only, block + confirm.
Fail-open: ошибка scan / недоступный NER не ломает LLM-вызов в AI Router. Flow Manager AI/HTTP egress (scanEgress) — fail-closed: ошибка Guard останавливает ноду.
События
guard.incident.createdguard.incident.escalated(critical / repeat offender)guard.policy.violationai.chat.dlp.warning→ nats-bridge namespaceai
Env
| Переменная | По умолчанию | Назначение |
|---|---|---|
ENCRYPTION_KEY | — | Шифрование token maps |
GUARD_NER_ENABLED | false | Вызывать sidecar |
GUARD_NER_URL | http://localhost:8113 | Base URL sidecar (POST /ner) |
GUARD_NER_MIN_TEXT | 80 | Минимальная длина текста для NER |
GUARD_NER_TIMEOUT | 2s | HTTP timeout к sidecar |
Включение: поднять sidecar, в env Guard выставить GUARD_NER_ENABLED=true и GUARD_NER_URL=http://<host>:8111.