🔐 Cómo cifrar y rotar claves con CSEK en Google Cloud
Robert Orozco

Robert Orozco @robertdev

About: Cloud Architect

Location:
Ecuador
Joined:
May 30, 2025

🔐 Cómo cifrar y rotar claves con CSEK en Google Cloud

Publish Date: May 31
0 0

¡Hola! 👋 En este post te mostraré lo sencillo que es cifrar un objeto utilizando CSEK (Customer-Supplied Encryption Key) en Google Cloud y cómo rotar las claves de manera segura para proteger tus datos sensibles.

🛡️ ¿Por qué cifrar tus objetos?
El cifrado es una práctica esencial para proteger información sensible. Cuando usas CSEK, tú eres el único responsable de la clave: si la pierdes, no podrás recuperar el archivo. Google no almacena ni tiene acceso a ella. Esto otorga máximo control, pero también conlleva mayor responsabilidad.

🔍 ¿Qué es CSEK?
CSEK (Customer-Supplied Encryption Key) es una modalidad de cifrado en Google Cloud donde tú proporcionas manualmente la clave con la que se cifran y descifran tus objetos, en lugar de usar claves gestionadas por Google o por Cloud KMS.

🔧 ¿Qué haremos en este laboratorio?

**1. Crear un bucket en GCP.

  1. Subir objetos cifrados usando CSEK.
  2. Rotar la clave de cifrado.
  3. Verificar cómo se comportan los objetos según la clave usada.**

¡Vamos paso a paso a ver cómo se hace! 🚀

1️⃣ Crear un bucket en GCP
Lo primero que necesitamos es un bucket de almacenamiento. Para crearlo en Google Cloud, sigue estos pasos:

Ve a Cloud Storage > Buckets > Crear bucket.

Configura las siguientes opciones:

  • Evitar acceso público: Desactiva esta opción si deseas permitir acceso externo (solo para fines de prueba).
  • Control de acceso: Selecciona Fine-grained para aplicar permisos a nivel de objeto.

Image description

📂 Bucket creado con éxito:

Image description

2️⃣ Interacción inicial con el bucket

Desde Cloud Shell, exportamos el nombre del bucket como variable:

export BUCKET_NAME_1=bucket3dc012
echo $BUCKET_NAME_1
Enter fullscreen mode Exit fullscreen mode

Descargamos un archivo para pruebas:

curl https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html > setup.html
Enter fullscreen mode Exit fullscreen mode

Creamos dos copias:

cp setup.html setup2.html
cp setup.html setup3.html
Enter fullscreen mode Exit fullscreen mode

3️⃣ Cifrado con CSEK

Primero, generamos una clave base64 de 256 bits:

python3 -c 'import base64; import os; print(base64.encodebytes(os.urandom(32)))'
Enter fullscreen mode Exit fullscreen mode

Image description

🔒 Guarda únicamente el contenido entre b' y \n' sin esos caracteres

A continuación, ejecutamos: gsutil config -n

Esto genera un archivo .boto. Dentro de ese archivo, busca la línea: encryption_key =

Y pega la clave generada.

📷 Configuración de clave en archivo .boto

Image description

Ahora subimos los archivos:

gsutil cp setup2.html gs://$BUCKET_NAME_1/
gsutil cp setup3.html gs://$BUCKET_NAME_1/
Enter fullscreen mode Exit fullscreen mode

📷 Archivos subidos con éxito

Image description

Si ahora intentas visualizar los archivos directamente desde la consola de GCP, verás que no es posible acceder a ellos. Esto es correcto, ya que están cifrados con tu CSEK.

📷 Acceso denegado por cifrado

Image description

4️⃣ Rotación de la clave

La rotación de claves es una práctica fundamental de seguridad. Para realizarla:

Genera una nueva clave:

python3 -c 'import base64; import os; print(base64.encodebytes(os.urandom(32)))'
Enter fullscreen mode Exit fullscreen mode

Copia la nueva clave en el campo Encryption Key del archivo .boto, sin borrar la clave original. Quedará así:

📷 Archivo .boto con dos claves configuradas

Image description

La nueva clave es la nueva clave de encriptacion mientras que la anterior se vuelve la clave de desencriptación.

Reescribe el archivo cifrado con la nueva clave:

gsutil rewrite -k gs://$BUCKET_NAME_1/setup2.html
📷 Rotación completada

Image description

Ahora que reescribimos el objeto comenta o elimina la antigua clave del archivo .boto.

📷 Clave original comentada

Image description

✅ Verificación final
Al intentar descargar setup2.html, funciona, porque fue reescrito con la nueva clave.

Image description

Al intentar descargar setup3.html, falla, ya que todavía requiere la clave original que eliminamos.

Image description

🧾 Conclusión
Este ejercicio práctico demuestra cómo funciona el cifrado con CSEK y la rotación de claves en Google Cloud. Esta técnica otorga el máximo control sobre la seguridad de tus datos, pero recuerda:

CONCLUSIÓN

⚠️ Si pierdes la clave, los datos se pierden para siempre.

La rotación periódica ayuda a mantener tus objetos protegidos ante posibles filtraciones, accesos no autorizados o malas prácticas de gestión de claves.

Comments 0 total

    Add comment