Instrucciones y requisitos de configuración del lab
Protege tu cuenta y tu progreso. Usa siempre una ventana de navegador privada y las credenciales del lab para ejecutarlo.

Seguridad de redes: Bloqueo geográfico de Cloud Armor I

Lab 30 minutos universal_currency_alt 5 créditos show_chart Avanzado
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Este contenido aún no está optimizado para dispositivos móviles.
Para obtener la mejor experiencia, visítanos en una computadora de escritorio con un vínculo que te enviaremos por correo electrónico.

gem-netsec-cloud-armor

Labs de autoaprendizaje de Google Cloud

Active Google Cloud Shell

Google Cloud Shell es una máquina virtual que cuenta con herramientas de desarrollo. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Google Cloud Shell proporciona acceso de línea de comandos a sus recursos de GCP.

  1. En GCP Console, en la barra de herramientas superior derecha, haga clic en el botón Abrir Cloud Shell.

    Ícono de Cloud Shell

  2. Haga clic en Continue (Continuar):

    cloudshell_continue

Toma unos minutos aprovisionar y conectarse con el entorno. Cuando está conectado, ya está autenticado y el proyecto está configurado en su PROJECT_ID . Por ejemplo:

Terminal de Cloud Shell

gcloud es la herramienta de línea de comandos para Google Cloud Platform. Viene preinstalada en Cloud Shell y es compatible con la función “tab-completion”.

Puede mostrar el nombre de la cuenta activa con este comando:

gcloud auth list

Resultado:

ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
    $ gcloud config set account `ACCOUNT`
	

Puede mostrar el ID del proyecto con este comando:

gcloud config list project
	

Resultado:

[core]
project = <project_ID>
	

Resultado de ejemplo:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

Descripción general

En este lab, explorarás las capacidades de bloqueo geográfico de Cloud Armor. Crearás una política de seguridad de Cloud Armor y aplicarás reglas para denegar y permitir el tráfico según la ubicación geográfica para observar el comportamiento de Cloud Armor. Este lab proporciona experiencia práctica para proteger tus aplicaciones de Google Cloud con Cloud Armor.

Tarea 1: Configuración inicial

En esta tarea, configurarás el entorno, lo que incluye habilitar las APIs necesarias y crear un servicio de backend.

  1. Configura el ID del proyecto.

    gcloud config set project {{{ project_0.project_id | "PROJECT_ID" }}} Nota:
    Este comando configura tu proyecto activo. Todos los comandos "gcloud" posteriores se ejecutarán en este proyecto.
  2. Configura tu región predeterminada como .

    gcloud config set compute/region {{{ project_0.default_region | "REGION" }}} Nota:
    Este comando configura la región de procesamiento predeterminada. Los recursos se crearán en esta región.
  3. Configura la zona predeterminada como :

    gcloud config set compute/zone {{{ project_0.default_zone | "ZONE" }}} Nota:
    Este comando configura la zona de procesamiento predeterminada. Los recursos se crearán en esta zona dentro de la región especificada.
  4. Habilita las APIs necesarias.

    gcloud services enable compute.googleapis.com container.googleapis.com iap.googleapis.com Nota:
    Este comando habilita las APIs de Compute Engine, Identity-Aware Proxy y Kubernetes Engine, que son necesarias para este lab.

Tarea 2: Crea la red y la subred de VPC

Crea una red de VPC llamada test-vpc con las subredes test-subnet-us y test-subnet-eu. Esta VPC alojará las instancias que se usan para las pruebas.

  1. Crea la red de VPC test-vpc.

    gcloud compute networks create test-vpc --subnet-mode=custom Nota:
    Este comando crea una nueva red de VPC con el modo de subred personalizada, lo que proporciona flexibilidad para definir subredes.
  2. Crea una subred test-subnet-us en la red test-vpc dentro de la región especificada. Usa el rango de IP 10.10.10.0/24.

    gcloud compute networks subnets create test-subnet-us --network=test-vpc --region={{{ project_0.default_region | "REGION" }}} --range=10.10.10.0/24 Nota:
    Este comando crea una subred en la red de VPC especificada con el rango de direcciones IP "10.10.10.0/24".
  3. Crea una subred test-subnet-eu en la red test-vpc dentro de la región europe-west1. Usa el rango de IP 10.20.20.0/24.

    gcloud compute networks subnets create test-subnet-eu \ --network=test-vpc \ --region=europe-west1 \ --range=10.20.20.0/24 Nota:
    Este comando crea una subred en la red de VPC especificada con el rango de direcciones IP "10.20.20.0/24".
  4. Agrega una regla de firewall para el acceso a IAP.

    gcloud compute firewall-rules create allow-iap-ssh \ --direction=INGRESS \ --priority=1000 \ --network=test-vpc \ --action=ALLOW \ --rules=tcp:22 \ --source-ranges=35.235.240.0/20 \ --target-tags=iap-gce Nota:
    Este comando crea una regla de firewall para permitir el acceso de IAP a las instancias con la etiqueta "iap-gce".
  5. Crea una regla de firewall para permitir el tráfico HTTP al backend.

    gcloud compute firewall-rules create allow-http \ --direction=INGRESS \ --priority=1500 \ --network=test-vpc \ --allow=tcp:80,tcp:443 \ --source-ranges=0.0.0.0/0 \ --target-tags=http-server,https-server Nota:
    Este comando crea una regla de firewall que permite el tráfico HTTP y HTTPS desde cualquier origen a las instancias con las etiquetas "http-server" y "https-server".

