> ## 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 seguridad de responsabilidad compartida de Lerian: endurecimiento de infraestructura, segmentación de red, TLS y patrones Zero Trust.

Lee esta guía antes de instalar y desplegar Midaz.

En Lerian trabajamos bajo un **modelo de responsabilidad compartida de seguridad**. Nosotros protegemos la capa de aplicación: Midaz y todos los plugins de Lerian. Tú proteges 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 operes en la nube o on-premise.

## Infraestructura y seguridad de red

***

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

* Establece un **proceso de gestión de parches** que actualice el sistema operativo y los servicios con parches de seguridad de forma periódica.
* Aplica procedimientos de **hardening** a las imágenes de tu sistema operativo antes de desplegarlas.
* Usa las **imágenes Docker de Midaz y los plugins**, que siguen el **principio de privilegio mínimo**. Refuerza esto en el nivel del clúster con los controles adecuados.
* En **Kubernetes**, aplica líneas base de seguridad con herramientas de **policy-as-code** como **Kyverno** u **OPA Gatekeeper**.
* Ejecuta **análisis de vulnerabilidades rutinarios** en todas las capas de tu infraestructura, incluidas las capas que alojan los 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 el acceso no autorizado.
* 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 sensibles y flujos de datos.
* Aplica **TLS 1.2 o superior** para toda la comunicación entre Midaz y los servicios de los plugins.

## Configuraciones generales de seguridad

***

Debes proteger los secretos, el almacenamiento y los 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 de forma segura los secretos y los datos de configuración.
* **Rota las credenciales y los secretos** de forma periódica. Sigue el principio de privilegio mínimo al otorgar 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 corresponda.
* Actualiza Midaz y todos los plugins de Lerian a las **últimas versiones**, incluidos los parches y las mejoras de seguridad.

## Gestión de identidad y acceso (IAM)

***

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

* Implementa un proceso centralizado de IAM 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.
* Supervisa y audita el acceso a las **cuentas de servicio** de forma periódica, en especial las cuentas que usan los plugins.
* Define modelos de control de acceso que sigan el **principio de privilegio mínimo** con **RBAC**, **ABAC** o estrategias personalizadas.
* Usa **credenciales temporales** y acceso por tiempo limitado 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 cómo despliegas Midaz y los plugins:

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

## Capas de protección adicionales

***

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

* Aplica **procedimientos de hardening** del sistema operativo y de los servicios en toda tu pila tecnológica.
* Mantén **ciclos regulares de parches** para todos los entornos de ejecución, incluidos los servicios y las dependencias de terceros.
* Haz **pruebas de penetración manuales** para validar tus defensas, incluidas las defensas en torno a los plugins y las integraciones.
* Despliega **firewalls de aplicaciones web (WAF)** para proteger las API de los plugins y los endpoints de Midaz frente a ataques de capa 7.
* Usa **servicios anti-DDoS** y **herramientas de mitigación de bots** para bloquear ataques automatizados o a gran escala sobre los componentes expuestos.

<Tip>
  Combina las protecciones en el nivel de infraestructura con las validaciones de seguridad integradas en **Midaz y sus plugins**.
</Tip>

## Configuraciones de seguridad de Midaz

***

Revisa y ajusta todas las credenciales y certificados antes de salir a producción, ya sea que ejecutes Midaz localmente o lo despliegues en un clúster administrado.

### Credenciales y secretos

Midaz se ejecuta como un servicio de ledger consolidado. Para el desarrollo local, su plantilla de entorno es `components/ledger/.env.example`. Usa tu orquestador o los values de Helm para proporcionar la configuración de producción.

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

Mantén las credenciales de la base de datos, las claves de cifrado y los tokens de API fuera del repositorio. Inyéctalos en el momento del despliegue mediante tu gestor de secretos y los values del release de Ledger.

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

### Configuración del certificado TLS

Cuando expongas los servicios de Midaz a través de controladores de ingress, usa certificados TLS válidos. Un certificado configurado en el ingress protege el tráfico del cliente externo solo hasta el punto de terminación TLS del ingress. No cifra un salto en texto plano entre el ingress y el servicio. Configura TLS o mTLS upstream cuando también debas proteger ese salto interno.

Para Midaz v4, configura el ingress del **Ledger** mediante `ledger.ingress`. `crm.ingress` pertenece a la carga de trabajo de compatibilidad heredada de CRM del chart.

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 del certificado como un secreto de Kubernetes o en un vault externo (por ejemplo, AWS Secrets Manager).
  </Step>

  <Step>
    **Haz referencia** al secreto en tu archivo `values.yaml`:

    <CodeGroup>
      ```bash YAML theme={null}
      ledger:
        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 un cert manager.
</Tip>
