> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Seguridad

> Descubre cómo Midaz protege las operaciones financieras con seguridad desde el diseño, modelado de amenazas STRIDE, controles alineados con OWASP y un modelo claro de responsabilidad compartida.

Midaz incorpora protecciones para la integridad de los datos, el control de acceso y el aislamiento de tenants. Usa una gestión de identidad sólida, permisos granulares y prácticas estándar de la industria.

Esta página describe la arquitectura de seguridad que Midaz ofrece de forma predeterminada. También muestra cómo ejecutar operaciones seguras y conformes.

## Arquitectura

***

Midaz aplicó **seguridad desde el diseño** y **modelado de amenazas** desde el principio. Sigue aplicando ambos a cada nueva funcionalidad.

* **Seguridad desde el diseño**: Midaz integra controles de seguridad en todo el ciclo de vida, desde el diseño hasta el despliegue. Sigue las directrices de OWASP, como el **OWASP Top 10** y el **OWASP Application Security Verification Standard (ASVS)**.
* **Modelado de amenazas**: un proceso estructurado identifica, evalúa y reduce los riesgos de seguridad antes de que un atacante los explote. Midaz usa la metodología **STRIDE**. STRIDE agrupa las amenazas en seis tipos:
  * **S**poofing (por ejemplo, autenticación falsa en una API bancaria).
  * **T**ampering (por ejemplo, alterar los datos de una transacción a mitad de la solicitud).
  * **R**epudiation (por ejemplo, falta de registros de auditoría para las transacciones).
  * **I**nformation Disclosure (por ejemplo, filtración de datos sensibles a través de las respuestas de la API).
  * **D**enial of Service (por ejemplo, saturar la API con solicitudes falsas).
  * **E**levation of Privilege (por ejemplo, explotar un error para obtener acceso de administrador).

## Modelo de responsabilidad compartida

***

La seguridad es una **responsabilidad compartida** entre Lerian y el cliente. La división exacta depende de tu [modelo de despliegue](/es/start-here/evaluate-and-deploy/deployment-models).

| Lerian                                        | Cliente                        |
| --------------------------------------------- | ------------------------------ |
| Desarrollo de la aplicación                   | Infraestructura                |
| Actualizaciones de seguridad de la aplicación | Red                            |
|                                               | Base de datos                  |
|                                               | Gestión de identidad y acceso  |
|                                               | Cifrado                        |
|                                               | Datos del usuario              |
|                                               | Monitoreo                      |
|                                               | Capas de seguridad adicionales |

### En el modelo BYOC

En BYOC (Bring Your Own Cloud), despliegas Lerian en tu propia infraestructura. Lerian protege la **capa de aplicación**. Tú proteges el **entorno**.

**Lo que protege Lerian:**

* Servicios seguros desde el diseño.
* Correcciones proactivas de vulnerabilidades.
* Actualizaciones de seguridad: actualizaciones de dependencias, parches de seguridad y mejoras.

**Lo que protege el cliente:**

* **Infraestructura**: aplica hardening al sistema operativo y a las imágenes de contenedores, gestiona los parches y aplica configuraciones seguras en la plataforma de alojamiento.
* **Red**: implementa segmentación, firewalls y sistemas IDS/IPS. Adopta principios Zero Trust para proteger la comunicación interna y externa.
* **Base de datos**: configura copias de seguridad y registro de auditoría. Sigue las mejores prácticas de seguridad para el almacenamiento de datos.
* **Gestión de identidad y acceso**: controla el acceso al entorno. Usa las funciones de RBAC de Midaz para aplicar políticas de privilegio mínimo dentro de la plataforma.
* **Cifrado**: cifra los datos sensibles en reposo y en tránsito. Considera la tokenización o la anonimización cuando corresponda.
* **Datos del usuario**: todos los datos de usuario que Midaz almacena o procesa permanecen bajo tu control y responsabilidad.
* **Monitoreo**: establece herramientas de monitoreo que detecten patrones de acceso inusuales o comportamientos sospechosos.
* **Capas de seguridad adicionales**: refuerza las defensas con firewalls de aplicaciones web (WAF), mecanismos anti-DDoS y herramientas de mitigación de bots.

### En el modelo SaaS

En SaaS, Lerian gestiona toda la infraestructura. Lerian asume una mayor parte de la responsabilidad de seguridad.

**Lo que protege Lerian:**

