Asegurar datos es una prioridad principal para cualquier organización, y el cifrado es una de las formas más efectivas de proteger los datos. Pero, ¿cómo exactamente? Google Cloud Platform (GCP) ofrece un servicio de gestión de claves llamado Google Key Management Service (KMS), que te permite crear y gestionar rápidamente claves de cifrado.
En este tutorial, aprenderás cómo crear y utilizar una clave en GCP KMS. También repasarás algunos conceptos importantes relacionados con la gestión de claves, como claves, anillos de claves y versiones de claves.
¿Listo? ¡Continúa leyendo y lleva la seguridad de tus datos al siguiente nivel!
Requisitos previos
Este tutorial será una demostración práctica. Para seguirlo, asegúrate de tener una cuenta de GCP con facturación activa, aunque una prueba gratuita sería suficiente.
A Google Cloud Project is a collection of resources you create and manage in GCP. Note that you should create separate projects for each of your applications. Doing so lets you efficiently manage the resources for each application. In the end, you can delete all the resources associated with a project, which is helpful for clean-up.
Para crear un nuevo proyecto en Google Cloud:
1. Abre tu navegador web favorito e inicia sesión en la Consola de GCP. Al igual que la consola de AWS, la consola de GCP es una interfaz basada en web para administrar tus recursos en Google Cloud.
2. En tu consola de GCP, navega hasta la página de Administrar recursos, donde puedes ver y gestionar todos tus proyectos existentes.
3. A continuación, haz clic en el botón CREAR PROYECTO para crear un nuevo proyecto.

Por último, configura los siguientes ajustes para tu nuevo proyecto y haz clic en CREAR para crearlo.
- Nombre del proyecto – Ingresa un nombre para tu proyecto, que no necesita ser único y puede cambiarse más tarde. La elección de este tutorial para el nombre del proyecto es gcp-kms-demo.
- Ubicación – Selecciona la organización principal o la carpeta donde deseas que se cree este proyecto. Tu proyecto recién creado será el principal. Pero puedes omitir este campo si no tienes una organización.
Es posible que el campo de Ubicación no aparezca si utilizas una cuenta de prueba.

Si tienes éxito, verás tu proyecto de Google Cloud recién creado en la lista, como se muestra a continuación.

Habilitar la API de Cloud KMS para el proyecto de Google Cloud
Acabas de crear tu primer proyecto en la nube de Google, y normalmente no puedes dejarlo sin protección. ¡No te preocupes! La API de Cloud KMS es un conjunto de APIs de cifrado proporcionadas por Google que puedes utilizar para proteger tus datos.
Para utilizar la API de Cloud KMS, necesitas habilitarla para tu proyecto:
1. Ve a la página de selector de proyectos de Google y selecciona tu proyecto de Google Cloud (gcp-kms-demo).

2. A continuación, ve a la página Habilitar acceso a la API y haz clic en SIGUIENTE para confirmar la habilitación de la API para el proyecto seleccionado.

3. Ahora, haz clic en HABILITAR para habilitar la API de Cloud KMS.

En este punto, la API de Cloud KMS está habilitada para tu proyecto. Ahora puedes empezar a usar la API de Cloud KSM para crear y gestionar claves de encriptación.

Comenzando con Cloud Shell para Crear Claves y Anillos de Clave
Al habilitar la API de Cloud KMS, te preparas para crear claves y anillos de clave para encriptar y desencriptar tus datos. Las claves y los anillos de clave son conceptos fundamentales en Cloud KMS.
Key | A key is an encryption key stored in a keyring that you can use to encrypt and decrypt your data. Each key has a name, and the name must be unique within the keyring. You can use IAM ( Identity and Access Management) policies to control who has access to keys. |
Keyring | A keyring is a container in Cloud KMS that holds a set of keys. You can think of the keyring as a folder on your computer that contains many files. But in essence, a keyring holds a set of keys in a specific Cloud KMS location. |
Pero antes de crear claves y anillos de clave, primero debes iniciar el Cloud Shell. El Cloud Shell es una interfaz de línea de comandos gratuita e interactiva que puedes utilizar para ejecutar comandos en la Plataforma de Google Cloud sin instalar ninguna herramienta en tu máquina.
1. En la Consola de GCP, haz clic en el botón Activar Cloud Shell (arriba a la derecha), como se muestra a continuación, para iniciar el Cloud Shell.

A Cloud Shell session initializes, as shown below (at the bottom of the page), where you can run commands.

2. A continuación, ejecuta el siguiente comando gcloud en el Cloud Shell para crear un nuevo anillo de clave (keyring) llamado kms-demo-keyring en la ubicación global.
–location “global”
Cuando se solicite, haz clic en AUTORIZAR para continuar ejecutando el comando.

