arrow_back

Usa Claves de encriptación proporcionadas por el cliente con Cloud Storage

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

Usa Claves de encriptación proporcionadas por el cliente con Cloud Storage

Lab 1 hora universal_currency_alt 5 créditos show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

Descripción general

Cloud Storage siempre encripta los datos del servidor con una clave de encriptación administrada por Google, antes de escribirlos en el disco, sin costo adicional. Como alternativa a una clave de encriptación del servidor administrada por Google, puedes elegir proporcionar tu propia clave AES-256, codificada en Base64 estándar. Esta clave se conoce como clave de encriptación proporcionada por el cliente.

En este lab, configurarás claves de encriptación proporcionadas por el cliente (CSEK) para Cloud Storage. Luego, los archivos se subirán a un bucket de almacenamiento. A continuación, generarás una clave de encriptación nueva y rotarás las CSEK.

Cloud Storage no almacenará tu clave en los servidores de Google de forma permanente, ni tampoco la administrará. En cambio, debes proporcionar tu clave para cada operación de Cloud Storage, y esta se borrará definitivamente de los servidores de Google una vez que se complete la operación. Cloud Storage almacena solo un hash criptográfico de la clave para que las solicitudes futuras puedan validarse en función del hash.

Tu clave no se puede recuperar de este hash, y este no se puede usar para desencriptar tus datos.

Objetivos

En este lab, aprenderás a realizar las siguientes tareas:

  • Configurar CSEK para Cloud Storage
  • Usar CSEK para encriptar archivos en Cloud Storage
  • Borrar archivos locales de Cloud Storage y verificar la encriptación
  • Rotar las claves de encriptación sin descargar y volver a subir datos

Configuración y requisitos

En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.

  1. Accede a Qwiklabs desde una ventana de incógnito.

  2. Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
    No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.

  3. Cuando esté listo, haga clic en Comenzar lab.

  4. Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.

  5. Haga clic en Abrir Google Console.

  6. Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
    Si usa otras credenciales, se generarán errores o incurrirá en cargos.

  7. Acepta las condiciones y omite la página de recursos de recuperación.

Tarea 1. Configura los recursos necesarios

En esta tarea, configurarás los recursos necesarios que se usarán durante el lab.

Crea una cuenta de servicio de IAM

Nota: En este lab, iniciarás una VM en Compute Engine y ejecutarás la mayoría del trabajo en esta VM. Una cuenta de servicio se creará, en primera instancia, con el objetivo de proporcionar los permisos necesarios a la VM para que pueda llevar a cabo el lab.
  1. En la consola de Google Cloud, selecciona menú de navegación > IAM y administración > Cuentas de servicio.
  2. Haz clic en Crear cuenta de servicio.
  3. Especifica el Nombre de la cuenta de servicio como cseklab.
  4. Haz clic en Crear y continuar.
  5. Especifica el Rol como Cloud Storage > Administrador de almacenamiento.
  6. Haz clic en Continuar.
  7. Haz clic en Listo.

Crea una VM de Compute Engine

  1. En la consola de Cloud, ve al menú de navegación > Compute Engine > Instancias de VM. Haz clic en Crear instancia.

  2. Especifica lo siguiente y deja los parámetros de configuración restantes con sus valores predeterminados:

  • Nombre: cseklab-vm
  • Región:
  • Zona:
  • Serie: E2
  • Tipo de máquina: e2-micro
  • Cuenta de servicio: La cuenta de servicio cseklab que se acaba de crear
  • Permisos de acceso: Selecciona Configurar acceso para cada API para Storage y, luego, selecciona Total en el menú desplegable
  1. Haz clic en Crear.
  2. Una vez que la VM se inicia, haz clic en el botón SSH para conectarte con ella.

Crea un bucket de Cloud Storage

Nota: Los nombres de los buckets deben ser únicos a nivel global. En este lab, usarás tu ID del proyecto de Google Cloud como parte del nombre del bucket para ayudar a garantizar que sea único. Tu ID del proyecto de Google Cloud se puede copiar del panel Detalles de la conexión en Qwiklabs.
  1. Desde la terminal de SSH conectada a cseklab-vm, ejecuta el siguiente comando para crear una variable de entorno que almacene el nombre del bucket:
export BUCKET_NAME=[PUT Google_Cloud_PROJECT_ID HERE]-csek
  1. Ingresa el siguiente comando para crear el bucket:
gsutil mb -l us gs://$BUCKET_NAME

