Automatización y recuperación de respaldos PostgreSQL mediante GitHub Actions
说明与用途
使用 GitHub Actions 自动化 PostgreSQL 备份,使用 GPG 加密,并在 Render 上部署 BackupManager 应用。
问题
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