> ## 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.

# Recomendaciones de seguridad

> Aplica el modelo de responsabilidad compartida de Lerian — hardening de infraestructura, segmentación de red, TLS y patrones Zero Trust.

Lee esta guía antes de instalar y desplegar Midaz. La seguridad es crítica.

En Lerian, trabajamos bajo un **Modelo de Responsabilidad Compartida de Seguridad**. Nosotros aseguramos la capa de aplicación: Midaz y todos los plugins de Lerian. Tú aseguras la infraestructura donde se ejecutan. Esta guía ayuda a tu equipo a construir y mantener una postura de seguridad sólida en todo el ecosistema de Lerian, desde Midaz hasta cada plugin integrado.

Estas recomendaciones no son exhaustivas. Complementan tus prácticas de seguridad existentes, ya sea que trabajes en la nube o on-prem.

## Seguridad de infraestructura y red

***

Midaz y todos los plugins de Lerian son cloud-native. Se ejecutan en entornos distribuidos y contenedorizados. Para reforzar la seguridad de tu infraestructura y red:

* Establece un **proceso de gestión de parches** que actualice el SO y los servicios con parches de seguridad de forma periódica.
* Aplica procedimientos de **endurecimiento** a tus imágenes de sistema operativo antes del despliegue.
* Usa las **imágenes Docker de Midaz y plugins**, que siguen el **principio de mínimo privilegio**. Refuerza esto a nivel de clúster con los controles adecuados.
* Para **Kubernetes**, aplica líneas base de seguridad con herramientas de **policy-as-code** como **Kyverno** u **OPA Gatekeeper**.
* Ejecuta **escaneos de vulnerabilidades rutinarios** en todas las capas de tu infraestructura, incluidas las capas que alojan plugins.
* Usa **segmentación de red** para restringir el acceso a los componentes de Midaz y a los plugins solo a los sistemas que lo necesitan.
* Configura **firewalls** para gestionar el flujo de tráfico y prevenir accesos no autorizados.
* Cuando sea posible, implementa **Sistemas de Detección de Intrusiones (IDS)** y **Sistemas de Prevención de Intrusiones (IPS)** para analizar el comportamiento de la red y bloquear anomalías.
* Adopta una **Arquitectura Zero Trust** para sistemas y flujos de datos sensibles.
* Aplica **TLS 1.2 o superior** para toda la comunicación entre los servicios de Midaz y plugins.

## Configuraciones generales de seguridad

***

Debes proteger secretos, almacenamiento y datos en todos los componentes de Lerian, incluidos Midaz y sus plugins. Sigue estas prácticas:

* Usa soluciones confiables como **AWS Secrets Manager**, **Azure Key Vault**, **Google Secret Manager** o **HashiCorp Vault** para almacenar secretos y datos de configuración de forma segura.
* **Rota credenciales y secretos** de forma periódica. Sigue el principio de mínimo privilegio cuando otorgas acceso.
* Habilita el **registro de auditoría**. Configura **copias de seguridad automatizadas** para todas las bases de datos que usan Midaz y los plugins.
* Aplica **cifrado en reposo** a todos los datos persistentes, incluidos los datos que procesan plugins como Access Manager.
* Aplica **restricciones de acceso** a los datos sensibles. Usa **tokenización**, **cifrado** o **anonimización** cuando sea apropiado.
* Actualiza Midaz y todos los plugins de Lerian a las **últimas versiones**, incluidos parches y mejoras de seguridad.

## Gestión de Identidad y Acceso (IAM)

***

Aplica un enfoque de IAM unificado en dos capas: el entorno donde despliegas Midaz y los plugins, y los propios servicios. Sigue estas prácticas:

* Implementa un proceso de IAM centralizado para gestionar el acceso a la infraestructura que aloja los productos de Lerian.
* Aplica **autenticación multifactor (MFA)** en todas las cuentas de usuario y administrador.
* Monitorea y audita el acceso a las **cuentas de servicio** de forma periódica, especialmente las cuentas que usan los plugins.
* Define modelos de control de acceso que sigan el **principio de mínimo privilegio** con **RBAC**, **ABAC** o estrategias personalizadas.
* Usa **credenciales temporales** y acceso limitado en el tiempo para operaciones de alta sensibilidad.
* Revisa todos los privilegios de acceso de forma periódica, incluido el acceso a Midaz, Access Manager, Reporter y otros productos.