Haz clic en Revisar mi progreso para verificar el objetivo. Configurar los recursos necesarios

Descarga un archivo de muestra mediante CURL y haz dos copias

  1. Ejecuta el siguiente comando para descargar un archivo de muestra (es un archivo HTML de la documentación de Hadoop que está disponible públicamente): Este archivo se copiará en el bucket de almacenamiento del lab:
curl \ https://hadoop.apache.org/docs/current/\ hadoop-project-dist/hadoop-common/\ ClusterSetup.html > setup.html
  1. Haz dos copias del archivo:
cp setup.html setup2.html cp setup.html setup3.html

Tarea 2. Configura las claves de encriptación proporcionadas por el cliente

En esta tarea, generarás una CESK, subirás el archivo a la consola de Cloud y, luego, borrarás la copia local.

Genera una CSEK

Nota: Cuando uses claves de encriptación proporcionadas por el cliente, dependerá de ti generar y administrar tus claves de encriptación. Debes proporcionar una clave a Cloud Storage que sea una cadena de 256 bits codificada en base64 estándar RFC 4648. Para este lab, generarás una clave con un número aleatorio.
  1. En la terminal de SSH cseklab-vm, ejecuta el siguiente comando para crear una clave:
openssl rand 32 > mykey.txt openssl base64 -in mykey.txt

Resultado de ejemplo:

tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=
  1. Copia el valor de la clave generada. Lo necesitarás para un paso posterior.

Modifica el archivo .boto

Nota: Los controles de encriptación están ubicados en un archivo de configuración de gsutil llamado .boto.
  1. Ejecuta el siguiente comando en la terminal de SSH para comprobar que exista el archivo .boto:
ls -al
  1. Si no ves un archivo .boto, ejecuta el siguiente comando para generarlo y ponerlo en la lista:
gsutil config -n ls -al
  1. Para editar el archivo .boto, ejecuta el siguiente comando:
nano .boto
  1. En el archivo .boto, localiza la línea con “#encryption_key=”. Para buscar en Nano, haz clic en el teclado ubicado en la parte superior derecha de la ventana de SSH, selecciona Ctrl + W y escribe #encrypt.

Ctrl+W en el teclado virtual

  1. Quita el comentario de la línea encryption_key. Para esto quita el carácter # y pega la clave que generaste antes.

Ejemplo:

Antes: # encryption_key= Después: encryption_key=tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=
  1. Presiona Ctrl + X para salir o Y si deseas guardar el archivo. Luego, presiona Intro para confirmar el nombre del archivo.

Sube los archivos (encriptados) y verifícalo en la consola de Cloud

  1. Ejecuta los siguientes comandos para subir dos archivos:
gsutil cp setup.html gs://$BUCKET_NAME gsutil cp setup2.html gs://$BUCKET_NAME
  1. Regresa a la consola de Cloud y visualiza el contenido del bucket de almacenamiento, seleccionaMenú de navegación > Cloud Storage, luego, haz clic en el bucket.
Nota: Los archivos setup.html y setup2.html se presentan encriptados por el cliente.

Haz clic en Revisar mi progreso para verificar el objetivo. Configurar las claves de encriptación proporcionadas por el cliente

Borra un archivo local, cópialo desde Cloud Storage y verifica la encriptación

  1. Borra el archivo local setup.html, ejecuta el siguiente comando:
rm setup.html
  1. Para volver a copiar el archivo desde el bucket, ejecuta el siguiente comando:
gsutil cp gs://$BUCKET_NAME/setup.html ./
  1. Visualiza el archivo para saber si pudo copiarse con el siguiente comando:
cat setup.html

Tarea 3. Rota las CSEK

En esta tarea, rotarás las CSEK. Para rotar las CSEK, debes cambiar el valor de configuración de encryption_key por un valor de configuración de decryption_key y, luego, usar un valor nuevo para encryption_key.

Luego, puedes usar el comando de reescritura para rotar las claves en la nube sin descargar y volver a subir los datos.

Genera otra CSEK y agrégala al archivo .boto

  1. En la terminal de SSH, ejecuta el siguiente comando para generar una clave nueva:
openssl rand 32 > mykey.txt openssl base64 -in mykey.txt
  1. Copia el valor de la clave que se generó desde el resultado del comando. La clave debe tener el formato tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=.

  2. Para abrir el archivo .boto, ejecuta el siguiente comando:

nano .boto
  1. Ubica la línea actual de encryption_key y márcala como comentario agregando el carácter # al comienzo de la línea.
  2. Agrega una línea nueva con encryption_key= y pega el valor de la clave nueva.

