Skip to content
ВозможностиДокументацияЦеныПартнёрыPlaygroundFAQ

Reference Architecture

Zero-Trust MCP Deployment — production-архитектура FlowLink, выровненная по OWASP GenAI MCP Security Guide и enterprise best practices.

~12 мин чтения

Обзор

FlowLink поддерживает несколько паттернов развёртывания — от одной машины для разработки до распределённой multi-region инсталляции с высоким доступом. Выберите архитектуру, соответствующую размеру вашей организации и требованиям к отказоустойчивости.

Single Host

Все компоненты на одной машине. Для разработки и тестирования.

1-2 агента

Small Team

Выделенный relay-сервер + несколько agent-хостов. PostgreSQL, опционально Redis.

3-10 агентов

Enterprise

HA relay-кластер, load balancer, PostgreSQL HA, Redis cluster, отдельные gateway-ноды.

100+ агентов

Single Host

All-in-one развёртывание: Relay, Gateway и Agent на одной машине. Идеально для локальной разработки, CI/CD pipeline и быстрого прототипирования.

Компоненты

  • FlowLink Relay (port 9080 / 9081)
  • FlowLink Gateway (port 8080)
  • FlowLink Agent (ServerGuard)
  • SQLite (embedded, no external DB)
text
1┌──────────────────────────────────────────────────┐
2│ Single Host │
3│ │
4│ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
5│ │ Gateway │ │ Relay │ │ Agent │ │
6│ │ :8080 │──│ :9080 │──│ (ServerGuard)│ │
7│ └──────────┘ └────┬─────┘ └──────────────┘ │
8│ │ │
9│ ┌──────▼──────┐ │
10│ │ SQLite │ │
11│ │ (embedded) │ │
12│ └─────────────┘ │
13└──────────────────────────────────────────────────┘
bash
1# Быстрый старт — single host
2curl -fsSL https://flowlink.dev/install.sh | bash
3flowlink-relay init --mode single
4flowlink-relay up

Small Team (3-10 агентов)

Выделенный relay-сервер с PostgreSQL для персистентного хранения политик и аудита. Агенты развёрнуты на отдельных хостах. Redis используется опционально для кэширования и pub/sub.

text
1 ┌─────────────────────────┐
2 │ Relay Server │
3 │ ┌──────────┐ ┌────────┐ │
4 │ │ Relay │ │Gateway │ │
5 │ │ :9080 │ │ :8080 │ │
6 │ └────┬─────┘ └────────┘ │
7 └───────┼───────────────────┘
8
9 ┌─────────────┼─────────────┐
10 │ │ │
11 ┌──────▼────┐ ┌─────▼─────┐ ┌────▼─────┐
12 │ Agent #1 │ │ Agent #2 │ │ Agent #3 │
13 │ (Host A) │ │ (Host B) │ │ (Host C) │
14 └───────────┘ └───────────┘ └──────────┘
15
16 ┌──────┴──────┐
17 │ PostgreSQL │
18 │ :5432 │
19 │ (primary) │
20 ├─────────────┤
21 │ Redis │
22 │ :6379 │
23 │ (optional) │
24 └─────────────┘
bash
1# Relay server
2flowlink-relay init --mode team --db postgres://user:pass@db:5432/flowlink
3flowlink-relay up
4
5# На каждом agent-хосте
6flowlink-agent install --relay wss://relay.example.com:9080 --token <AGENT_TOKEN>

Enterprise (100+ агентов)

Высокодоступная архитектура с relay-кластером, балансировщиком нагрузки, PostgreSQL HA (primary + replicas), Redis cluster и отдельными gateway-нодами. Подходит для крупных организаций с тысячами агентов.

