GCP Cloud functinos

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:

  1. 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.

  2. Si el archivo era válido, se descomprimía y se verificaba la integridad de los archivos internos usando SHA-256.

  3. 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.

📩 ¡Contáctame y hablemos de tu proyecto!

Tags

Comments are closed