Skip to content
Usuario

Gestion de secretos

MedSync no debe operar produccion con secretos en archivos versionados, chats, tickets ni documentacion. Usa secret manager o el mecanismo seguro de la plataforma.

SecretoVariableRotacion recomendada
Firma JWTJWT_SECRETAl menos por incidente, cambio de custodia o calendario formal.
Refresh token HMACREFRESH_TOKEN_SECRETPor incidente o rotacion planificada con invalidacion controlada.
CSRF HMACCSRF_TOKEN_SECRETPor incidente o rotacion planificada.
Password reset HMACPASSWORD_RESET_CODE_SECRETPor incidente; invalida challenges pendientes.
DB passwordDB_PASSWORDPeriodica y por cambio de personal/incidente.
SMTP passwordSMTP_PASSWORDPeriodica y ante abuso/filtracion.
Storage keysAWS_SECRET_ACCESS_KEY, CLOUDINARY_API_SECRETPeriodica y por incidente.
Signature linksSIGNATURE_LINK_TOKEN_SECRETPor incidente; puede invalidar links publicos.
  • Generar secretos con alta entropia.
  • No reutilizar JWT_SECRET como fallback de refresh/password-reset en produccion.
  • Guardar cada secreto con nombre y version.
  • Separar secretos por ambiente.
  • No usar .env.local como fuente productiva.
  • No imprimir secretos en logs de startup.
  • No incluir secretos en reportes de QA.
  • Revocar/rotar si un valor se copio a un lugar inseguro.

La revision detecto que el backend .env.example contiene algunas muestras concretas. No se copiaron a esta documentacion. Antes de produccion:

  • Reemplazar valores concretos por placeholders.
  • Rotar cualquier credencial real que haya estado en ejemplos.
  • Asegurar que .env.local no se versiona.
  • Revisar historial Git si algun secreto real fue commiteado.
JWT_SECRET=<secret-manager-path>/medsync/prod/jwt-secret
REFRESH_TOKEN_SECRET=<secret-manager-path>/medsync/prod/refresh-token-secret
CSRF_TOKEN_SECRET=<secret-manager-path>/medsync/prod/csrf-token-secret
PASSWORD_RESET_CODE_SECRET=<secret-manager-path>/medsync/prod/password-reset-code-secret
DB_PASSWORD=<secret-manager-path>/medsync/prod/db-password
SMTP_PASSWORD=<secret-manager-path>/medsync/prod/smtp-password
  1. Abrir ventana de cambio.
  2. Tomar backup cuando aplique.
  3. Crear nuevo secreto en secret manager.
  4. Desplegar backend con nuevo secreto.
  5. Invalidar artefactos dependientes si aplica.
  6. Ejecutar smoke tests.
  7. Monitorear 401/403/500/auth failures.
  8. Revocar secreto viejo.
  9. Registrar evidencia sin valores sensibles.
Secreto rotadoImpacto esperado
JWT_SECRETAccess tokens existentes dejan de validar; usuarios pueden requerir re-login.
REFRESH_TOKEN_SECRETRefresh tokens existentes dejan de validar; usuarios requieren re-login.
CSRF_TOKEN_SECRETCSRF tokens existentes fallan; frontend debe pedir /api/auth/csrf.
PASSWORD_RESET_CODE_SECRETCodigos/challenges pendientes dejan de validar.
DB_PASSWORDRequiere restart/reload backend con password nuevo.
SMTP_PASSWORDEnvio de correo falla hasta actualizar credencial.
  • Passwords reales.
  • Tokens reales.
  • Cookies completas.
  • IPs privadas sensibles sin necesidad.
  • Credenciales DB/SMTP.
  • Salidas de comandos que muestren secretos.