arrow_back

Defiende el almacenamiento en caché perimetral con Cloud Armor

Acceder Unirse
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

Defiende el almacenamiento en caché perimetral con Cloud Armor

Lab 1 hora universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

GSP878

Descripción general

Google Cloud Armor y sus políticas de seguridad perimetral te permiten restringir el acceso a objetos almacenados en caché en Cloud CDN (red de distribución de contenidos) y Cloud Storage. Las políticas de seguridad perimetral se implementan y se aplican en el perímetro más externo de la red de Google, más arriba de donde se encuentra la caché de Cloud CDN. Las razones para hacer esto incluyen garantizar que tus usuarios no accedan a objetos en buckets de almacenamiento desde ubicaciones geográficas restringidas, o asegurarse de que tu distribución de medios esté filtrando según las ubicaciones geográficas para las que tienes licencia.

En este lab, crearás un bucket de Google Cloud Storage, subirás una imagen a él, lo vincularás a un balanceador de cargas y, luego, habilitarás políticas de seguridad perimetrales de Cloud CDN y Cloud Armor en él.

Qué aprenderás

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

  • Configurar un bucket de Cloud Storage con contenido que se puede almacenar en caché
  • Crear una política de seguridad perimetral para proteger el contenido
  • Validar que la política de seguridad perimetral esté funcionando como se espera

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este 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.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón Abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia Cuenta de Google podría generar cargos adicionales.
  7. Haga clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para ver un menú con una lista de productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda. Ícono del menú de navegación

Antes de comenzar

  • En Cloud Shell, configura tu ID del proyecto y crea una variable de entorno para él:
export PROJECT_ID=$(gcloud config get-value project) echo $PROJECT_ID gcloud config set project $PROJECT_ID

Tarea 1. Crea un bucket de Cloud Storage y sube un objeto

El bucket de Cloud Storage será la fuente de origen para Cloud CDN.

  1. Ve al menú de navegación (Menú de navegación) de la consola > Cloud Storage > Buckets.

  2. Para crear un nuevo bucket de Cloud Storage, haz clic en CREAR.

  3. Establece el nombre del bucket como -bucket .

  4. Haz clic en Continuar.

  5. En Tipo de ubicación, selecciona Región y elige .

  6. Haz clic en Continuar.

  7. La clase de almacenamiento predeterminada para tu bucket es Estándar. Haz clic en Continuar.

  8. Desmarca la casilla de verificación Aplicar la prevención de acceso público a este bucket debajo de Impedir el acceso público.

  9. Elige Detallado en Control de acceso.

  10. Haz clic en Continuar.

  11. Haz clic en Crear.

Eso es todo. Acabas de crear un bucket de Cloud Storage.

Sube un objeto al bucket

Ahora, sube un objeto al bucket. Lo usarás más tarde. De forma predeterminada, los buckets de Cloud Storage son privados. Como parte de este lab, pondrás el objeto a disposición de Internet.

  1. Ejecuta el siguiente comando en Cloud Shell para descargar una imagen en Cloud Shell. Se usa una imagen de la página principal de Google para este lab.
wget --output-document google.png https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
  1. Usa el comando gsutil cp para subir la imagen de Cloud Shell al bucket que creaste:
gsutil cp google.png gs://{{{project_0.startup_script.project_id|Bucket Name}}}
  1. Quita la imagen descargada de Cloud Shell:
rm google.png
  1. Localiza el objeto que subiste al bucket, para ello, navega a Cloud Storage > Buckets > .

  2. Ahora, haz clic en los tres puntos en el lado derecho del objeto que subiste y haz clic en Editar acceso.

  3. Haz clic en Agregar entrada y establece la entidad como Pública desde la lista desplegable.

  4. Haz clic en Guardar.

Página para editar el acceso, en la que se enumeran las entidades y se muestran los botones Guardar y Cancelar

Haz clic en Revisar mi progreso para verificar el objetivo. Crear un bucket de Cloud Storage y subir un objeto

Tarea 2. Crea un balanceador de cargas

Cloud CDN y Cloud Armor son componentes que se pueden asociar al Cloud Load Balancing global de Google. En esta sección, crearás un balanceador de cargas HTTP.

  1. Navega a Redes > Servicios de red > Balanceo de cargas.
  2. Haz clic en + CREAR BALANCEADOR DE CARGAS.
  3. En Tipo de balanceador de cargas, selecciona Balanceador de cargas de aplicaciones (HTTP/HTTPS) y haz clic en SIGUIENTE.
  4. En Orientado al público o para uso interno, selecciona Orientado al público (externo) y haz clic en SIGUIENTE.
  5. En Implementación global o de una sola región, selecciona Ideal para cargas de trabajo globales y haz clic en SIGUIENTE.
  6. En Generación de balanceadores de cargas, selecciona Balanceador de cargas de aplicaciones externo global y haz clic en SIGUIENTE.
  7. Haz clic en el botón CONFIGURAR.
  8. Asigna el nombre edge-cache-lb al balanceador de cargas.