Resultado:

Antes: encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg= Después: # encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg= encryption_key=HbFK4I8CaStcvKKIx6aNpdTse0kTsfZNUjFpM+YUEjY=
  1. Para quitar el comentario de la línea decryption_key1=, quita el carácter #.
  2. Copia el valor del encryption_key original de la línea que se marcó como comentario y pégalo como el valor de la línea decryption_key1.

Resultado:

Antes: # encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg= encryption_key=HbFK4I8CaStcvKKIx6aNpdTse0kTsfZNUjFpM+YUEjY== # decryption_key1= Después: # encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg= encryption_key=HbFK4I8CaStcvKKIx6aNpdTse0kTsfZNUjFpM+YUEjY== decryption_key1=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg=

La línea encryption_key original que está marcada como comentario también puede borrarse por completo del archivo.

  1. Presiona Ctrl + X para salir o Y si deseas guardar el archivo. Luego, presiona Intro para confirmar el nombre del archivo.

Encripta un archivo con la clave nueva y desencripta un archivo con la clave antigua

  1. Sube un archivo nuevo al bucket. Este archivo estará encriptado con la clave nueva:
gsutil cp setup3.html gs://$BUCKET_NAME Nota: En este punto, setup.html y setup2.html están encriptados con la clave original y setup3.html está encriptado con la clave nueva.
  1. Borra los archivos locales setup2.html y setup3.html con los siguientes comandos:
rm setup2.html rm setup3.html
  1. Para volver a copiar los archivos del bucket de almacenamiento, ejecuta los siguientes comandos:
gsutil cp gs://$BUCKET_NAME/setup2.html ./ gsutil cp gs://$BUCKET_NAME/setup3.html ./
  1. Visualiza el archivo encriptado para saber si pudo copiarse con el siguiente comando:
cat setup2.html cat setup3.html Nota: Este lab demuestra cómo las claves nuevas pueden generarse para datos nuevos, pero ten en cuenta que los archivos encriptados con las claves más antiguas aún se pueden desencriptar.

Reescribe la clave del archivo 1 y marca como comentario la clave de desencriptación antigua

Volver a escribir un archivo encriptado provoca que el archivo se desencripte con la decryption_key1 que estableciste con anterioridad y encripta el archivo con la encryption_key nueva.

  1. Ejecuta el siguiente comando para volver a escribir setup.html
gsutil rewrite -k gs://$BUCKET_NAME/setup.html Nota: En este punto, setup.html se reescribió con la nueva clave de encriptación y setup3.html también se encripta con la clave nueva. El archivo setup2.html sigue encriptado con la clave original para que puedas ver qué sucede si no rotas las claves adecuadamente.
  1. Abre el archivo .boto con el siguiente comando:
nano .boto
  1. Marca como comentario la línea decryption_key1 actual y vuelve a agregar el carácter #.

  2. Presiona Ctrl + X para salir o Y si deseas guardar el archivo. Luego, presiona Intro para confirmar el nombre del archivo.

  3. Borra los tres archivos locales con el siguiente comando:

rm setup*.html
  1. Descarga setup.html y setup3.html (ambos encriptados con la clave nueva) con los siguientes comandos:
gsutil cp gs://$BUCKET_NAME/setup.html ./ gsutil cp gs://$BUCKET_NAME/setup3.html ./
  1. Visualiza los archivos encriptados con los siguientes comandos para saber si se realizó el proceso correctamente:
cat setup.html cat setup3.html
  1. Intenta descargar setup2.html (encriptado con la clave original) con el siguiente comando:
gsutil cp gs://$BUCKET_NAME/setup2.html ./ Nota: ¿Qué sucedió? setup2.html no se reescribió con la clave nueva, por lo que ya no puede desencriptarse, y la copia falló.

Rotaste las claves CSEK correctamente.

¡Felicitaciones!

En este lab, realizaste las siguientes tareas:

  • Configuraste CSEK para Cloud Storage.
  • Usaste CSEK para encriptar archivos en Cloud Storage.
  • Borraste archivos locales de Cloud Storage y comprobaste la encriptación.
  • Rotaste las claves de encriptación sin tener que descargar y volver a subir los datos.

Finalice su lab

Cuando haya completado el lab, haga clic en Finalizar lab. Google Cloud Skills Boost quitará los recursos que usó y limpiará la cuenta.

Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Neutral
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.

Copyright 2020 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.