## Monitoreo y respuesta a incidentes

***

Para incorporar observabilidad y preparación ante incidentes en la forma en que despliegas Midaz y los plugins:

* Despliega herramientas de monitoreo de seguridad para rastrear el comportamiento en todos los servicios de Lerian, incluida la actividad de plugins.
* Habilita logs y trazas en tu infraestructura y en cada componente de Midaz y sus plugins.
* **Integra logs** de los servicios de Midaz y plugins con herramientas de detección de fraudes o monitoreo de anomalías.
* Centraliza logs en una **plataforma SIEM** para una detección de amenazas más eficiente.
* Mantén un **plan de respuesta a incidentes** actualizado, con playbooks específicos para servicios como Access Manager o Fees Engine.

## Capas de protección adicionales

***

Para entornos críticos de producción o de alto cumplimiento, agrega estas capas de protección:

* Aplica procedimientos de **endurecimiento** del SO y los servicios en todo tu stack.
* Mantén **ciclos regulares de parches** para todos los entornos de ejecución, incluidos servicios y dependencias de terceros.
* Realiza **pruebas de penetración manuales** para validar tus defensas, incluidas las defensas alrededor de plugins e integraciones.
* Despliega **Web Application Firewalls (WAFs)** para proteger las APIs de plugins y los endpoints de Midaz de ataques de Capa 7.
* Usa **servicios Anti-DDoS** y **herramientas de mitigación de bots** para bloquear ataques automatizados o a gran escala en componentes expuestos.

<Tip>
  Combina protecciones a nivel de infraestructura con las validaciones de seguridad integradas de **Midaz y sus plugins**. Juntas crean un entorno financiero conforme y escalable.
</Tip>

## Configuraciones de seguridad de Midaz

***

La seguridad comienza con la configuración. Revisa y ajusta todas las credenciales y certificados antes de entrar en producción, ya sea que ejecutes Midaz localmente o lo despliegues en un clúster administrado.

### Credenciales y secretos

Cada componente de Midaz tiene su propio archivo `.env` para la configuración por módulo. Esto te da flexibilidad y una responsabilidad compartida.

<Danger>
  Nunca despliegues Midaz con credenciales predeterminadas. Actualiza todos los valores secretos en tu entorno antes de lanzar.
</Danger>

Revisa y actualiza los siguientes archivos para proteger la información sensible:

| **Midaz Repo**                 | **Midaz Helm**                                      |
| :----------------------------- | :-------------------------------------------------- |
| `/components/infra/.env`       | `/charts/midaz/values.yaml`                         |
| `/components/mdz/.env`         | `/charts/midaz/templates/onboarding/secrets.yaml`   |
| `/components/onboarding/.env`  | `/charts/midaz/templates/transactions/secrets.yaml` |
| `/components/transaction/.env` | `/charts/midaz/templates/console/secrets.yaml`      |

Almacena secretos como credenciales de base de datos, claves de cifrado y tokens de API de forma segura. Rótalos de forma periódica.

### Configuración de certificados TLS

Cuando expones servicios de Midaz a través de controladores de ingress, usa certificados TLS válidos. Los certificados válidos aseguran la comunicación entre servicios y clientes externos.

Puedes habilitar ingress para los siguientes componentes de Midaz:

* **Transaction**
* **Onboarding**
* **Console**

Para configurar un certificado TLS personalizado:

<Steps>
  <Step>
    **Genera** un certificado válido con un proveedor confiable (por ejemplo, Let’s Encrypt o GoDaddy).
  </Step>

  <Step>
    **Almacena** la cadena completa de certificados como un secret de Kubernetes o en una bóveda externa (por ejemplo, AWS Secrets Manager).
  </Step>

  <Step>
    **Referencia** el secret en tu archivo `values.yaml`:

    <CodeGroup>
      ```bash YAML theme={null}
      ingress:
        ///class, host, annotations, etc
        tls:
          - secretName: certificate-tls
            hosts:
              - midaz.example.com
      ```
    </CodeGroup>
  </Step>
</Steps>

<Tip>
  Aplica siempre TLS 1.2 o superior. Para clústeres internos, emite certificados de corta duración automáticamente con un service mesh o cert manager.
</Tip>
