En este post, compartiré mi experiencia desarrollando una solución en Google Cloud Platform (GCP) que automatiza la validación y procesamiento de archivos utilizando Cloud Functions, Cloud Storage y validación de firmas digitales.
🔹 El Problema: Procesamiento Seguro de Archivos
Un cliente necesitaba un sistema donde:
-
Al subir un archivo cifrado y comprimido a un bucket de Cloud Storage, se validara su autenticidad mediante una firma compartida entre emisor y receptor.
-
Si el archivo era válido, se descomprimía y se verificaba la integridad de los archivos internos usando SHA-256.
-
Solo los archivos que pasaran todas las validaciones serían procesados.
⚡ La Solución: Automatización con Cloud Functions
1️⃣ Trigger por Eventos de Cloud Storage
Configuré una Cloud Function activada por eventos de Cloud Storage (google.storage.object.finalize
), lo que permite ejecutar código cada vez que se sube un archivo.
Validación de Firma Compartida
El archivo ZIP incluía un archivo .signature
con una firma generada mediante un secreto compartido. Usé HMAC-SHA256 para asegurar que el archivo no fuera alterado.
import hmac
import hashlib
def validate_signature(secret_key, file_content, received_signature):
generated_signature = hmac.new(secret_key.encode(), file_content, hashlib.sha256).hexdigest()
return hmac.compare_digest(generated_signature, received_signature)
3️⃣ Descompresión y Validación SHA-256
Una vez validada la firma, el sistema descomprimía el archivo y verificaba cada archivo interno contra un hash predefinido.
import zipfile
import hashlib
def check_file_hash(file_path, expected_hash):
with open(file_path, "rb") as f:
file_data = f.read()
computed_hash = hashlib.sha256(file_data).hexdigest()
return computed_hash == expected_hash
4️⃣ Notificación y Manejo de Errores
Si alguna validación fallaba, el sistema enviaba una alerta por Pub/Sub o Correo Electrónico para notificar al administrador.
📊 Resultados
✅ Procesamiento automatizado y seguro sin intervención manual o humana.
✅ Reducción de errores por archivos corruptos o no autorizados.
✅ Escalabilidad gracias a Cloud Functions (pago por uso).
🚀 ¿Necesitas una Solución Similar?
Si buscas automatizar procesos en la nube con GCP, AWS o Azure, puedo ayudarte a diseñar e implementar una solución robusta y segura.
Comments are closed