DEV Community

William Rodriguez
William Rodriguez

Posted on

Rotación sin cortes: Rotación automática de claves con rotate_key().

Rotar claves maestras no debería implicar apagar tus servicios para migrar la base de datos. Con rotate_key() de wauth, cada secreto en tu baúl se re-encripta de forma atómica en milisegundos.

Esta es la implementación exacta para producción de Automatic Key Rotation & Re-Encryption:

from wauth import WAuth

auth = WAuth(db_path="production_vault.db", custom_key="old-master-passphrase-2025")
auth.set("DB_PASSWORD", "super-secret-pass")
auth.set("API_KEY", "stripe_token_xyz")

# Atomic key rotation across all stored secrets
rotation_results = auth.rotate_key("new-master-passphrase-2026")
print("Rotation results:", rotation_results)
# {'DB_PASSWORD': True, 'API_KEY': True}

# Secrets are now secured under the new key!
print("Decrypted with new key:", auth.get("DB_PASSWORD"))
Enter fullscreen mode Exit fullscreen mode

Ventajas de ingeniería:

  • Re-Cifrado Atómico por Lotes: auth.rotate_key('new-key') re-encripta todos los secretos en una transacción.
  • Invalidación de la Clave Antigua: Tras la rotación, la clave previa queda totalmente invalidada para descifrar.
  • Reporte Detallado: Devuelve un diccionario con el estado y resultado de cada secreto individual.

Problemas eliminados:

  • La rotación de claves exigiendo ventanas de mantenimiento y exportaciones manuales
  • Fallos parciales que dejan la base de datos cifrada a medias con la clave vieja y la nueva
  • Caídas de servicio cuando las auditorías de cumplimiento exigen revocar claves de inmediato

Explora el código fuente abierto y auditado en GitHub o instálalo con:

pip install wauth
Enter fullscreen mode Exit fullscreen mode

Autor: William Steve Rodríguez Villamizar (Wisrovi)

Top comments (0)