Descripción general
En este lab protegerás las cargas de trabajo de Compute Engine mediante la restricción del tráfico en función de la identidad con Identity-Aware Proxy (IAP) de BeyondCorp Enterprise.
IAP es una función de BeyondCorp Enterprise, la solución de confianza cero de Google Cloud que permite que la carga de trabajo de una organización acceda a aplicaciones web de manera segura desde cualquier lugar, sin necesidad de una VPN y sin preocuparse del software malicioso, la suplantación de identidad (phishing) ni la pérdida de datos.
Este lab aprovisiona un entorno de desarrollo integrado (IDE) basado en la Web al que podrás restringir el acceso mediante la habilitación del parámetro de configuración de confianza cero.
Objetivos
En este lab, aprenderás a realizar las siguientes tareas:
- Configurar el consentimiento de OAuth.
- Configurar credenciales de acceso de OAuth.
- Configurar el acceso de IAP para la app implementada.
- Usar IAP para restringir el acceso a la aplicación.
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Nota: 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.
En este lab práctico de Qwiklabs, se te proporcionarán credenciales temporales nuevas para acceder a Google Cloud y realizar las actividades en un entorno de nube real, no en uno de simulación o demostración.
Requisitos
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
- Tiempo para completar el lab
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses para el lab.
Nota: Si usas una Pixelbook, abre una ventana de incógnito para ejecutar el lab.
Cómo iniciar tu lab y acceder a la consola
-
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá una ventana emergente para que selecciones tu forma de pago.
A la izquierda, verás un panel con las credenciales temporales que debes usar para este lab.

-
Copia el nombre de usuario y, luego, haz clic en Abrir la consola de Google.
El lab inicia los recursos y abre otra pestaña que muestra la página Elige una cuenta.
Sugerencia: Abre las pestañas en ventanas separadas, una junto a la otra.
-
En la página Elige una cuenta, haz clic en Usar otra cuenta. Se abrirá la página de acceso.

-
Pega el nombre de usuario que copiaste del panel Detalles de la conexión. Luego, copia y pega la contraseña.
Nota: Debes usar las credenciales del panel Detalles de la conexión. No uses tus credenciales de Google Cloud Skills Boost. Si tienes una cuenta propia de Google Cloud, no la utilices para este lab para no incurrir en cargos.
- Haz 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 Cloud en esta pestaña.
Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda de la pantalla.
Activa Google Cloud Shell
Google Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. 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 tus recursos de Google Cloud.
-
En la consola de Cloud, en la barra de herramientas superior derecha, haz clic en el botón Abrir Cloud Shell.