* Todo lo de la capa de aplicación de BYOC, además de:
* Infraestructura en la nube, redes y entorno de cómputo.
* Aprovisionamiento de bases de datos, cifrado en reposo y copias de seguridad automatizadas.
* Aplicación de parches al sistema operativo y a los contenedores.
* Monitoreo, alertas y respuesta a incidentes.
* Alta disponibilidad y recuperación ante desastres.

**Lo que protege el cliente:**

* **Control de acceso en el nivel de negocio**: gestiona usuarios, roles y permisos dentro de la plataforma.
* **Seguridad de la integración de API**: protege la comunicación entre tus sistemas y las API de Lerian.
* **Gobernanza de datos del usuario**: define y aplica políticas de manejo de datos que cumplan con tus obligaciones regulatorias.
* **Cumplimiento**: confirma que el uso que haces de la plataforma se alinee con los requisitos regulatorios de tu institución.

<Tip>
  Para obtener instrucciones paso a paso, consulta [Recomendaciones de seguridad](/es/products/midaz/security-recommendations) en la sección de instalación y despliegue.
</Tip>

## Gestión de identidad y acceso

***

Midaz acepta un **Bearer JWT** emitido por un proveedor de OAuth 2.0 / OpenID Connect. La autenticación está desactivada a menos que configures `PLUGIN_AUTH_ENABLED=true`. Midaz se niega a iniciar sin ella cuando configuras `ENV_NAME=production` o habilitas multi-tenancy. Tú eliges cómo gestionar la identidad y el acceso. Tienes dos opciones:

* **Usa tu propia solución externa de IAM** (Identity and Access Management).
* **Usa el plugin nativo Access Manager de Lerian**: una buena opción para clientes sin un sistema de IAM existente, o para quienes buscan una experiencia totalmente integrada.

### Opción 1: IAM externo

Si integras tu propio proveedor de IAM, confirma que siga prácticas de seguridad modernas. Para mantener Midaz seguro, te recomendamos que:

* Uses protocolos comprobados como **OAuth 2.0** y **OpenID Connect**.
* Exijas **autenticación multifactor (MFA)**.
* Apliques algoritmos de hash de contraseñas seguros, como **bcrypt** o **argon2**.
* Impongas controles de acceso granulares con **RBAC**, **ABAC** o modelos similares.
* Gestiones las sesiones de forma segura, con reglas de expiración y políticas de refresh token.
* Protejas los endpoints de ataques de fuerza bruta y de repetición.
* Habilites y revises los **registros de acceso** con regularidad.

### Opción 2: plugin Access Manager

El [plugin Access Manager](/es/platform/access-manager) gestiona la autenticación y la autorización dentro de Midaz. Ofrece:

* Gestión del ciclo de vida del usuario
* Manejo de tokens de sesión
* Rotación de refresh tokens
* Registro y gestión de aplicaciones

Esta opción simplifica el control de acceso seguro. Se alinea con el sistema de permisos nativo de Midaz (RBAC).

## Aislamiento de tenants en despliegues multi-tenant

***

En Lerian SaaS o BYOC Multi-Tenant, Midaz aísla todos los recursos por tenant en la capa de aplicación. Esto incluye organizaciones, ledgers, cuentas y transacciones.

Tu token de acceso JWT lleva el contexto del tenant. En cada solicitud, el middleware de la plataforma resuelve el tenant a partir del claim `tenantId` del token. Tus llamadas a la API nunca ven datos de otros tenants. Otros tenants nunca ven tus datos.