Esta ventana aparece la primera vez que ejecutas el comando gcloud en Cloud Shell, solicitándote autorizar la herramienta gcloud para acceder a la API de KSM.

Como se muestra a continuación, no hay mensajes de salida cuando la llavero se crea correctamente.
Utiliza las Claves de Encriptación como un Experto con AWS Key Management
Ten en cuenta que la ubicación (global) debe ser la misma que configuraste para el llavero.
–location “global” \
–keyring “kms-demo-keyring” \

–purpose “encryption”
Cada vez que creas o rotas una clave, Cloud KMS crea una nueva versión de la clave. Esta función te permite retroceder fácilmente a una versión anterior si es necesario.
PURPOSE | ENCRYPT_DECRYPT | Indicates the purpose of the key (encryption and decryption). |
ALGORITHM | GOOGLE_SYMMETRIC_ENCRYPTION | Indicates the key uses Google Symmetric Encryption, the default algorithm for Cloud KMS keys. |
PROTECTION_LEVEL | SOFTWARE | Indicates the key is software-protected. |
LABELS | You can add labels to keys to categorize them or to add additional information. | |
PRIMARY ID | 1 | Indicates the key is the primary key for the keyring, which is what Cloud KMS uses by default when you do not specify a key.
Note that you can have only one primary key per keyring. |
PRIMARY STATE | ENABLED | Shows the current status of the key. The ENABLED state indicates the key can be used for its specified purpose. |

Al igual que al crear un llavero, no hay mensajes de salida cuando la clave se crea correctamente.
Pero en este punto, ya tienes un llavero y una clave que puedes utilizar para encriptar y desencriptar tus datos.
4. Ahora, ejecuta el siguiente comando para listar las claves en un –keyring (kms-demo-keyring).
Verás una salida similar a la captura de pantalla a continuación con la siguiente información:
Cifrado y Descifrado de Datos con GCP KMS

1. Ejecuta el siguiente comando, que no proporciona salida, pero crea un archivo de texto (gcp-kms-demo.txt) con algunos textos para cifrar.
2. Luego, ejecuta cada comando a continuación para listar (ls) el archivo de texto (gcp-kms-demo.txt) y ver (cat) su contenido para verificar los datos.

# Lista el archivo de texto
# Ver el contenido del archivo de texto
3. Una vez verificado, ejecuta el siguiente comando para cifrar los datos en tu archivo (gcp-kms-demo.txt) usando tu clave (kms-demo-key01). Los datos cifrados luego se almacenarán en un nuevo archivo llamado gcp-kms-demo.txt.encrypted.

–location “global” \
–keyring “kms-demo-keyring” \

–key “kms-demo-key01” \
–plaintext-file ./gcp-kms-demo.txt \

–ciphertext-file ./gcp-kms-demo.txt.encrypted
4. Ahora, ejecuta el siguiente comando para intentar ver los datos del archivo cifrado (gcp-kms-demo.txt.encrypted).
Verás símbolos rotos, extraños e ilegibles, como se muestra a continuación. Este resultado indica que el archivo fue cifrado correctamente.
Debes almacenar este archivo cifrado en un lugar seguro. Por ejemplo, puedes almacenar varias copias en AWS S3, GCP Cloud Storage o Azure Blob Storage. Google Cloud no guarda la versión de texto sin formato de tus datos. Así que si pierdes el archivo cifrado, será imposible descifrar el archivo para recuperar los datos originales.

Cómo Subir un Archivo a S3 con AWS CLI
5. Una vez cifrado, ejecuta el siguiente comando para descifrar tus datos (gcp-kms-demo.txt.encrypted) usando la misma clave (kms-demo-key01). Pero esta vez, los datos descifrados se almacenan en un nuevo archivo llamado gcp-kms-demo.txt.decrypted.
Al igual que con el cifrado, este comando no proporciona una salida, pero verificarás el descifrado en el siguiente paso.
–location “global” \
–keyring “kms-demo-keyring” \

–key “kms-demo-key01” \

–ciphertext-file ./gcp-kms-demo.txt.encrypted \
–plaintext-file ./gcp-kms-demo.txt.decrypted

6. Por último, ejecuta el siguiente comando para ver (cat) el archivo descifrado (gcp-kms-demo.txt.decrypted) y verificar que los datos se hayan descifrado correctamente.
A continuación, puedes ver los datos originales que guardaste en el archivo de texto. ¡Felicidades! Has logrado cifrar y descifrar datos exitosamente utilizando Google Cloud KMS.
Limpieza de Recursos de Google Cloud