Automatización y recuperación de respaldos PostgreSQL mediante GitHub Actions
Описание и применение
Автоматизация резервного копирования PostgreSQL с помощью GitHub Actions, шифрование GPG и развертывание приложения BackupManager на Render.
Задача
La generación manual de copias de seguridad de bases de datos provoca olvidos, archivos desactualizados, pérdida de archivos y exposición de información sensible.
Результат
Se logró automatizar la creación, cifrado y almacenamiento de respaldos de PostgreSQL, reduciendo riesgos de pérdida y exposición de datos, y se estableció un proceso de verificación de restauración.
Рабочий процесс
- Configurar secretos DATABASE_URL y BACKUP_PASSPHRASE en GitHub Actions.
- Crear archivo .github/workflows/postgresql-backup.yml con pasos para instalar cliente PostgreSQL y gnupg.
- Generar respaldo con pg_dump en formato custom.
- Cifrar el respaldo con GPG usando AES256 y la contraseña del secreto.
- Eliminar archivo sin cifrar para no dejar datos sensibles en el runner.
- (En producción) subir el archivo cifrado a un almacenamiento persistente y aplicar política de retención.
- Monitorear ejecuciones en la pestaña Actions y configurar alertas si fallan.
- Para restaurar: descifrar con GPG, luego usar pg_restore con opciones --no-owner y --no-acl.
- Verificar la restauración ejecutando consultas de conteo y comparando estructuras de tablas.
Доказательства
Para conectarse a PostgreSQL se necesita una cadena de conexión que contiene información sensible, como el usuario y la contraseña.
El siguiente ejemplo genera un respaldo diario y lo cifra utilizando GPG:
Para restaurar el respaldo, primero se debe descifrar utilizando la contraseña correspondiente.
- Дата записи: 2026-10-17T02:41:10.775Z