Crea la configuración de frontend

Sigue estos pasos para crear la configuración de frontend:

  1. Haz clic en Configuración de frontend.

  2. Para la configuración de frontend, usa HTTP (aunque HTTPS también funciona si tienes un certificado) y una dirección IP efímera, además, asegúrate de tener seleccionada la red de nivel Premium. Esa es la configuración predeterminada.

  3. Haz clic en Listo.

Página de configuración de frontend, que incluye la descripción del balanceador de cargas

Crea la configuración de backend

Sigue estos pasos para crear la configuración de backend:

  1. Haz clic en Configuración de backend.

  2. En Servicios y buckets de backend, haz clic en Crear un bucket de backend.

  3. Establece el Nombre del bucket de backend como lb-backend-bucket.

  4. En el siguiente campo, selecciona el bucket de Cloud Storage que creaste antes, para ello, haz clic en el botón Explorar.

  5. Deja todos los demás valores con su configuración predeterminada.

  6. Haz clic en Crear.

Crea las reglas de host y de ruta

Sigue estos pasos para crear las reglas de host y de ruta:

  1. Haz clic en Reglas de enrutamiento en el lado izquierdo.

  2. Selecciona Regla simple de host y ruta de acceso en Modo para enviar solicitudes al bucket. Esta es la opción predeterminada.

Revisa y crea el balanceador de cargas HTTP

Sigue estos pasos para revisar y crear el balanceador de cargas HTTP:

  1. Haz clic en Revisar y finalizar.
  2. Revisa los Servicios de backend y el Frontend.
  3. Haz clic en Crear.

Obtén la IP del balanceador de cargas

Sigue estos pasos para obtener la IP del balanceador de cargas en la consola:

  • Haz clic en el nombre del balanceador de cargas en la lista de balanceadores de cargas del proyecto. Anota la dirección IPv4 del balanceador de cargas para la siguiente tarea. Refiérete a ella como [LOAD_BALANCER_IP].

La página Detalles, que incluye la dirección IP:Puerto destacada

Consulta el balanceador de cargas

Después de unos minutos, consulta en el balanceador de cargas por el objeto que subiste. Necesitarás la dirección IP del balanceador de cargas y el nombre de la imagen.

  1. Ejecuta este comando en Cloud Shell y reemplaza LOAD_BALANCER_IP por la dirección IPv4 del balanceador de cargas:
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png Nota: Puedes tardar hasta 5 minutos en acceder al balanceador de cargas HTTP.

Resultado:

student-cloudshell% curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 200 OK < X-GUploader-UploadID: ADPycdtoILI76KVsvBvdVGvSfzaxys1m3zYqCepBrmJxAI48ni24cWCRIdNu-53PX3DS6iycxp6xwFbMpwtcHHZQUQmEBxAgng < Expires: Mon, 13 Dec 2021 22:58:26 GMT < Date: Mon, 13 Dec 2021 21:58:26 GMT < Cache-Control: public, max-age=3600 < Last-Modified: Mon, 13 Dec 2021 21:45:57 GMT < ETag: "8f9327db2597fa57d2f42b4a6c5a9855" < x-goog-generation: 1639431957957903 < x-goog-metageneration: 2 < x-goog-stored-content-encoding: identity < x-goog-stored-content-length: 5969 < Content-Type: image/png < x-goog-hash: crc32c=TeiHTA== < x-goog-hash: md5=j5Mn2yWX+lfS9CtKbFqYVQ== < x-goog-storage-class: STANDARD < Accept-Ranges: bytes < Content-Length: 5969 < Server: UploadServer
  1. Ejecuta algunas consultas con este comando:
for i in `seq 1 50`; do curl http://LOAD_BALANCER_IP/google.png; done

Confirma el contenido entregado por Cloud CDN

  • Valida que tu contenido se está entregando desde la CDN a través de la CDN o la supervisión del balanceo de cargas, para ello, navega a Servicios de red > Cloud CDN.

Página de resumen de Cloud CDN, con un resultado completado

Deberías obtener una tasa de aciertos cercana a un 100%.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear un balanceador de cargas

Tarea 3. Borra el objeto del bucket de Cloud Storage

Ahora que la caché se completó, borra el objeto del bucket. Esto reforzará que estás aplicando la política a la caché y no al backend.

  1. Navega a Cloud Storage > Buckets > -bucket > Objetos.

  2. Selecciona el objeto y haz clic en el botón Borrar en la parte superior para borrarlo.

  3. Haz clic en Borrar en el mensaje.

Haz clic en Revisar mi progreso para verificar el objetivo. Borrar el objeto del bucket de Cloud Storage

Tarea 4. Crea una política de seguridad perimetral

Las políticas de Cloud Armor se comprueban fuera del balanceador de cargas HTTP. Una vez que se implemente la política de Cloud Armor, puedes asociarla con uno o más servicios de backend del balanceador de cargas HTTP o recursos de bucket, que se denominan Destinos.

  1. Navega a Seguridad de red > Políticas de Cloud Armor y haz clic en Crear política.
  1. Establece los siguientes valores y deja el resto con la configuración predeterminada, luego, haz clic en Próximo paso:
Propiedad Valor (escribe el valor o selecciona la opción como se especifica)
Nombre edge-security-policy
Tipo de política Política de seguridad perimetral
Acción de la regla predeterminada Rechazar
  1. En la sección Aplica políticas a los objetivos, haz clic en Agregar destino y establece los siguientes valores:
Propiedad Valor
Tipo 1 Bucket de backend (balanceador de cargas de aplicaciones externo)
Destino del bucket de backend 1 lb-backend-bucket
  1. Haz clic en Listo.

  2. Haz clic en Crear política.

Valida la política de seguridad perimetral

Ahora que creaste una política de seguridad perimetral frente al bucket de backend, valida que funciona según lo esperado.

Comprueba la política de seguridad

Después de unos minutos, puedes comprobar que se esté ejecutando la política de Cloud Armor.

En la línea de comandos, ejecuta el siguiente comando, que genera un error 403:

curl -svo /dev/null http://LOAD_BALANCER_IP/google.png

El error 403 ocurre cuando no tienes permiso para acceder a una página web o un elemento en un servidor web.

Resultado:

curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 403 Forbidden < X-GUploader-UploadID: ADPycdtS6FtJOGIsiWYDrAAE8VFeQuNutcvbGoQe2t8EZxsuspVtmCjyiTv_P3CNktroHMOGFXkTCfG-Jj-rUO60ZGPpEbpqcw < Content-Type: application/xml; charset=UTF-8 < Content-Length: 111 < Date: Mon, 13 Dec 2021 23:09:35 GMT < Expires: Mon, 13 Dec 2021 23:09:35 GMT < Cache-Control: private, max-age=0 < Server: UploadServer

Investiga los registros

A continuación, comprueba los registros para ver la política de seguridad perimetral aplicada.

  1. Navega a Observabilidad > Logging > Explorador de registros.

  2. Ingresa el siguiente fragmento en el cuadro de consulta y haz clic en Ejecutar consulta:

resource.type:(http_load_balancer) AND jsonPayload.@type="type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" AND severity>=WARNING
  1. Observa la respuesta 403 y la política de seguridad aplicada.

La página Consulta, que incluye el mensaje de respuesta 403 destacado y su política de seguridad

Haz clic en Revisar mi progreso para verificar el objetivo. Crear la política de seguridad perimetral para Cloud Armor

Quita la política de seguridad

Para comprobar que el objeto se está entregando desde la caché de la CDN, quita la política de seguridad de Cloud Armor y consulta el objeto. El objeto de origen se quitó de Cloud Storage, lo que demuestra que el objeto se está entregando desde la caché perimetral.

  1. Navega a Seguridad de red > Políticas de Cloud Armor > edge-security-policy > Destinos.
  2. Selecciona el destino lb-backend-bucket y haz clic en Quitar para eliminar el bucket de destino. Confirma la eliminación.
  1. Espera unos minutos y, luego, envía otro curl al recurso en el bucket de Cloud Storage:
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png

Esta vez, obtendrás una respuesta 200. La página web funciona como corresponde.

Resultado:

student-cloudshell% curl -svo /dev/null http://34.98.81.123/google.png Trying 34.98.81.123... TCP_NODELAY set Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) GET /google.png HTTP/1.1 Host: YOUR_IP User-Agent: curl/7.64.1 Accept: */* HTTP/1.1 200 OK X-GUploader-UploadID: ADPycdtI7f49P3MSuZSZ8vl6RwfwmnIDJ59EeSKp7UPvLPawdaiRHXiNWLtseQTxUxceWOvSLvpYmT3pWVkV4qeIP7M Date: Mon, 13 Dec 2021 23:06:46 GMT Last-Modified: Mon, 13 Dec 2021 21:45:57 GMT ETag: "8f9327db2597fa57d2f42b4a6c5a9855" x-goog-generation: 1639431957957903 x-goog-metageneration: 2 x-goog-stored-content-encoding: identity x-goog-stored-content-length: 5969 Content-Type: image/png x-goog-hash: crc32c=TeiHTA== x-goog-hash: md5=j5Mn2yWX+lfS9CtKbFqYVQ== x-goog-storage-class: STANDARD Accept-Ranges: bytes Content-Length: 5969 Server: UploadServer Age: 1621 Cache-Control: public,max-age=3600 { [775 bytes data] Connection #0 to host 34.98.81.123 left intact Closing connection 0

Inténtalo un par de veces más y comprueba si obtienes un código de estado 403.

¡Felicitaciones!

Creaste correctamente un bucket de Cloud Storage, subiste una imagen a él, lo vinculaste a un balanceador de cargas y, luego, habilitaste Cloud CDN y políticas de seguridad perimetrales en él.

Última actualización del manual: 16 de julio de 2024

Prueba más reciente del lab: 16 de julio de 2024

Copyright 2024 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.

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