Tarea 3: Implementa un servicio de backend con verificaciones de estado

En esta tarea, implementarás verificaciones de estado y crearás un servicio de backend.

  1. Crea una verificación de estado.

    gcloud compute health-checks create http health-check-http \ --port=80 Nota:
    Este comando crea una verificación de estado HTTP en el puerto 80.
  2. Crea un servicio de backend.

    gcloud compute backend-services create backend-service \ --health-checks=health-check-http \ --global Nota:
    Este comando crea un servicio de backend global con la verificación de estado creada en el paso anterior.

Tarea 4: Crea la plantilla de instancias y el grupo de instancias administrado

Primero, crea una plantilla de instancias, que es como un plano para tus VMs. Luego, usa esta plantilla para crear un grupo de instancias administrado (MIG). El MIG gestionará automáticamente las VMs y proporcionará capacidades de reparación y ajuste de escala automáticos.

  1. Crea una plantilla de instancias.

    gcloud compute instance-templates create backend-template \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --subnet=test-subnet-us \ --tags=http-server,https-server,iap-gce \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install -y apache2 php libapache2-mod-php a2ensite default-ssl a2enmod ssl systemctl restart apache2 rm /var/www/html/index.html echo "

    Cadena de consulta:

    " > /var/www/html/index.php systemctl restart apache2'
    Nota:
    Este comando crea una plantilla de instancias que define la configuración de las VMs del backend.
  2. Crea un grupo de instancias administrado.

    gcloud compute instance-groups managed create backend-mig \ --base-instance-name=backend-vm \ --size=2 \ --template=backend-template \ --zone={{{ project_0.default_zone | "ZONE" }}} Nota:
    Este comando crea un grupo de instancias administrado (MIG) con un tamaño inicial de 2 VMs.
  3. Agrega el grupo de instancias administrado al servicio de backend.

    gcloud compute backend-services add-backend backend-service \ --instance-group=backend-mig \ --instance-group-zone={{{ project_0.default_zone | "ZONE" }}} \ --global Nota:
    Este comando agrega el grupo de instancias administrado como backend al "backend-service".
  4. Crea una verificación de estado.

    gcloud compute health-checks create http http-health-check \ --request-path=/ Nota:
    Este comando crea una verificación de estado que envía solicitudes a la ruta raíz ("/").
  5. Aplica la verificación de estado al servicio de backend.

    gcloud compute backend-services update backend-service \ --health-checks=http-health-check \ --global Nota:
    Este comando asocia la verificación de estado con el "backend-service".

Tarea 5: Crea la configuración del frontend

La configuración del frontend es con la que interactuarán tus usuarios. Esto implica un mapa de URL, un proxy, una dirección IP global y una regla de reenvío.

  1. Crea un mapa de URL.

    gcloud compute url-maps create url-map \ --default-service=backend-service Nota:
    Este comando crea un mapa de URL que enruta todo el tráfico a "backend-service".
  2. Crea un proxy HTTP global.

    gcloud compute target-http-proxies create http-proxy \ --url-map=url-map Nota:
    Este comando crea un proxy HTTP global con el mapa de URL creado en el paso anterior.
  3. Crea una dirección IP estática global.

    gcloud compute addresses create global-ip-address --global Nota:
    Este comando crea una dirección IP estática accesible de forma global.
  4. Crea una regla de reenvío global.

    gcloud compute forwarding-rules create http-forwarding-rule \ --address=$(gcloud compute addresses describe global-ip-address \ --global --format='value(address)') \ --global \ --target-http-proxy=http-proxy \ --ports=80 Nota:
    Este comando crea una regla de reenvío global para dirigir el tráfico al proxy HTTP con la dirección IP creada.

Tarea 6: Implementa el bloqueo geográfico con Cloud Armor

