GSP946
Descripción general
El modelo de seguridad de confianza cero es aquel en el que ninguna persona, dispositivo o red es inherentemente confiable. El acceso se otorga según numerosos factores, incluidos, entre otros, la identidad, el dispositivo, la ubicación y la hora del día. Uno de los principales casos de uso para la aplicación de políticas de confianza cero es proporcionar acceso seguro a aplicaciones web, como las basadas en HTTP/HTTPS que se alojan en Google Cloud o en centros de datos locales. Cada aplicación web puede tener su propio control de acceso para proporcionar seguridad precisa y disminuir el riesgo. Proteger la aplicación web no requiere configurar listas de control de acceso (ACL), sino establecer rangos de IP, que permiten una incorporación rápida sin comprometer la seguridad. El componente principal de la arquitectura para proporcionar acceso de confianza cero es el siguiente:
-
Identity-Aware Proxy (IAP): Es un motor de aplicación de políticas para garantizar que se autoricen todas las solicitudes de acceso.
En este lab, implementarás una aplicación de ejemplo en App Engine y aplicarás políticas con Identity-Aware Proxy (IAP). También obtendrás información de identidad del usuario en la aplicación protegida por IAP.
Objetivos de aprendizaje
- Implementar una aplicación simple de App Engine con Python
- Habilitar Identity-Aware Proxy (IAP) para restringir el acceso a la aplicación
- Obtener información de identidad del usuario de IAP en tu aplicación
Requisitos previos
Conocimientos básicos del lenguaje de programación Python
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, 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 del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos 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: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago.
A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
- El botón para abrir la consola de Google Cloud
- El tiempo restante
- Las credenciales temporales que debes usar para el lab
- Otra información para completar el lab, si es necesaria
-
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: Ordena 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.
-
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.
-
Haz clic en Siguiente.
-
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.
-
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 Cloud para este lab podría generar cargos adicionales.
-
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 Google Cloud en esta pestaña.
Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar.
Activa Cloud Shell
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. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
-
Haz clic en Activar Cloud Shell
en la parte superior de la consola de Google Cloud.
-
Haz clic para avanzar por las siguientes ventanas:
- Continúa en la ventana de información de Cloud Shell.
- Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu Project_ID, . El resultado contiene una línea que declara el Project_ID para esta sesión:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
- Haz clic en Autorizar.
Resultado:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project
Resultado:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Nota: Para obtener toda la documentación de gcloud, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.
Situación
Crearás una aplicación web sencilla con Google App Engine y, luego, explorarás diversas maneras de usar Identity-Aware Proxy para restringir el acceso a la aplicación y proporcionarle información de identidad del usuario. Tu app hará lo siguiente:
- Mostrar una página de bienvenida
- Acceder a la información de identidad del usuario que brinda IAP
Tarea 1: Implementa la aplicación y protégela con IAP
Trabajarás con una aplicación del entorno estándar de App Engine escrita en Python 3.8 que simplemente muestra una página de bienvenida con el mensaje "Hello World". La implementarás y probarás, y usarás IAP para restringir el acceso a ella.
- En Cloud Shell, ejecuta lo siguiente para descargar el código necesario para este lab desde GitHub y, luego, cambia a la carpeta del código:
git clone https://github.com/googlecodelabs/user-authentication-with-iap.git
cd user-authentication-with-iap
Revisa el código de la aplicación
- Cambia de directorio de la carpeta principal del proyecto a la carpeta 1-HelloWorld:
cd 1-HelloWorld
El código de la aplicación se encuentra en el archivo main.py. Utiliza el framework web Flask para responder las solicitudes web con el contenido de una plantilla. Ese archivo de plantilla está en templates/index.html y, para este paso, contiene solamente HTML simple. Un segundo archivo de plantilla contiene un ejemplo básico de una política de privacidad en templates/privacy.html.
Hay dos archivos más: requirements.txt (que incluye una lista de todas las bibliotecas de Python no predeterminadas que usa la aplicación) y app.yaml (que le indica a Google Cloud que es una aplicación de App Engine creada con Python 3.8).
Puedes usar el comando cat para que se muestre cada archivo en Cloud Shell, como en el siguiente ejemplo:
cat main.py
También puedes abrir el Editor de código de Cloud Shell haciendo clic en Editar (
) en la parte superior derecha de la ventana de Cloud Shell y examinar el código con el editor una vez que se cargue.
No es necesario que modifiques ningún archivo para este paso.
Implementa la aplicación en App Engine
Ahora, implementa la app en el entorno estándar de App Engine para Python 3.8.
- Ejecuta el siguiente comando:
gcloud app create --project=$(gcloud config get-value project) --region={{{ project_0.startup_script.app_region | REGION }}}
Cuando se te pregunte si quieres continuar, presiona Y para indicar que sí.
También es posible que se te pida que autorices la llamada realizada para crear la aplicación de App Engine. Si es así, haz clic en el botón Autorizar.
- En el Editor de código de Cloud Shell, observa el archivo
app.yaml en la carpeta 1-HelloWorld y actualiza la versión de Python del entorno de ejecución.
runtime: python310
- Ejecuta el siguiente comando después de que se complete el comando create:
gcloud app deploy
Si se te solicita continuar, ingresa Y y presiona Intro.
Nota: Vuelve a ejecutar el comando para evitar un error si aparece.
En unos minutos, la implementación debería completarse y verás un mensaje que indica que puedes ver tu aplicación con el siguiente comando:
gcloud app browse
Nota: Como esta es la primera vez que se ejecuta la app, tardará unos segundos en aparecer mientras se inicia una instancia en la nube. Deberías ver un resultado similar a la siguiente imagen. El acceso aún no está restringido.

