Qué protege
Las mismas reglas y las mismas políticas para todos los servicios que usan una base, sin una librería por lenguaje:
- VERICTO-001, 042, 010 y 011: DELETE y UPDATE sin WHERE, DROP TABLE y TRUNCATE, venga del servicio que venga.
- VERICTO-015 a 019: DDL riesgoso en runtime, como
ALTER TABLE … DROP COLUMNo desactivar triggers y RLS. - VERICTO-087 (Team y Enterprise): una allowlist de tablas y columnas por identidad. En el proxy, la identidad es el usuario de base de datos de la sesión: da a cada servicio su propio usuario y su propia allowlist.
- VERICTO-085 (Team y Enterprise): columnas sensibles bloqueadas o enmascaradas en el resultado, para todos los servicios a la vez.
Latencia y disponibilidad
Con un sidecar, el salto entre el servicio y el proxy es localhost dentro del pod. Con un proxy compartido, es un salto más dentro del clúster. En los dos casos, el parsing y la evaluación ocurren en el proceso del proxy, sin llamadas de red en la ruta crítica.
Para el parsing y la evaluación de reglas, el objetivo de diseño es p99 < 2 ms. Es un objetivo, no una medición: el benchmark de latencia del proxy todavía no está publicado.
Tamaños recomendados: de 0,25 vCPU y 64 MB (hasta 1.000 queries por segundo) a 1 vCPU y 256 MB (50.000 o más). La memoria crece con las conexiones, unos 4 KB por sesión TCP: un sidecar por pod multiplica instancias pequeñas; un proxy compartido concentra el tráfico de una base en pocas réplicas.
Cómo implementarlo
- Registra cada base de datos y crea una API key con
rules:readytelemetry:write. Guárdala como Secret de Kubernetes. - Proxy compartido: un Deployment con dos réplicas y un Service por base de datos (el manifiesto está en la guía). Los servicios apuntan su connection string a
vericto-proxy:5433. - Sidecar: agrega el contenedor
ghcr.io/vericto/vericto-proxyal pod y conecta el servicio alocalhost:5433. Dentro del pod, el TLS entre la aplicación y el proxy puede quedar deshabilitado. - Si la base es gestionada (RDS, Cloud SQL), cifra el salto proxy → base con
UPSTREAM_SSLMODE=requireoverify-full: TLS. - Si el audit trail no puede perder eventos, usa
VERICTO_TELEMETRY_BUFFER=diskcon un volumen persistente: buffering de telemetría. - Da a cada servicio su propio usuario de base de datos, para ver y limitar su tráfico por separado. En ECS (Fargate), la guía trae la task definition.
Cuándo no usar esta opción
- Servicios sobre Oracle o SQL Server. Usa la API de runtime, con su límite de seguridad de 100 solicitudes por segundo por API key (se puede subir si lo necesitas).
- Un service mesh con TLS de extremo a extremo hasta la base. El proxy necesita ver el SQL: el TLS del cliente debe terminar en el proxy (
PROXY_TLS_MODE=require) y volver a abrirse hacia la base. - Una sola aplicación y una sola base. No necesitas nada de esto: ver aplicación web.
Disponibilidad por plan
| Función | Free | Builder | Team | Enterprise |
|---|---|---|---|---|
| Proxy TCP, API de runtime, CLI y MCP | Sí | Sí | Sí | Sí |
| Queries al mes (proxy y API de runtime) | 500K | 5M | 50M | Ilimitadas |
| Bases de datos | 1 | 3 | 10 | A medida |
| Allowlists por agente (VERICTO-087) | — | — | Sí | Sí |
| Columnas sensibles y enmascaramiento (VERICTO-085) | — | — | Sí | Sí |
| Simulador de reglas | — | Hasta 30 días | Hasta 90 días | Según contrato (hasta 180 días) |
| Despliegue en tu VPC | — | — | — | Sí |
Precios y todos los límites en Precios.