Introducción

En Lapachos Lending, la gestión de variables que contienen información sensible o confidencial es un aspecto crítico para garantizar la seguridad y el correcto funcionamiento de nuestra plataforma.

Los datos que se guardan de forma segura son las credenciales para conexiones a bases de datos, acceso a servicios externos (como conexiones ABL y reCAPTCHA) y claves secretas.

Estructura Organizativa

El enfoque para manejar variables sensibles se basa en dos principios clave:

  1. Segregación por Ambiente: Las variables se organizan por ambiente (por ejemplo, dev, QA, demo, stage y prod) para garantizar que cada ambiente opere de forma independiente y segura.

  2. Segmentación por Asociación: Para una mayor granularidad, las variables también se segmentan por asociación. Esto nos permite configurar las conexiones, como las de ABL, de acuerdo con las necesidades específicas de cada asociación.

Almacenamiento y Gestión de Variables

AWS Secrets Manager

Todas las variables sensibles se almacenan de forma segura en AWS Secrets Manager. Las prácticas clave incluyen:

  • Encriptación: Los secretos están encriptados usando AWS Key Management Service (KMS).

  • Convenciones de Nombres: Los secretos siguen una estructura jerárquica de nombres:

    • /qa/association1/abl_connection

    • /qa/association2/abl_connection

    • /global/db_connection

    • /global/recaptcha

Control de Acceso

  • Acceso Basado en Roles: El acceso a los secretos está restringido mediante roles de IAM, asegurando que solo los servicios o miembros del equipo necesarios tengan acceso a los secretos específicos.

  • Principio de Mínimo Privilegio: Los permisos de acceso se otorgan con el nivel mínimo necesario para la funcionalidad.

Control de Versiones y Auditoría

  • Versionado: Los secretos tienen control de versiones, lo que permite revertir a valores anteriores si es necesario.

  • Registro de Auditoría: Todos los accesos y modificaciones a los secretos se registran a través de AWS CloudTrail para fines de auditoría.

Configuración de Conexiones ABL

  • Variables Específicas por Asociación: Las cadenas de conexión, credenciales y otras configuraciones relacionadas se almacenan bajo el espacio de nombres correspondiente a la asociación.

    • ablurl - URL de conexión al API REST de ABL

    • ablauth - URL de la función de autorización para obtener un token de acceso a ABL

    • ablusername - Usuario de acceso

    • ablpassword - Password de acceso

    • bankemailmain - email del adquirente

    • bankemailbuyer - email del emisor

  • Resolución Dinámica: Durante la ejecución, la plataforma resuelve y recupera dinámicamente las variables apropiadas según la asociación que se está procesando. Esto garantiza que los datos de cada asociación se manejen de forma segura e independiente.

Mejores Prácticas

  1. Evitar Codificar Variables en el Código: Las variables sensibles nunca deben ser codificadas directamente en el código fuente.

  2. Actualizaciones Seguras: Las actualizaciones de variables sensibles deben ser realizadas solo por personal autorizado, siguiendo los procedimientos internos de gestión de cambios.

  3. Revisión Periódica: Se realizan revisiones periódicas de los secretos almacenados y de las políticas de acceso para mantener la seguridad y el cumplimiento.

  4. Aislamiento de Ambientes: Las variables de un ambiente no deben ser utilizadas en otro para evitar dependencias no intencionales entre ambientes.