Haz clic en Revisar mi progreso para verificar el objetivo.
Implementar la aplicación en App Engine
Restringe el acceso con IAP
-
Navega al menú de navegación > Ver todos los productos > Seguridad > Identity-Aware Proxy. Haz clic en el botón Habilitar la API y, luego, en Ir a Identity-Aware Proxy.
-
Para configurar la pantalla de consentimiento de OAuth de tu proyecto, ve a la pantalla de consentimiento de OAuth navegando al menú de navegación (
) > APIs y servicios > Pantalla de consentimiento de OAuth.
-
En la página "Descripción general de OAuth", haz clic en Comenzar y, luego, en Nombre de la app, ingresa IAP Example.
-
Proporciona una dirección de correo electrónico de asistencia al usuario: .
-
En Público, selecciona Interno y, luego, haz clic en Siguiente.
-
En Información de contacto, ingresa la misma dirección de correo electrónico que en el paso 4 y, luego, haz clic en Siguiente.
-
En Finalizar, selecciona la casilla de verificación para aceptar los términos y condiciones y, luego, haz clic en Crear.
-
Vuelve a la primera pestaña del navegador y ejecuta el siguiente comando en Cloud Shell:
export AUTH_DOMAIN=$(gcloud config get-value project).uc.r.appspot.com
Copia la URL, ya que usarás el resultado de los comandos como entrada para el formulario en la pestaña Consentimiento de OAuth.
- Para ver el valor completado, ejecuta el siguiente comando:
echo $AUTH_DOMAIN
-
En la página Descripción general de OAuth, haz clic en Crear cliente de OAuth y, en Tipo de aplicación, selecciona Aplicación web.
-
En URIs de redireccionamiento autorizados, haz clic en + AGREGAR URL y escribe la URL que recibiste en el resultado del comando. Luego, haz clic en Crear.
-
En la pestaña restante, navega al menú de navegación > Ver todos los productos > Seguridad > Identity-Aware Proxy.
Es posible que debas actualizar la página si es necesario.
- Haz clic en el botón de activación en la columna IAP de la fila de la aplicación de App Engine para activar IAP en la aplicación implementada en la sección anterior.

-
Navega a la aplicación manteniendo presionada la tecla Ctrl/Command y seleccionando la URL de la aplicación de App Engine en la consola de IAP.
-
Accede con el usuario estudiante que aparece en el formulario de acceso.

Se te mostrará una pantalla que te informa que no tienes acceso a la aplicación.

Lograste proteger correctamente tu app con IAP, pero aún no le has indicado a IAP a qué cuentas dar acceso.
Haz clic en Revisar mi progreso para verificar el objetivo.
Restringir el acceso con IAP
Permite que los miembros accedan a la aplicación
-
Vuelve a la página Identity-Aware Proxy de la consola. Para ello, ve al menú de navegación > Ver todos los productos > Seguridad > Identity-Aware Proxy.
-
Selecciona la casilla de verificación junto a la aplicación de App Engine y consulta la barra lateral a la derecha de la página. Luego, haz clic en Agregar entidad.

-
Copia el Nombre de usuario de la consola del lab en la parte superior izquierda del lab y, luego, ingrésalo en la casilla de entrada Entidades nuevas.
-
Establece su rol como Cloud IAP > Usuario de app web protegida con IAP.