Este aislamiento funciona con independencia de la jerarquía de la organización. Dos tenants pueden crear estructuras de organización similares, y sus datos permanecen completamente separados. En el [modo de aislamiento](/es/platform/multi-tenancy#isolation-modes) `DATABASE`, cada tenant usa su propia base de datos dedicada. En el modo `SCHEMA`, los tenants comparten una base de datos, pero los datos de cada tenant permanecen aislados detrás de sus propias credenciales distintas.

### Aislamiento de credenciales

Cada tenant tiene sus propias credenciales. Midaz nunca las comparte entre tenants, tanto en el [modo de aislamiento](/es/platform/multi-tenancy#isolation-modes) `DATABASE` como en `SCHEMA`. En el modo `SCHEMA`, los tenants comparten una instancia de base de datos. Aun así, el acceso de cada tenant usa sus propias credenciales distintas. Un tenant nunca puede autenticarse en los datos de otro tenant.

Midaz genera las credenciales durante el [aprovisionamiento automático](/es/platform/multi-tenancy/auto-provisioning). Las almacena en una **bóveda de credenciales**, no en archivos de configuración ni en variables de entorno. Puedes rotar las credenciales a demanda mientras la plataforma sigue atendiendo solicitudes. La rotación no causa downtime ni interrumpe las operaciones del tenant.

### Límites de recursos por tenant

Los despliegues multi-tenant aplican límites de recursos para que ningún tenant degrade a los demás. Este es el problema del **vecino ruidoso**:

* **Límites de recursos de Kubernetes**: los límites de CPU y memoria en cada carga de trabajo limitan cuánto cómputo puede consumir. Esto acota el impacto de un pico o de una carga de trabajo descontrolada.
* **Statement timeout de PostgreSQL**: Midaz no configura uno por su cuenta. Configura `statement_timeout` en tus roles o bases de datos de PostgreSQL para que ninguna consulta pueda retener recursos indefinidamente.
* **Pool de conexiones por servicio**: cada servicio mantiene su propio pool de conexiones, con un pool por tenant activo. Los límites del pool por tenant provienen de la configuración de conexión que cada tenant tiene en Tenant Manager, y los pools de tenants inactivos se eliminan con el tiempo. Esto acota la capacidad de conexión por tenant. Un tenant no puede agotar las conexiones de base de datos que otros necesitan.

<Note>
  Estos límites complementan el aislamiento de datos descrito arriba. El aislamiento de datos protege los *datos* de cada tenant frente a otros tenants. Los límites de recursos protegen el *rendimiento y la disponibilidad* de cada tenant frente a la carga de otros.
</Note>

<Tip>
  Para una visión general completa de multi-tenancy, consulta [Multi-tenancy](/es/platform/multi-tenancy).
</Tip>

## Protección de datos

***

Midaz aplica los **principios de partida doble** desde el diseño. Toda transacción debe tener débitos y créditos balanceados. Midaz rechaza cualquier asiento que no supere esta validación. Esto protege la **integridad del ledger**. También protege al sistema frente a **vulnerabilidades de condición de carrera** y discrepancias en los asientos.

### Salvaguardas integradas

Midaz aplica una validación estricta en todos los flujos de transacciones para mantener los datos consistentes y prevenir errores de lógica:

* **Midaz bloquea los saldos negativos**, a menos que los permitas explícitamente.
* **Midaz verifica el estado de la cuenta** antes de cualquier operación.
* **Midaz requiere un activo registrado y válido** antes de registrar un asiento.

### Cumplimiento con LGPD y GDPR

Midaz gestiona la validación de transacciones y la comunicación segura mediante **TLS 1.2 y 1.3**. Tú proteges la **información de identificación personal (PII)**. Para cumplir con **LGPD**, **GDPR** y leyes de protección de datos similares, te recomendamos que:

* Apliques **cifrado** a los datos sensibles, en reposo y en tránsito.
* Uses **tokenización** o **anonimización** cuando corresponda.
* Almacenes y gestiones los datos de los clientes bajo políticas de seguridad claramente definidas.

Midaz proporciona la base. Tú construyes las salvaguardas.

## Política de divulgación responsable

***

Compartimos abiertamente todas las mejoras y correcciones de seguridad conocidas en nuestras [**GitHub Discussions**](https://github.com/LerianStudio/midaz/discussions). Esto mantiene a la comunidad informada sobre los parches de seguridad y las mejoras.

Si encuentras una vulnerabilidad de seguridad en Midaz, repórtala directamente a nuestro equipo antes de hacerla pública. Apoyamos la divulgación responsable. Investigamos y resolvemos los problemas de forma rápida y minuciosa.

<Danger>
  No divulgues ningún hallazgo públicamente hasta que lo revisemos y lo resolvamos.
</Danger>

Los pasos para reportar una vulnerabilidad:

<Steps>
  <Step title="Reportar">
    Escríbenos a [security@lerian.studio](mailto:security@lerian.studio).
  </Step>

  <Step title="Confirmación">
    Respondemos dentro de las 24 horas.
  </Step>

  <Step title="Verificación">
    Nuestro equipo valida el reporte.
  </Step>

  <Step title="Evaluación de impacto">
    Determinamos la gravedad y el impacto.
  </Step>

  <Step title="Resolución">
    Corregimos el problema y notificamos a quien lo reportó.
  </Step>

  <Step title="Divulgación pública">
    Coordinamos la divulgación con quien investigó.
  </Step>
</Steps>

<Warning>
  Usa una clave PGP para la comunicación segura. Priorizamos la confidencialidad y la resolución rápida de todos los reportes de seguridad.
</Warning>