Ahora crearás una política de seguridad de Cloud Armor y aplicarás una regla para denegar el tráfico de una región específica. Las reglas de Cloud Armor se procesan en orden ascendente de prioridad; un número de prioridad más bajo significa que la regla se evalúa primero.

  1. Crea una política de seguridad de Cloud Armor.

    gcloud compute security-policies create "geoblocking-policy" \ --description="Blocks traffic from specific countries" Nota:
    Este comando crea una política de seguridad de Cloud Armor llamada "geoblocking-policy".
  2. Agrega una regla para permitir el tráfico de Estados Unidos (EE.UU.).

    gcloud compute security-policies rules create 1000 \ --security-policy="geoblocking-policy" \ --description="Allow traffic from US" \ --expression="origin.region_code == 'US'" \ --action=allow Nota:
    Este comando crea una regla que permite el tráfico de Estados Unidos. Esta regla tiene un número de prioridad alto (1,000), por lo que se evalúa después de las reglas de denegación. Es una práctica recomendada permitir explícitamente el tráfico de las regiones a las que quieres prestar servicio, pero para el bloqueo geográfico no es estrictamente necesario, a menos que implementes una política de "denegar todo, permitir específico". La prioridad es esencial para la posición de la regla en la política.
  3. Agrega una regla para denegar el tráfico de Bélgica (BE).

    gcloud compute security-policies rules create 10 \ --security-policy="geoblocking-policy" \ --description="Deny traffic from Belgium" \ --expression="origin.region_code == 'BE'" \ --action=deny-403 Nota:
    Este comando bloquea el tráfico de Bélgica antes de que se consideren las reglas de permiso. La acción "deny-403" devuelve un error HTTP 403 (acceso prohibido). La expresión "origin.region_code" coincide con el tráfico que se origina en Bélgica.
  4. Vincula la política de seguridad al servicio de backend.

    gcloud compute backend-services update backend-service \ --security-policy="geoblocking-policy" \ --global Nota:
    Este comando vincula la política de seguridad al servicio de backend, lo que aplica las reglas de la política a todo el tráfico dirigido al servicio de backend.

Tarea 7: Prueba el bloqueo geográfico con recursos regionales

Ahora, probarás la política de seguridad de Cloud Armor para evaluar el bloqueo geográfico desde varias ubicaciones.

  1. Crea una instancia de Compute Engine llamada test-vm-us en test-subnet-us.

    gcloud compute instances create test-vm-us \ --subnet=test-subnet-us \ --machine-type=e2-medium \ --tags=iap-gce \ --zone={{{ project_0.default_zone | "ZONE" }}} Nota:
    Este comando crea una instancia de Compute Engine en la subred especificada.
  2. Crea una instancia de Compute Engine llamada test-vm-europe en test-subnet-eu.

    gcloud compute instances create test-vm-europe \ --subnet=test-subnet-eu \ --machine-type=e2-medium \ --tags=iap-gce \ --zone=europe-west1-b Nota:
    Este comando crea una instancia de Compute Engine en la subred especificada.
  3. Obtén la dirección IP del servicio de backend.

    BACKEND_IP=$(gcloud compute addresses describe global-ip-address --global --format='value(address)') && echo $BACKEND_IP Nota:
    Este comando recupera la dirección IP asociada con el servicio de backend, que se usará para probar el bloqueo geográfico.
  4. En los siguientes pasos, es posible que veas una instrucción de SSH similar a la que se muestra a continuación.

    Do you want to continue (Y/n)? Y Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Nota:
    La comunicación SSH inicial te alertará sobre una nueva conexión de host y te preguntará si deseas ingresar una frase de contraseña. Para este ejercicio de lab, no se requiere una frase de contraseña, así que presiona la tecla Intro para confirmar.
  5. Prueba la regla de denegación desde una instancia de GCE de EE.UU.

    gcloud compute ssh test-vm-us \ --zone={{{ project_0.default_zone | "ZONE" }}} \ --tunnel-through-iap \ --command "curl -v $BACKEND_IP" Nota:
    Este comando se conecta a la instancia de EE.UU. a través de SSH y usa "curl" para probar la política de bloqueo geográfico. Una respuesta "200 OK" indica que la solicitud se origina en EE.UU.

    RESULTADO ESPERADO

    GET / HTTP/1.1 Host: 34.144.245.10 User-Agent: curl/7.88.1 Accept: */* HTTP/1.1 200 OK Date: Wed, 06 Aug 2025 04:02:08 GMT Server: Apache/2.4.62 (Debian) Content-Length: 65 Content-Type: text/html; charset=UTF-8 Via: 1.1 google
  6. Prueba la regla de denegación desde una instancia de GCE europea.

    gcloud compute ssh test-vm-europe \ --zone=europe-west1-b \ --tunnel-through-iap \ --command "curl -v $BACKEND_IP" Nota:
    Este comando se conecta a la instancia europea a través de SSH y usa "curl" para probar la política de bloqueo geográfico. Se espera un error 403 (acceso prohibido).

    RESULTADO ESPERADO

    GET / HTTP/1.1 Host: 34.144.245.10 User-Agent: curl/7.88.1 Accept: */* HTTP/1.1 403 Forbidden Content-Length: 134 Content-Type: text/html; charset=UTF-8 Date: Wed, 06 Aug 2025 04:02:36 GMT

¡Felicitaciones!

Configuraste correctamente Cloud Armor para implementar el bloqueo geográfico. Aprendiste a crear y aplicar políticas de seguridad, y a definir reglas basadas en el origen geográfico. Este lab proporciona una base para proteger tus aplicaciones de Google Cloud con Cloud Armor.

Recursos adicionales

Última actualización del manual: 6 de agosto de 2025

Prueba más reciente del lab: 6 de agosto de 2025

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

Usar una ventana de incógnito o de navegación privada es la mejor forma de 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.