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:
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.
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
Evitar Codificar Variables en el Código: Las variables sensibles nunca deben ser codificadas directamente en el código fuente.
Actualizaciones Seguras: Las actualizaciones de variables sensibles deben ser realizadas solo por personal autorizado, siguiendo los procedimientos internos de gestión de cambios.
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.
Aislamiento de Ambientes: Las variables de un ambiente no deben ser utilizadas en otro para evitar dependencias no intencionales entre ambientes.