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

Antes de saltar a la instalación y despliegue, alineémonos en algo crítico: la seguridad.

En Lerian, operamos bajo un **Modelo de Responsabilidad Compartida de Seguridad**: **nosotros aseguramos la capa de aplicación (Midaz y todos los plugins de Lerian)**, y **tú eres responsable de asegurar la infraestructura donde se ejecutan**. Esta guía está diseñada para ayudar a tu equipo a establecer y mantener una sólida postura de seguridad en todo el ecosistema de Lerian, desde Midaz hasta cada plugin integrado.

Las siguientes recomendaciones no son exhaustivas. En cambio, están destinadas a complementar tus prácticas de seguridad existentes, ya sea que estés ejecutando en la nube o on-premise.

## Seguridad de infraestructura y red

***

Midaz y todos los plugins de Lerian son soluciones nativas de la nube diseñadas para ejecutarse de forma segura en entornos distribuidos y contenedorizados. Para mejorar la seguridad de tu infraestructura y red:

* Establece un **proceso de gestión de parches** para asegurar que el SO y los servicios se actualicen regularmente con parches de seguridad.
* Aplica procedimientos de **endurecimiento** a tus imágenes de sistema operativo antes del despliegue.
* Aprovecha las **imágenes Docker de Midaz y plugins**, que siguen el **principio de mínimo privilegio**, y refuerza esto a nivel de clúster usando controles apropiados.
* Si estás usando **Kubernetes**, aplica líneas base de seguridad usando herramientas de **policy-as-code** como **Kyverno**, **OPA Gatekeeper** o similares.
* Ejecuta **escaneos de vulnerabilidades rutinarios** en todas las capas de tu infraestructura, incluidas las que alojan plugins.
* Usa **segmentación de red** para restringir el acceso de plugins y componentes de Midaz 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** al manejar sistemas o flujos de datos sensibles.
* Aplica **TLS 1.2 o superior** para todas las comunicaciones entre los servicios de Midaz y plugins.

## Configuraciones generales de seguridad

***

Proteger secretos, almacenamiento y datos es vital en todos los componentes de Lerian, incluidos Midaz y sus plugins. Dicho esto, considera:

* Usa soluciones confiables como **AWS Secrets Manager**, **Azure Key Vault**, **Google Secret Manager** o **HashiCorp Vault** para almacenar de forma segura secretos y datos de configuración.
* **Rota credenciales y secretos** regularmente, y sigue el principio de mínimo privilegio al otorgar acceso.
* Habilita el **registro de auditoría** y asegúrate de que las **copias de seguridad automatizadas** estén en su lugar para todas las bases de datos utilizadas por Midaz y plugins.
* Aplica **cifrado en reposo** a todos los datos persistentes, incluidos los manejados por plugins como CRM o Access Manager.
* Aplica **restricciones de acceso** a datos sensibles, y usa **tokenización**, **cifrado** o **anonimización** cuando sea apropiado.
* Mantén Midaz y todos los plugins de Lerian actualizados con las **últimas versiones**, incluidos parches y mejoras de seguridad.

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

***

Un enfoque de IAM unificado y seguro debe abarcar no solo el entorno donde se despliegan Midaz y los plugins, sino también los servicios en sí. Por lo tanto:

* Implementa un proceso de IAM centralizado para gestionar el acceso a la infraestructura que aloja productos de Lerian.
* Aplica **autenticación multifactor (MFA)** en todas las cuentas de usuario y administrador.
* Monitorea y audita periódicamente el acceso otorgado a **cuentas de servicio**, especialmente las utilizadas por plugins.
* Define modelos de control de acceso que se adhieran al **principio de mínimo privilegio**, usando **RBAC**, **ABAC** o estrategias personalizadas.
* Utiliza **credenciales temporales** y acceso limitado en el tiempo para operaciones de alta sensibilidad.
* Realiza **revisiones regulares** de todos los privilegios de acceso, incluidos los de Midaz, CRM, Access Manager, Reporter y otros productos/plugins.

## Monitoreo y respuesta a incidentes

***

Para incorporar observabilidad y preparación ante incidentes en tu estrategia de despliegue de Midaz y 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 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 para mejorar la protección.
* Considera centralizar logs a través de una **plataforma SIEM** para habilitar una detección de amenazas más eficiente.
* Mantén un **plan de respuesta a incidentes** actualizado, incluidos 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, recomendamos encarecidamente implementar capas de protección adicionales:

* Aplica procedimientos de **endurecimiento** del SO y 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 la efectividad de tus defensas, incluidas las de plugins e integraciones.
* Despliega **Web Application Firewalls (WAFs)** para proteger las APIs de plugins y 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** para crear un entorno financiero cohesivo, escalable y conforme. En Lerian, la seguridad no es una idea tardía, es parte del diseño.
</Tip>

## Configuraciones de seguridad de Midaz

***

La seguridad comienza con la configuración. Ya sea que estés ejecutando Midaz localmente o desplegando en un clúster administrado, es crítico revisar y ajustar todas las credenciales y certificados antes de entrar en producción.

### Credenciales y secretos

Cada componente de Midaz viene con su propio archivo `.env`, permitiendo configuración personalizada por módulo. Esto te da flexibilidad, pero también una responsabilidad compartida.

<Danger>
  Nunca despliegues Midaz usando credenciales predeterminadas. Siempre actualiza los valores secretos en tu entorno antes de lanzar.
</Danger>

Los siguientes archivos deben revisarse y actualizarse para asegurar que la información sensible esté protegida:

| **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`      |

Asegúrate de que secretos como credenciales de base de datos, claves de cifrado y tokens de API se almacenen de forma segura y se roten regularmente.

### Configuración de certificados TLS

Al exponer servicios de Midaz a través de controladores de ingress, es esencial usar certificados TLS válidos para asegurar la comunicación entre servicios y clientes externos.

Midaz permite habilitar ingress para los siguientes componentes:

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

Para configurar un certificado TLS personalizado:

<Steps>
  <Step>
    **Genera** un certificado válido usando un proveedor confiable (ej., Let's Encrypt, GoDaddy).
  </Step>

  <Step>
    **Almacena** la cadena completa de certificados como un secret de Kubernetes o en una bóveda externa (ej., 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>
  Siempre aplica TLS 1.2 o superior. Para clústeres internos, considera emitir certificados de corta duración automáticamente mediante un service mesh o cert manager.
</Tip>