text
1 ┌─────────────────┐
2 │ Load Balancer │
3 │ (nginx/caddy) │
4 └────────┬────────┘
5
6 ┌──────────────┼──────────────┐
7 │ │ │
8 ┌──────▼──────┐┌─────▼──────┐┌──────▼──────┐
9 │ FlowLink ││ FlowLink ││ FlowLink │
10 │ Relay #1 ││ Relay #2 ││ Relay #3 │
11 │ (active) ││(active) ││ (standby) │
12 └──────┬──────┘└─────┬──────┘└──────┬──────┘
13 │ │ │
14 └──────────────┼──────────────┘
15
16 ┌──────────────▼──────────────┐
17 │ PostgreSQL (Primary) │
18 │ + Read Replicas │
19 ├──────────────────────────────┤
20 │ Redis Cluster │
21 │ (3+ nodes) │
22 └──────────────┬──────────────┘
23
24 ┌───────────┬───────────┼───────────┬───────────┐
25 │ │ │ │ │
26 ┌──────▼────┐┌─────▼─────┐┌───▼────┐┌─────▼────┐┌─────▼────┐
27 │ Vault ││ SIEM ││Gateway ││ S3 ││ SMTP │
28 │ (Secrets) ││(Splunk/ ││ :8080 ││(Backups) ││(Alerts) │
29 │ ││ QRadar) ││ ││ ││ │
30 └───────────┘└───────────┘└────────┘└──────────┘└──────────┘
31
32 ┌───────────┬───────────┬───────────┐
33 │ │ │ │
34 ┌──────▼────┐┌─────▼─────┐┌───▼────┐ ┌───▼────┐
35 │ Agent ││ Agent ││ Agent │ │ Agent │
36 │ Pool A ││ Pool B ││ Pool C │ │ ... │
37 │ (50+) ││ (50+) ││ (50+) │ │ │
38 └───────────┘└───────────┘└────────┘ └────────┘

Ключевые принципы

  • Минимум 3 relay-ноды для кворума
  • PostgreSQL: primary + 2 read replicas
  • Redis Cluster mode с 3+ master-ноды
  • Health checks через load balancer (10s interval)
  • Auto-failover для всех критичных компонентов

Monitoring & Alerts

  • Prometheus metrics endpoint (:9090/metrics)
  • Grafana dashboard для relay-кластера
  • Alertmanager → Slack/Telegram/PagerDuty
  • SIEM интеграция (Splunk, QRadar, Elastic)
  • Uptime SLA: 99.95% (monthly)

Multi-Region

Relay-кластеры в нескольких регионах с geo-routing, локальным принудительным применением политик и централизованным аудитом. Обеспечивает low-latency для глобально распределённых агентов и соответствие локальным требованиям к хранению данных.

text
1┌──────────────────────────────────────────────────────────┐
2│ Global DNS (Geo-routing) │
3│ EU → eu.relay.example.com │
4│ US → us.relay.example.com │
5│ APAC → ap.relay.example.com │
6└───────┬──────────────────┬──────────────────┬────────────┘
7 │ │ │
8┌───────▼────────┐ ┌──────▼────────┐ ┌───────▼───────┐
9│ EU Region │ │ US Region │ │ APAC Region │
10│ ┌────────────┐ │ │ ┌───────────┐ │ │ ┌───────────┐ │
11│ │Relay HA ×2 │ │ │ │Relay HA │ │ │ │Relay HA │ │
12│ │PostgreSQL │ │ │ │×2 │ │ │ │×2 │ │
13│ │ (primary) │ │ │ │PostgreSQL│ │ │ │PostgreSQL│ │
14│ │Redis │ │ │ │(replica) │ │ │ │(replica) │ │
15│ │ (sentinel)│ │ │ │Redis │ │ │ │Redis │ │
16│ └────────────┘ │ │ └───────────┘ │ │ └───────────┘ │
17└───────┬────────┘ └──────┬────────┘ └───────┬───────┘
18 │ │ │
19 Agents EU Agents US Agents APAC
20 │ │ │
21 └──────────────┬───┴──────────────────┘
22
23 ┌────────▼────────┐
24 │ Central Audit │
25 │ (aggregated) │
26 └─────────────────┘
Geo-RoutingDNS-based routing с latency-based health checks. Агенты автоматически подключаются к ближайшему relay-кластеру.
Локальные политикиКаждый регион хранит копию политик. Relay кэширует политики локально и работает автономно при потере связи с центральным сервером.
Централизованный аудитAudit logs реплицируются в центральное хранилище. Поддерживается async-репликация для минимизации влияния на latency.
Data ResidencyВсе данные агентов (логи, политики, секреты) хранятся в рамках региона. Кросс-региональная репликация настраивается выборочно.

Air-Gapped

