Skip to main content
CRM gestiona datos sensibles relacionados con la identidad. Estas prácticas te ayudan a integrar CRM correctamente, proteger esos datos y ejecutarlo de forma segura en producción. Estas recomendaciones complementan la guía de Seguridad de datos del CRM, que cubre cifrado, hashing y gestión de claves en detalle.

1. Sigue el flujo correcto de integración


CRM depende de un orden específico para crear entidades. Si te saltas pasos o creas entidades fuera de orden, puedes romper integraciones y perder datos en flujos posteriores. El flujo esperado es:
  1. Crear el holder — el individuo o la organización.
  2. Vincular el holder a una cuenta del ledger de Midaz — asocia el holder con una cuenta que ya existe en el ledger.
  3. Asegúrate de que ambos existan — antes de iniciar cualquier flujo posterior.
Sin un holder vinculado a una cuenta del ledger, la mayoría de las funcionalidades impulsadas por CRM (tarifas, notificaciones, facturación, verificación de identidad) no funcionan como se espera.
Asegúrate de que tus identificadores sean correctos antes de crear o vincular registros. La API de CRM no valida la exactitud de los datos que envías. Un ledgerId o accountId que no coincida puede causar fallos de integración con el ledger u otros componentes.

2. Protege tus claves de cifrado


CRM cifra y aplica hash a los campos sensibles antes de almacenarlos. La seguridad de estos datos depende completamente de cómo gestionas tus claves.
  • Genera claves únicas para LCRYPTO_HASH_SECRET_KEY y LCRYPTO_ENCRYPT_SECRET_KEY con openssl rand -hex 32.
  • Almacena las claves en un gestor de secretos (AWS Secrets Manager, Azure Key Vault, HashiCorp Vault o equivalente). Nunca las codifiques directamente en archivos de configuración, código fuente o control de versiones.
  • Planifica la rotación de claves. Si una clave se ve comprometida, genera una nueva y re-cifra todos los datos afectados. Este es un proceso manual, así que diseña tus runbooks operacionales para ello.
  • Usa Kubernetes Secrets en producción. Referencia secretos existentes vía useExistingSecret y existingSecretName en tus valores de Helm en lugar de almacenar claves inline.
Para la lista completa de campos protegidos y estrategias de cifrado, consulta Seguridad de datos del CRM.

3. Nunca almacenes datos sensibles en metadata


El objeto metadata en las entidades de CRM no está cifrado. CRM lo almacena en texto plano solo para información auxiliar no sensible. No uses metadata para:
  • Números de identificación personal (CPF, SSN, pasaporte)
  • Detalles de cuentas financieras
  • Información de contacto (email, teléfono)
  • Cualquier dato sujeto a LGPD, GDPR o regulaciones similares
Si necesitas almacenar un atributo sensible que no está en la lista de campos protegidos, contacta a tu representante de Lerian para discutir opciones.

4. No expongas CRM directamente en capas de borde


CRM se ejecuta dentro del ledger de Midaz y expone una API interna. Si lo expones directamente a través de API gateways, balanceadores de carga o aplicaciones frontend, aumentas tu superficie de ataque. También eludes los controles de acceso a nivel de aplicación. En su lugar:
  • Enruta el tráfico de CRM a través de tus servicios backend o una capa de API interna.
  • Usa Access Manager para aplicar autenticación y autorización si necesitas control granular.
  • Restringe el acceso de red a los pods del ledger con Kubernetes NetworkPolicies o los grupos de seguridad de tu proveedor de nube.

5. Usa soft delete como opción predeterminada


CRM soporta tanto soft delete como hard delete:
  • Soft delete (predeterminado): CRM marca el registro con un timestamp deletedAt. El registro deja de aparecer en las consultas estándar pero permanece en la base de datos para auditoría y recuperación.
  • Hard delete: CRM solicita la eliminación del registro, sujeta a las reglas de retención y cumplimiento de tu implementación. Cuando obligaciones legales, regulatorias, de auditoría o de conservación de registros exigen la retención, CRM no garantiza la eliminación física.
Para la mayoría de los casos, soft delete es la opción más segura. Preserva las pistas de auditoría y te permite recuperar datos que eliminas por error. Reserva hard delete para casos donde las regulaciones exigen eliminación completa (por ejemplo, solicitudes de derecho al olvido del GDPR).
Confirma tu política de retención y de retención legal (legal hold) antes de ejecutar un hard delete. El derecho al olvido del GDPR (Artículo 17) no es absoluto. Cuando obligaciones legales, regulatorias, de auditoría o de conservación de registros exigen la retención de datos, estas pueden prevalecer y restringir la supresión.

6. Valida los datos antes de enviarlos a CRM


CRM actúa como una capa de datos neutral y persistente. No aplica reglas de negocio, no valida formatos de documentos ni verifica cumplimiento KYC. La integridad de los datos es tu responsabilidad. Antes de crear o actualizar un registro:
  • Valida los formatos de documentos (CPF, CNPJ, números de pasaporte) en tu capa de aplicación.
  • Asegúrate de que los valores de ledgerId y accountId apunten a entidades reales en Midaz.
  • Sanitiza las entradas para no almacenar datos malformados o inconsistentes.

7. Mantén CRM y Midaz alineados en versiones


CRM se distribuye dentro del binario del ledger de Midaz, por lo que comparte la versión de Midaz. Antes de actualizar:
  • Consulta la tabla de compatibilidad de versiones para confirmar tu versión objetivo.
  • Prueba la actualización en un entorno de staging antes de aplicarla en producción.
  • Haz respaldo de tus datos de MongoDB y valores de Helm antes de cualquier actualización mayor.
Para procedimientos de actualización, consulta la guía de actualización de Helm.

8. Monitorea la salud y el rendimiento de la base de datos


CRM usa MongoDB para almacenamiento de datos. En producción:
  • Monitorea el uso del pool de conexiones. El valor predeterminado de MONGO_CRM_MAX_POOL_SIZE es 1000. Ajústalo según tus patrones de tráfico y cantidad de réplicas.
  • Configura alertas para uso de disco de MongoDB, retraso de replicación y saturación de conexiones.
  • Habilita respaldos. Ya sea que uses el MongoDB Bitnami incluido o una instancia externa, ejecuta respaldos automatizados y pruébalos regularmente.
  • Habilita OpenTelemetry (ENABLE_TELEMETRY: true) para recolectar trazas y métricas del CRM. Intégralo con tu stack de observabilidad para visibilidad de extremo a extremo.

9. Revisa las recomendaciones de seguridad


CRM maneja datos personales y sensibles. Más allá de las prácticas específicas de CRM, asegúrate de que tu despliegue siga las Recomendaciones de seguridad de la plataforma, que cubren:
  • Segmentación de red y Arquitectura Zero Trust
  • Aplicación de TLS 1.2+ para todas las comunicaciones
  • Configuración de IAM y RBAC
  • Planificación de respuesta a incidentes
  • Gestión de parches y escaneo de vulnerabilidades