Saltearse al contenido

Seguridad y backups

Cifrado en reposo

Cuando MYDRIVE_ENCRYPTION_KEY está definida, MyDrive cifra los archivos en disco antes de escribirlos en el volumen mydrive_data. La base de datos guarda los metadatos (nombres de archivo, estructura de carpetas, permisos de compartición) por separado del contenido de los archivos.

Genera una clave robusta antes de tu primer despliegue:

Ventana de terminal
openssl rand -hex 32

Guarda este valor en un lugar seguro fuera del contenedor: perderlo hace que los archivos existentes sean irrecuperables.

Rotar la clave de cifrado

  1. Define MYDRIVE_ENCRYPTION_KEY_NEW con una clave recién generada, junto a la MYDRIVE_ENCRYPTION_KEY existente.
  2. Reinicia el stack. MyDrive vuelve a cifrar los archivos en segundo plano con la nueva clave.
  3. Cuando el panel de administración indique que la rotación ha terminado, elimina la clave antigua y renombra MYDRIVE_ENCRYPTION_KEY_NEW a MYDRIVE_ENCRYPTION_KEY.

Copias de seguridad

Define MYDRIVE_BACKUP_TARGET como s3 o local, y MYDRIVE_BACKUP_SCHEDULE como una expresión cron, para activar backups automáticos de la base de datos y del volumen de archivos cifrado.

Ventana de terminal
MYDRIVE_BACKUP_TARGET=s3
MYDRIVE_BACKUP_S3_BUCKET=mydrive-backups
MYDRIVE_BACKUP_SCHEDULE=0 3 * * *

Los backups incluyen el volcado de la base de datos y el volumen de archivos, ambos todavía cifrados con tu clave activa.

Backup manual

Ventana de terminal
docker compose exec mydrive mydrive-cli backup --output /data/backup.tar.gz

Restaurar

Ventana de terminal
docker compose exec mydrive mydrive-cli restore --input /data/backup.tar.gz

Restaura siempre sobre una instancia nueva con la misma MYDRIVE_ENCRYPTION_KEY usada al crear el backup; restaurar con una clave distinta dejará los archivos ilegibles.

Endurecimiento de red y accesos

  • Ejecuta siempre MyDrive detrás de un proxy inverso con TLS en producción (ver instalación).
  • Usa una MYDRIVE_SECRET_KEY larga y aleatoria; nunca la reutilices entre entornos.
  • Restringe el acceso directo al contenedor de base de datos: solo el servicio mydrive debería alcanzar el puerto 5432.
  • Considera activar la autenticación en dos pasos para las cuentas de administrador desde Admin → Seguridad.