EU AI Act — registro automático
El Art. 12 exige registro automático de eventos durante la vida de los sistemas de alto riesgo. Aegis aporta insumos técnicos a ese análisis; la clasificación (Art. 6) y la conformidad son de su organización.
Cumplimiento
El problema
Sus decisiones de IA se registran en una base de datos que sus administradores pueden editar. Cuando alguien pregunta qué se le dijo al modelo hace seis meses, usted responde con registros que la parte interesada pudo cambiar. El arreglo tiene que poder comprobarlo alguien que desconfía de usted.
El Art. 12 exige registro automático de eventos durante la vida de los sistemas de alto riesgo. Aegis aporta insumos técnicos a ese análisis; la clasificación (Art. 6) y la conformidad son de su organización.
Desde las enmiendas de 2022, un broker-dealer puede conservar registros en WORM o con un audit trail completo que permita recrear el original. Un registro que el interesado pudo editar no sirve para ninguna de las dos vías.
El marco pide evidencia documentada del comportamiento del sistema y de sus mitigaciones. Aegis produce registros verificables del tráfico gobernado, no capturas de pantalla.
Estas obligaciones son suyas; este software es un insumo para ellas, nunca su cumplimiento.
Los registros de Aegis pueden aportar insumos técnicos al análisis de registro automático de eventos del Art. 12 para sistemas de alto riesgo: commit antes de la respuesta, detección de manipulación e inclusión verificable. Hashing, colas acotadas y rotación del WAL pueden apoyar una evaluación bajo GDPR Arts. 5(1)(c), 5(1)(e), 25 y 32.
Clasificación de alto riesgo (Art. 6 + Anexos), conformidad, contenido y retención de logs exigidos, roles de proveedor/desplegador, base legal, anonimización, EIPD o transferencias.
Redacción correcta: “Aporta insumos técnicos al análisis del Art. 12”, no “cumple el EU AI Act”.
| Área | Comportamiento de Aegis | Estado | Frontera del cliente |
|---|---|---|---|
| Ciclo de vida de la petición | Petición autenticada, cuerpo acotado, política/WAF, llamada al proveedor, commit durable de evidencia y después la respuesta. | IMPLEMENTED | El cliente valida ingress, identidad, contrato con el proveedor y topología. |
| Integridad de la evidencia | Hashes canónicos, enlace al predecesor, metadatos Merkle y de firma, append al WAL con fsync. | IMPLEMENTED | Detectar manipulación no es almacenamiento WORM ni protege frente a un administrador del host. |
| Firma y rotación de claves | Keyring HMAC versionado, reemplazo atómico, verificación en solape, caducidad y key_id no secreto. | MEASURED | Custodia en secret manager, propagación entre réplicas y reloj: evidencia del cliente. HMAC es simétrico. |
| WAF y normalización | Normalización en capa de aplicación y regresión sobre un corpus local fijado. | MEASURED | Parsing HTTP/2, traducción del proxy y diferencias de ingress quedan fuera. |
| Control de egress | Validación canónica de endpoints y allowlist de aplicación. | IMPLEMENTED | Siguen siendo necesarios firewall de red, aislamiento, IAM y NetworkPolicy. |
| Rate limiting | Limitador Redis distribuido que puede fallar cerrado; el modo en memoria es sólo desarrollo. | CONFIGURATION-DEPENDENT | TLS, HA, credenciales y capacidad de Redis requieren pruebas en su entorno. |
| Postura del kernel | La configuración estricta puede exigir comprobaciones seccomp y AppArmor/SELinux. | CONFIGURATION-DEPENDENT | Son comprobaciones puntuales en el arranque; no prueban la integridad continua del host (UC-070). |
| Backpressure | Con 2 ms de fsync inyectado, 2 500 registros ofrecidos → 2 500 durables, cadena válida, p99 51,87 ms. | MEASURED | No es capacidad de producción ni un SLO de almacenamiento. |
| Minimización de datos | Cuerpos de petición y respuesta representados por hashes en el WAL en el path declarado. | CUSTOMER-ASSESSMENT | Un hash puede seguir siendo dato personal (UC-044). Base legal, retención y derechos: del cliente. |
| Exportación y replay | Los bundles conservan metadatos de evidencia y key_id; integridad verificable offline. | IMPLEMENTED | La verificación offline no establece autoría, admisibilidad ni veracidad del contenido. |
Los siete archivos config/presets/*.env tal como están en el repositorio. Atención: el propio registro del proyecto documenta que algunas claves de estos presets no las lee ningún path de código (UC-066) y que las etiquetas “WORM” no establecen medios inmutables (UC-006). Valide cada clave en su despliegue.
# Copyright (c) 2026 Juan Luna. All rights reserved.# Licensed under the GNU Affero General Public License v3 (AGPLv3) OR under a# Proprietary Commercial License. See LICENSE and COMMERCIAL.md for terms.## config/presets/finreg.env — Finance & Banking (SEC Rule 17a-4 / FINRA 4511 / MiFID II)## Usage:# cp config/presets/finreg.env .env && $EDITOR .env # fill in secrets# docker compose --env-file .env up -d## Compliance context:# SEC Rule 17a-4(f) requires that electronic records be retained in a# non-rewriteable, non-erasable format (WORM). The audit WAL + sealed# compliance bundle satisfies this when backed by WORM-capable storage# (e.g. AWS S3 Object Lock, NetApp SnapLock, Azure Immutable Blob Storage).# FINRA 4511 extends the same requirement to member firms.# MiFID II RTS 24 requires tamper-proof records of order/execution activity# with a synchronized timestamp source. # ── Provider ───────────────────────────────────────────────────────────────────AEGIS_PROVIDER=openaiAEGIS_BACKEND_URL=https://api.openai.com # ── Secrets (populate from Vault / AWS Secrets Manager — never hard-code) ──────AEGIS_BACKEND_API_KEY=AEGIS_API_KEYS=AEGIS_AUDIT_API_KEYS=AEGIS_SIGNING_KEY= # 64-char hex HMAC key; rotate annually per FINRA 4511 # ── Audit chain ────────────────────────────────────────────────────────────────AEGIS_WAL_PATH=/data/aegis.wal.jsonlAEGIS_MAX_MEMORY_NODES=1000000 # Retain 1M nodes in-memory before evictionAEGIS_FORCE_LOGPROBS=true # Required for entropy analysis and FINRA evidence # ── WORM compliance label ──────────────────────────────────────────────────────# Set this in your Docker Compose or Kubernetes labels.# Volume driver must be WORM-capable; set write-once retention ≥ 6 years per 17a-4(f)(3)(iii).AEGIS_COMPLIANCE_PRESET=finregENABLE_SEC17A4_LABELS=true # ── Rate limiting ──────────────────────────────────────────────────────────────AEGIS_RATE_LIMIT_BACKEND=redisAEGIS_REDIS_URL=rediss://redis:6379/0AEGIS_RATE_LIMIT_THRESHOLD=200AEGIS_RATE_LIMIT_BURST=30 # ── Detection thresholds (tighter than default for financial data) ──────────────AEGIS_KL_ALERT_THRESHOLD=1.5 # Tighter than default 2.0 — flag unusual token distributionsAEGIS_JS_ALERT_THRESHOLD=0.4 # ── TLS (mTLS required for MiFID II / FedWire / SWIFT connectivity) ────────────AEGIS_SSL_CERTFILE=/certs/server.crtAEGIS_SSL_KEYFILE=/certs/server.keyAEGIS_SSL_CA_CERTS=/certs/ca.crt # ── Observability ──────────────────────────────────────────────────────────────AEGIS_LOG_LEVEL=INFOAEGIS_WEBHOOK_URL= # NOT READ by any code path in 5.0.1 (AUD-35); use AEGIS_SIEM_URL # ── Timestamp source (MiFID II RTS 25 — synchronized clock) ────────────────────# Point to your NTP/PTP grandmaster; sync tolerance < 1ms for HFT environments.# Aegis uses Python's time.time() which inherits the host NTP sync.# Ensure host clock is synced: chronyc tracking | ntpstat