Cómo usar Identity-Aware Proxy (IAP) con 1 clic con Cloud Run

Cómo usar Identity-Aware Proxy (IAP) con 1 clic con Cloud Run

Acerca de este codelab

subjectÚltima actualización: jun 12, 2025
account_circleEscrito por un Googler

1. Introducción

Descripción general

En este codelab, se explica cómo habilitar Identity-Aware Proxy desde Cloud Run y proteger el tráfico destinado a un servicio de Cloud Run enrutándolo a IAP para la autenticación. Si habilitas el IAP desde Cloud Run, puedes enrutar el tráfico con un solo clic desde todas las rutas de acceso de entrada, incluidas las URLs y los balanceadores de cargas predeterminados de run.app.

En este codelab, implementarás el servicio de contenedor hello. Solo los usuarios que se hayan incluido en la lista de entidades permitidas con la IAP tienen acceso al servicio.

Para conocer otras limitaciones conocidas, consulta la documentación de IAP en Cloud Run.

Qué aprenderás

  • Cómo habilitar IAP de un clic para Cloud Run
  • Cómo otorgar acceso a la identidad de un usuario a un servicio de Cloud Run a través de IAP

2. Antes de comenzar

habilitar las APIs

Antes de comenzar a usar este codelab, habilita las siguientes APIs ejecutando el siguiente comando:

gcloud services enable \
    artifactregistry.googleapis.com \
    cloudbuild.googleapis.com \
    iap.googleapis.com \
    run.googleapis.com \
    cloudresourcemanager.googleapis.com

3. Crea variables de entorno

Establece las variables de entorno que se usarán en este codelab

export PROJECT_ID=<YOUR_PROJECT_ID>
export REGION=<YOUR_REGION>

export SERVICE_NAME=iap-example
export SERVICE_ACCOUNT_NAME=iap-example-sa
export PROJECT_NUMBER=$(gcloud projects describe "${PROJECT_ID}" --format="value(projectNumber)")

4. Implementa un servicio con el IAP habilitado

Ejecuta este comando para crear la cuenta de servicio (que se usa como la identidad del servicio de Cloud Run):

gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
 
--display-name="IAP codelab CR identity"

Implementa la imagen de contenedor hello con la IAP habilitada.

gcloud beta run deploy ${SERVICE_NAME} \
    --image=us-docker.pkg.dev/cloudrun/container/hello \
    --region=${REGION} \
    --service-account $SERVICE_ACCOUNT_NAME@${PROJECT_ID}.iam.gserviceaccount.com \
    --no-allow-unauthenticated \
    --iap

Nota: Si intentas acceder a la aplicación ahora, verás la página de error You don't have access. En el siguiente paso, otorgarás acceso a un usuario a través de IAP.

5. Configura el control de acceso de IAP

Crea el agente de servicio de IAP.

gcloud beta services identity create --service=iap.googleapis.com --project=${PROJECT_ID}

Asigna el rol de invocador de Cloud Run a la cuenta de servicio de IAP

gcloud projects add-iam-policy-binding ${PROJECT_ID} \
  --member="serviceAccount:service-${PROJECT_NUMBER}@gcp-sa-iap.iam.gserviceaccount.com" \
  --role="roles/run.invoker"

Otorga acceso a un usuario permitiendo usuarios o grupos específicos a través de IAP

EMAIL_ADDRESS=<YOUR_EMAIL>

gcloud
beta iap web add-iam-policy-binding \
    --resource-type=cloud-run \
    --service=${SERVICE_NAME} \
    --region=${REGION} \
    --member=user:${EMAIL_ADDRESS} \
    --role=roles/iap.httpsResourceAccessor \
    --condition=None

Nota: Si lo prefieres, también puedes usar group:tu-grupo@example.com en el parámetro de miembro.

6. Prueba la aplicación

Verifica el acceso a la app

Obtén la URL del servicio de Cloud Run de ejemplo.

gcloud run services describe ${SERVICE_NAME} --region ${REGION} --format 'value(status.url)'

Abre la URL en tu navegador y deberías ver el mensaje "It's Running! "Felicitaciones, implementaste correctamente una imagen de contenedor en Cloud Run"

Verifica la eliminación del acceso a la app

Para quitar tu acceso a la app, ejecuta el siguiente comando.

gcloud beta iap web remove-iam-policy-binding \
    --resource-type=cloud-run \
    --service=${SERVICE_NAME} \
    --region=${REGION} \
    --member=user:${EMAIL_ADDRESS} \
    --role=roles/iap.httpsResourceAccessor

Espera unos minutos para que se propague la política de IAM. Ahora intenta abrir la URL en tu navegador. Verás la página de error You don't have access.

7. ¡Felicitaciones!

¡Felicitaciones por completar el codelab!

Te recomendamos que revises la documentación de IAP de Cloud Run.

Temas abordados

  • Cómo habilitar IAP de 1 clic para Cloud Run
  • Cómo otorgar acceso a la identidad de un usuario a un servicio de Cloud Run a través de IAP

8. Limpia

Para evitar cargos imprevistos, por ejemplo, si los servicios de Cloud Run se invocan por error más veces que tu asignación mensual de invocaciones de Cloud Run en el nivel gratuito, puedes borrar el servicio de Cloud Run iap-example que creaste en el paso 6.

Para borrar el servicio de Cloud Run, ve a la consola de Cloud Run en https://console.cloud.google.com/run y borra el servicio iap-example.

Para borrar todo el proyecto, ve a Administrar recursos, selecciona tu proyecto y elige Borrar. Si borras el proyecto, deberás cambiar los proyectos en tu SDK de Cloud. Para ver la lista de todos los proyectos disponibles, ejecuta gcloud projects list.