Полностью offline развёртывание без внешних зависимостей. Используется в средах с повышенными требованиями к безопасности: government, military, finance. Все пакеты доставляются через локальный registry.

Требования

  • Локальный Docker registry (Harbor/Artifactory)
  • Offline-пакеты FlowLink (.tar.gz)
  • PostgreSQL бинарники в local mirror
  • Self-signed CA для TLS между компонентами
  • Пакеты обновлений через USB/shuttle

Ограничения

  • Нет автоматического обновления signature DB
  • Alerts только через локальный SMTP/syslog
  • Approval queue — локальный веб-интерфейс
  • Нет интеграции с cloud SIEM
  • Обновления: ручная загрузка + verify signature
bash
1# Air-gapped: подготовка пакетов (на машине с интернетом)
2flowlink-relay package download --output ./flowlink-offline.tar.gz --include-all
3
4# Air-gapped: установка (на изолированной машине)
5scp flowlink-offline.tar.gz airgapped-host:/tmp/
6ssh airgapped-host
7 tar xzf /tmp/flowlink-offline.tar.gz -C /opt/flowlink
8 flowlink-relay init --mode air-gapped --registry /opt/flowlink/registry
9 flowlink-relay up

Требования к оборудованию

КомпонентМин. RAMМин. CPUРек. RAMРек. CPUХранилище
FlowLink Relay512 MB1 core4 GB4 cores20 GB SSD
FlowLink Gateway256 MB1 core2 GB2 cores10 GB SSD
Agent (ServerGuard)128 MB0.5 core512 MB1 core2 GB
PostgreSQL1 GB1 core16 GB4 cores100 GB SSD (min)
Redis256 MB0.5 core8 GB2 cores10 GB SSD
nginx / Caddy128 MB0.5 core1 GB2 cores5 GB
Vault (HashiCorp)256 MB1 core2 GB2 cores20 GB SSD

Сетевые требования

ПортПротоколКомпонентОписаниеНаправление
8080HTTP/SGatewayGateway HTTP APIInbound
9090WSSRelayRelay WebSocket (TLS)Inbound
5432TCPPostgreSQLБаза данныхInternal
6379TCPRedisКэш / pub-subInternal
8200HTTP/SVaultSecret managementInternal
9091HTTPRelayPrometheus metricsInternal

Порты 5432, 6379 и 8200 НЕ должны быть доступны извне. Используйте firewall rules (iptables/nftables/cloud security groups) для ограничения доступа только к internal-подсети.

Конфигурация TLS

Все соединения между компонентами FlowLink защищены TLS 1.3. Ниже приведены варианты настройки сертификатов для разных сценариев развёртывания.

Let's Encrypt

Автоматические сертификаты для публичных развёртываний. FlowLink поддерживает ACME-челлендж (HTTP-01 и DNS-01) через встроенный cert-manager.

yaml
1# flowlink.yaml
2tls:
3 provider: letsencrypt
4 email: admin@example.com
5 domains:
6 - relay.example.com
7 - gateway.example.com
8 challenge: http-01

Custom CA

Корпоративный CA для internal-развёртываний. Сертификаты генерируются и подписываются вашим PKI.

yaml
1# flowlink.yaml
2tls:
3 provider: custom
4 ca_cert: /etc/ssl/ca.pem
5 server_cert: /etc/ssl/relay.pem
6 server_key: /etc/ssl/relay-key.pem
7 client_ca: /etc/ssl/client-ca.pem # mTLS
8 mtls: true

Self-signed (dev)

Автогенерация self-signed сертификатов при первом запуске. Только для разработки.

bash
1flowlink-relay init --tls self-signed
2# Сертификаты сохраняются в ~/.flowlink/tls/

База данных

PostgreSQL — настройка

FlowLink использует PostgreSQL 15+ как основное хранилище. Для production рекомендуется использовать managed-сервис (Supabase, RDS, CloudSQL) или self-hosted с Patroni.

sql
1-- Минимальная настройка postgresql.conf
2shared_preload_libraries = 'pg_stat_statements'
3max_connections = 200
4shared_buffers = '4GB' -- 25% of RAM
5effective_cache_size = '12GB' -- 75% of RAM
6wal_level = replica
7hot_standby = on