-
Haz clic en Continuar.
El aprovisionamiento y la conexión al entorno demorarán unos minutos. Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. Por ejemplo:

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con el completado de línea de comando.
- Puedes solicitar el nombre de la cuenta activa con este comando:
gcloud auth list
Resultado:
Credentialed accounts:
- @.com (active)
Resultado de ejemplo:
Credentialed accounts:
- google1623327_student@qwiklabs.net
- Puedes solicitar el ID del proyecto con este comando:
gcloud config list project
Resultado:
[core]
project =
Resultado de ejemplo:
[core]
project = qwiklabs-gcp-44776a13dea667a6
Nota:
La documentación completa de gcloud está disponible en la
guía de descripción general de gcloud CLI
.
Tarea 1: Crea una plantilla de Compute Engine
En esta tarea crearás una plantilla de instancia. Este es un recurso que usarás para crear instancias de máquina virtual (VM) y grupos de instancias administrados (MIG).
-
En el menú de navegación de la consola de Google Cloud (
), haz clic en Compute Engine > Plantillas de instancia.
-
Haz clic en Crear plantilla de instancias.
-
En la página Crear una plantilla de instancias, especifica lo siguiente y deja el resto de la configuración con los valores predeterminados.
Propiedad |
Valor |
Ubicación |
Global |
Serie |
E2 |
Tipo de máquina |
e2-micro (2 CPU virtuales) |
Permisos de acceso |
Configurar acceso para cada API |
Permisos de acceso > Compute Engine |
Solo lectura |
Firewall |
Permitir tráfico HTTP |
-
Haz clic en Opciones avanzadas.
-
Haz clic en Administración.
-
En Automatización > Secuencia de comandos de inicio, copia y pega la siguiente secuencia de comandos:
# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
sudo apt-get -y update
sudo apt-get -y install git
sudo apt-get -y install virtualenv
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/iap
virtualenv venv -p python3
source venv/bin/activate
pip install -r requirements.txt
cat example_gce_backend.py |
sed -e "s/YOUR_BACKEND_SERVICE_ID/$(gcloud compute backend-services describe my-backend-service --global --format="value(id)")/g" |
sed -e "s/YOUR_PROJECT_ID/$(gcloud config get-value account | tr -cd "[0-9]")/g" > real_backend.py
gunicorn real_backend:app -b 0.0.0.0:80
- Haz clic en Crear.
La creación de la plantilla de instancias toma unos minutos.
Tarea 2: Crea un grupo de instancias administrado
En esta tarea crearás un grupo de instancias administrado (MIG), un grupo de instancias de máquinas virtuales (VMs) que se administran como una sola entidad.
-
En el Menú de navegación de la consola de Google Cloud, (
), haz clic enCompute Engine > Grupos de instancias.
-
Haz clic en Crear grupo de instancias.
-
Haz clic en Nuevo grupo de instancias administrado (sin estado) en el menú del lado izquierdo.
-
En la página Nuevo grupo de instancias administrado (sin estado), especifica lo siguiente, y deja el resto de la configuración con sus valores predeterminados:
Propiedad |
Valor |
Nombre |
my-managed-instance-group |
Plantilla de instancias |
Selecciona la plantilla de instancias que creaste en la Tarea 1. |
Ubicación |
Varias zonas |
Región |
us-central1 (Iowa) |
Ajuste de escala automático > Modo de ajuste de escala automático |
Sin ajuste de escala automático |
Cantidad de instancias |
Para cambiar la cantidad de instancias, primero debes desactivar el ajuste de escala automático. Consulta a continuación. Cuando termines, establece el valor máximo de la cantidad en 3. |
Nota: No te olvides de configurar la cantidad de instancias luego de cambiar el modo de ajuste de escala automático.
- Haz clic en Crear.
La creación del MIG tardará unos minutos.
Tarea 3: Crea un recurso de certificado SSL autoadministrado de Google Cloud
En esta tarea crearás una clave privada, un certificado y, luego, un recurso de certificado SSL autoadministrado. Antes de que puedas crear un recurso de certificado SSL de Google Cloud, debes tener una clave privada y un certificado.
Un certificado SSL de Google Cloud incluye una clave privada y el certificado en sí, ambos en formato PEM.
Los certificados SSL autoadministrados son certificados que obtienes, aprovisionas y renuevas tú mismo. Este recurso sirve para asegurar la comunicación entre los clientes y tu balanceador de cargas, que crearás en la siguiente tarea.
Crea una clave privada y un certificado
-
En la barra de título de la consola de Google Cloud, haz clic en Activar Cloud Shell (
). Si se solicita, haz clic en Continuar.
-
Para crear una clave privada nueva con encriptación RSA-2048 en formato PEM de OpenSSL, ejecuta el siguiente comando:
openssl genrsa -out PRIVATE_KEY_FILE 2048
Crea una CSR
Genera una solicitud de firma de certificado (CSR) en formato PEM con OpenSSL.
-
Haz clic en Abrir editor. Si se te solicita, haz clic en Abrir en una nueva ventana.
-
En el editor de Cloud Shell, haz clic en el menú y selecciona Archivo > Archivo nuevo.
-
Para el nombre del archivo, escribe ssl_config y presiona Intro.
-
Asegúrate de que la ubicación para la creación del archivo se muestre como /home > student-XX-XXXXXXXXX/ssl_config y, luego, haz clic en Aceptar.
-
Copia y pega la siguiente configuración en la ventana del editor de Cloud Shell:
[req]
default_bits = 2048
req_extensions = extension_requirements
distinguished_name = dn_requirements
prompt = no
[extension_requirements]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
[dn_requirements]
countryName = US
stateOrProvinceName = CA
localityName = Mountain View
0.organizationName = Cloud
organizationalUnitName = Example
commonName = Test
-
Haz clic en el menú y selecciona Archivo > Guardar.
-
Regresa a la pestaña anterior. Es posible que debas hacer clic en Abrir terminal para reanudar tu sesión de Cloud Shell.
-
Para crear un archivo de solicitud de firma de certificado (CSR), ejecuta el siguiente comando de OpenSSL:
openssl req -new -key PRIVATE_KEY_FILE \
-out CSR_FILE \
-config ssl_config
Firma la CSR
Cuando una autoridad certificadora (CA) firma tu CSR, usa su propia clave privada para crear un certificado:
- Si deseas crear un certificado autofirmado para pruebas, ejecuta el siguiente comando de OpenSSL:
openssl x509 -req \
-signkey PRIVATE_KEY_FILE \
-in CSR_FILE \
-out CERTIFICATE_FILE.pem \
-extfile ssl_config \
-extensions extension_requirements \
-days 365
Crea un recurso de certificado SSL autoadministrado
Antes de que puedas crear un recurso de certificado SSL de Google Cloud, debes tener una clave privada y un certificado.
- Para crear un certificado SSL global, usa el comando
gcloud compute ssl-certificates create
con la marca --global
:
gcloud compute ssl-certificates create my-cert \
--certificate=CERTIFICATE_FILE.pem \
--private-key=PRIVATE_KEY_FILE \
--global
- En el mensaje Autoriza Cloud Shell, haz clic en Autorizar.
Tarea 4: Crea un balanceador de cargas
En esta tarea crearás un balanceador de cargas. El balanceo de cargas HTTP(S) se implementa en Google Front End (GFE). Los GFE se distribuyen globalmente y operan juntos mediante el plano de control y la red global de Google.
Para configurar un balanceador de cargas, tus VMs deben estar en un grupo de instancias que creaste en la tarea anterior.
-
En el menú de navegación (
) de la consola de Google Cloud, haz clic en Ver todos los productos y, luego, en Servicios de red > Balanceo de cargas.
-
Haz clic en Crear balanceador de cargas.
-
En Balanceador de cargas de aplicaciones (HTTP/S), haz clic en Siguiente.
-
En Orientado al público o para uso interno, selecciona Orientado al público (externo) y haz clic en Siguiente.
-
En Implementación global o de una sola región, selecciona Ideal para cargas de trabajo globales y haz clic en Siguiente.
-
En Generación de balanceadores de cargas, selecciona Balanceador de cargas de aplicaciones externo global y haz clic en Siguiente.
-
Haz clic en Configurar.
-
En Nombre del balanceador de cargas, escribe my-load-balancer.
-
Haz clic en Configuración de backend > Servicios y buckets de backend > Crear un servicio de backend.
-
En el panel Crear un servicio de backend en Nombre, escribe my-backend-service.
Debes usar el nombre exacto my-backend-service. Si usas un nombre distinto, la secuencia de comandos de inicio de tus VMs no podrá encontrar el ID correcto del servicio de backend para autenticar las solicitudes.
-
En Nuevo backend especifica lo siguiente y deja los parámetros de configuración restantes con sus valores predeterminados:
Propiedad |
Valor |
Grupo de instancias |
my-managed-instance-group |
Números de puerto |
80 |
-
Desmarca Habilitar Cloud CDN.
-
En Verificación de estado, haz clic en Crear una verificación de estado.
-
En Nombre, escribe my-health-check.
-
En Protocolo, selecciona HTTP.
-
Haz clic en Guardar.
-
Haz clic en Crear.
Volverá a aparecer el panel de creación de un balanceador de cargas de aplicaciones externo global.
- Haz clic en Configuración de frontend. Especifica lo siguiente y deja los parámetros de configuración restantes con sus valores predeterminados:
Propiedad |
Valor |
Protocolo |
HTTPS (incluye HTTP/2 y HTTP/3) |
Dirección IP |
Haz clic en Efímera y, luego, selecciona Crear dirección IP
|
Nombre |
Escribe static-ip y, luego, haz clic en Reservar. |
Certificado |
my-cert |
- Haz clic en Listo.
Volverá a aparecer el panel de creación de un balanceador de cargas de aplicaciones externo global.
- En Crear balanceador de cargas de aplicaciones externo global, haz clic en Crear.
Aparecerá la página Balanceo de cargas y se creará el nuevo balanceador de cargas en la lista de balanceadores de cargas.
- Después de que la consola de Cloud termine de crear el nuevo balanceador de cargas, haz clic en el nombre del balanceador de cargas y toma nota de la dirección IP externa en Detalles > Frontend. Lo necesitarás en la tarea 7.
Tarea 5: Reinicia tus VMs
En esta tarea, reiniciarás las VMs en tu MIG para que puedan autenticar de forma correcta las solicitudes de IAP.
-
En el menú de navegación de la consola de Google Cloud, (
), haz clic enCompute Engine > Grupos de instancias.
-
Haz clic en my-managed-instance-group.
-
Haz clic en Reiniciar o reemplazar las VM.
-
En Operación, haz clic en Reiniciar.
-
En Instancias, escribe 3
-
En Tiempo de espera mínimo, escribe 0
-
Haz clic en Reiniciar las VM.
Tarea 6: Configura IAP
Configura tu firewall
En esta tarea, configurarás tu firewall para bloquear el acceso a las VMs subyacentes y permitirlo solo mediante IAP.
-
En el menú de navegación de la consola de Google Cloud (
), haz clic en Red de VPC > Firewall.
-
Selecciona la casilla de verificación default-allow-internal.
-
Haz clic en Borrar y, luego, selecciona Borrar para confirmar.
-
Haz clic en Crear regla de firewall. Especifica lo siguiente y deja los parámetros de configuración restantes con sus valores predeterminados:
Propiedad |
Valor |
Nombre |
allow-iap-traffic |
Destinos |
Todas las instancias de la red |
Rangos de IPv4 de origen |
130.211.0.0/22, 35.191.0.0/16 (Presiona Intro después de pegar cada valor en el cuadro) |
Protocolos y puertos |
Protocolos y puertos especificados |
TCP |
80 |
- Haz clic en Crear.
Configura IAP
En este paso configurarás IAP para tu proyecto.
-
En el Menú de navegación de la consola de Google Cloud (
), haz clic en Seguridad > Identity-Aware Proxy.
-
Haz clic en Habilitar API.
-
Haz clic en Ir a Identity-Aware Proxy.
-
Haz clic en Configurar pantalla de consentimiento.
Precaución: No ingreses información confidencial en la pantalla de consentimiento de OAuth. Cualquier información que guardes en la pantalla de consentimiento de OAuth podría ser visible de forma pública para cualquier persona que acceda a tu URL. Los detalles del correo electrónico y del producto se muestran en la pantalla de acceso y cuando alguien intenta acceder a un recurso para el cual no tiene permiso.
-
En User Type, selecciona Externos y, luego, haz clic en Crear.
-
En Nombre de la aplicación, escribe IAP.
-
En Correo electrónico de asistencia del usuario, selecciona la cuenta de estudiante. Su valor es student-00-*****@qwiklabs.net.
-
En Información de contacto del desarrollador, copia y pega el Nombre de usuario de la cuenta de estudiante de la ventana del lab. Este coincide con el valor en el paso anterior.
-
Haz clic en Guardar y continuar tres veces, y, luego selecciona Volver al panel.
Para cambiar la información en la pantalla de consentimiento de OAuth más tarde, como el nombre del producto o la dirección de correo electrónico, repite los pasos anteriores para configurarla.
-
En el Menú de navegación de la consola de Google Cloud (
), haz clic en Seguridad > Identity-Aware Proxy.
-
Junto a my-backend-service, activa o desactiva el interruptor en la columna IAP.
-
En el cuadro de diálogo Activar IAP, selecciona la casilla de verificación para confirmar que leíste los requisitos de configuración.
-
Haz clic en Activar.
Nota: Si aparece un error, haz clic en el error. Si se te solicita que agregues una regla de firewall, edita la regla que creaste con anterioridad para incluir el número de puerto mencionado en el error.
Confirmar que se configuró el consentimiento de OAuth.
Agrega principales a la lista de acceso
En este paso deberás agregar principales a la lista de acceso IAP de tu proyecto.
-
En Identity-Aware Proxy, selecciona la casilla de verificación my backend-service.
-
Haz clic en Agregar permisos de cuenta principal.
-
Para otorgarte acceso, copia y pega tu Nombre de usuario de qwiklabs en Principales nuevas desde el panel de credenciales.
-
Selecciona el rol Cloud IAP > Usuario de aplicación web protegida con IAP.
-
Haz clic en Guardar.
Confirmar la principal para acceder a la aplicación mediante la configuración de IAM.
Tarea 7: Prueba IAP
En esta tarea, debes ejecutar un comando curl para probar el acceso a tu balanceador de cargas externo y, luego, verificar que está protegido por IAP.
-
En el menú de navegación (
) de la consola de Google Cloud, haz clic en Ver todos los productos y, luego, en Servicios de red > Balanceo de cargas.
-
Haz clic en Frontends.
-
En la barra de título de la consola de Google Cloud, haz clic en Activar Cloud Shell (
). Si se solicita, haz clic en Continuar.
-
Ejecuta el siguiente comando curl reemplazando Load Balancer External IP address por la dirección IP externa de tu balanceador de cargas:
curl -kvi https://<Load Balancer External IP address>
Nota: Si se muestra una respuesta generada por IAP que es verdadera, configuraste correctamente IAP para tu instancia de Compute Engine.
-
Desplázate hacia arriba en la página de la consola y busca el redireccionamiento Http/2 302 a accounts.google.com.
-
Haz clic en el vínculo Ubicación.
Este te dirige a la página de autenticación integrada de la cuenta de Google.
Nota: Porque usaste un certificado autofirmado, no puedes acceder a la aplicación. Sin embargo, esto confirma que IAP se configuró y que protege el tráfico.
Confirmar la restricción de acceso con IAP.
¡Felicitaciones!
Usaste correctamente IAP para proteger una aplicación web que se ejecuta en una instancia de Compute Engine.
En este lab, aprendiste a realizar las siguientes tareas:
- Crear una plantilla de instancias
- Crear un grupo de instancias
- Crear un certificado autofirmado
- Crear un balanceador de cargas
- Configurar una pantalla de consentimiento de OAuth
- Otorgar acceso a la aplicación mediante IAP
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.