- Cuando termines, haz clic en Guardar. Aparecerá el mensaje "Se actualizó la política" en la parte inferior de la ventana.
Haz clic en Revisar mi progreso para verificar el objetivo.
Permitir que los miembros accedan a la aplicación
Verifica que se restablezca el acceso
- Regresa a tu aplicación de App Engine y vuelve a cargar la página. Ahora deberías ver tu app web, dado que ya accediste con un usuario que autorizaste.
Sin embargo, es posible que sigas viendo la página "No tienes acceso", ya que IAP podría no volver a verificar tu autorización debido a que se almacenó una cookie de acceso.
En ese caso, completa los siguientes pasos:
- Abre tu navegador web en la dirección de la página principal, pero agrega
/_gcp_iap/clear_login_cookie al final de la URL, como en https://iap-example-999999.appspot.com/_gcp_iap/clear_login_cookie.
Nota: Usa la URL de la aplicación de App Engine que implementaste anteriormente en el lab. La URL anterior es un ejemplo.
Ahora verás una nueva pantalla de Acceder con Google en la que ya se mostrará tu cuenta.
Nota: No hagas clic en la cuenta.
- Haz clic en Usar otra cuenta y vuelve a ingresar tus credenciales.
Si completas estos pasos, IAP volverá a verificar tu acceso, tras lo cual deberías ver la pantalla principal de la aplicación.
Tarea 2: Accede a la información de identidad del usuario
Cuando una aplicación está protegida con IAP, puede utilizar la información de identidad que IAP proporciona en los encabezados de la solicitud web que pasan por este servicio. En este paso, la aplicación obtendrá la dirección de correo electrónico del usuario que accedió y un ID persistente de usuario único que el servicio de identidad de Google asignó a ese usuario. Esos datos se mostrarán al usuario en la página de bienvenida.
- En Cloud Shell, ingresa el siguiente comando:
cd ~/user-authentication-with-iap/2-HelloUser
- En el Editor de código de Cloud Shell, observa el archivo
app.yaml en la carpeta 2-HelloUser y actualiza la versión de Python del entorno de ejecución:
runtime: python310
- Realiza una implementación en App Engine con el siguiente comando:
gcloud app deploy
Nota: Es posible que se te pida que autorices la llamada para implementar la aplicación.
-
En caso de que se te pregunte si quieres continuar, ingresa Y.
-
Cuando la implementación esté lista, ingresa el siguiente comando:
gcloud app browse
Si no se abre una nueva pestaña en tu navegador, copia el vínculo que se muestra y ábrelo en otra pestaña. Deberías ver una página similar a la siguiente:

Nota: Quizás debas esperar algunos minutos a que la versión nueva de tu aplicación reemplace la anterior. En caso de ser necesario, actualiza la página para ver una similar a la de arriba.
Haz clic en Revisar mi progreso para verificar el objetivo.
Acceder a la información de identidad del usuario
Examina los archivos de la aplicación
La carpeta 2-HelloUser contiene el mismo conjunto de archivos que la carpeta 1-HelloWorld, pero se modificaron dos de ellos: main.py y templates/index.html. El programa se modificó para que recupere la información del usuario que IAP proporciona en los encabezados de solicitud, y la plantilla ahora muestra esos datos.
- Ejecuta
cat main.py para ver el contenido del archivo main.py.
En main.py, hay dos líneas que obtienen los datos de identidad proporcionados por IAP:
user_email = request.headers.get('X-Goog-Authenticated-User-Email')
user_id = request.headers.get('X-Goog-Authenticated-User-ID')
IAP proporciona los encabezados X-Goog-Authenticated-User-, y los nombres no distinguen mayúsculas de minúsculas, así que puedes escribirlos como prefieras. La sentencia render_template ahora incluye esos valores para que puedan mostrarse:
page = render_template('index.html', email=user_email, id=user_id)
La plantilla index.html puede mostrar esos valores con los nombres entre llaves dobles:
Hello, {{ email }}! Your persistent ID is {{ id }}.
Los datos proporcionados tienen el prefijo accounts.google.com: para mostrar de dónde provino la información. Tu aplicación puede quitar todo hasta los dos puntos (incluidos) para obtener los valores sin procesar, si así lo deseas.
¡Felicitaciones!
Aprendiste a usar Identity-Aware Proxy (IAP) para proteger aplicaciones HTTP(S) implementadas en Google Cloud.
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Actualización más reciente del manual: 12 de noviembre de 2025
Prueba más reciente del lab: 12 de noviembre de 2025
Copyright 2026 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.