Connection Pooling

Используйте PgBouncer или встроенный Supavisor (Supabase) для управления пулом соединений. Рекомендуемые настройки:

ini
1# pgbouncer.ini
2[databases]
3flowlink = host=db.internal port=5432 dbname=flowlink
4
5[pgbouncer]
6pool_mode = transaction
7max_client_conn = 1000
8default_pool_size = 50
9reserve_pool_size = 10
10reserve_pool_timeout = 3

Стратегия бэкапов

Комбинированный подход: PITR (Point-in-Time Recovery) + ежедневные full backup-ы + ежечасные WAL-архивы.

bash
1# Full backup (ежедневно, cron)
2pg_dump -Fc flowlink | gzip > /backup/flowlink-$(date +%Y%m%d).dump.gz
3
4# PITR restore
5pg_restore -d flowlink_restored /backup/flowlink-20260115.dump.gz
6
7# Автоматические бэкапы в S3 (рекомендуется)
8flowlink-relay backup configure --schedule "0 2 * * *" --target s3://my-bucket/flowlink/

Модель угроз MCP

FlowLink покрывает ключевые threat vectors для AI-агентов:

УгрозаРискМитигация FlowLink
Tool PoisoningMalicious MCP server returns harmful tool definitionsShield проверяет все tool calls; policy engine валидирует имена, args и targets по allowlists
Prompt Injection через ToolTool output содержит инструкции, манипулирующие агентомOutput filtering + санитизация; approval queue для чувствительных операций
Over-Privileged ToolsАгент имеет доступ к tools, которые не нужны (prod DB из dev)Per-agent least-privilege политики; tool scoping по environment и role
Data ExfiltrationАгент читает чувствительные данные и отправляет наружуAnomaly detection (scp, rsync, curl); blast radius analysis; secret injection предотвращает утечку credentials
Credential TheftАгент получает доступ к секретам в memory/logsZero-trust secret injection — credentials никогда не в контексте агента; runtime-only env vars
Unauthorized AccessСкомпрометированный агент обращается к ресурсам за пределами scopePer-org encryption keys; RBAC; approval queue для cross-service операций
Supply Chain AttackСкомпрометированный MCP server в tool chainTool allowlisting; command pattern analysis; audit trail для каждого tool invocation

OWASP MCP Security Checklist

Маппинг фич FlowLink на рекомендации OWASP GenAI MCP Security:

Рекомендация OWASPФича FlowLinkКонфигурация
Валидировать все tool inputsShield pattern matching + risk scoringPolicies → Rules → Patterns
Least-privilege доступPer-agent политики с tool allowlistsПолитики → Agent scoping
Human oversight для критичных действийApproval queue (Telegram / Web / API)Policy action = "approve"
Логировать все tool invocationsAudit log + Command historyВсегда включено
Сканировать tool responses на sensitive dataOutput filtering + DLP patternsShield → Output rules
Безопасное управление credentialsZero-trust secret injectionSecrets → Injection mappings
Мониторинг аномального поведенияAnomaly detection (off-hours, lateral movement, privilege escalation)Forensics → Timeline
Rate limitingPer-agent и per-tool rate limitsКонфигурация → rate_limits
Шифрование данныхTLS everywhere, per-org X25519 keys, AES-256-GCMAuto (TLS), Zero-Trust API
Incident response planForensic timeline + snapshots + compliance reportsForensics dashboard

Hardening Guide

Relay

  • Запуск от non-root с минимальными capabilities
  • TLS с сильными cipher suites (ECDHE-ECDSA-AES256-GCM-SHA384)
  • cors_allowed_origins — конкретные домены, не * в production
  • rate_limits для всех agent IDs
  • systemd watchdog

Database

  • RLS (Row Level Security) на tenant-scoped таблицах
  • service_role только для internal ops, anon для public
  • Connection pooling (PgBouncer / Supabase)
  • PITR + ежедневные бэкапы
  • Шифрование at rest (LUKS)

Агенты

  • Каждый агент — уникальный API key
  • Минимальный набор политик: deny all → add allows
  • Heartbeat для real-time мониторинга
  • Auto-update + signature verification
  • ServerGuard (--features gitops) — eBPF мониторинг
Edit this page