Configura Identity-Aware Proxy para Cloud Run

En esta página, se describe 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 la IAP desde Cloud Run, puedes enrutar el tráfico con un solo clic desde todas las rutas de acceso de entrada, incluidas las URLs run.app y los balanceadores de cargas predeterminados.

Limitaciones conocidas

  • El proyecto debe estar dentro de una organización.
  • Las identidades deben pertenecer a la misma organización.
  • No puedes configurar IAP en el balanceador de cargas ni en el servicio de Cloud Run.
  • Es posible que algunas integraciones, como Pub/Sub, dejen de funcionar si está habilitada la IAP.

Antes de comenzar

Habilita IAP desde Cloud Run

Puedes habilitar la IAP desde Cloud Run.

Si usas IAP y IAM en el mismo servicio de Cloud Run, ten en cuenta las siguientes condiciones:

  • Se realizan las verificaciones de IAP y IAM.

  • La verificación de IAP se realiza primero y acepta o bloquea las solicitudes según la configuración de IAP.

  • Si la solicitud pasa la verificación de IAP, esta usa su propia cuenta de servicio para autenticar en la verificación de IAM de Cloud Run.

  • Debido a que la verificación de IAP se realiza primero, es posible que algunos servicios, como Pub/Sub, no se autentiquen correctamente.

Habilita IAP desde Cloud Run con la consola de Google Cloud o Google Cloud CLI.

Console

Para habilitar IAP desde Cloud Run, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Cloud Run:

    Ir a Cloud Run

  2. Si quieres configurar un servicio nuevo en el que realizarás la implementación, selecciona Implementar contenedor > Servicio. Si quieres configurar y, luego, implementar un servicio existente, haz clic en el servicio y, luego, en Implementar y editar una nueva revisión.

  3. Si configuras un servicio nuevo, completa la página de configuración inicial del servicio según sea necesario y, luego, selecciona Autenticación avanzada con Identity-Aware Proxy (IAP).

  4. Si quieres configurar y, luego, implementar un servicio existente, haz clic en el servicio y, luego, selecciona Autenticación avanzada con Identity-Aware Proxy (IAP).

  5. Haz clic en Editar política para crear una política de acceso adaptado al contexto:

    • Agrega uno o más principales y, de manera opcional, el nivel de acceso que cada principal debe cumplir para el acceso de la aplicación.

    • Haz clic en Guardar.

  6. Haz clic en Guardar.

gcloud

Para habilitar la IAP directamente desde Cloud Run, agrega la marca --iap cuando implementes tu app:

  1. Implementa tu servicio de Cloud Run con uno de los siguientes comandos:

    Para un servicio nuevo, sigue estos pasos:

    gcloud beta run deploy SERVICE_NAME \
    --region=REGION \
    --image=IMAGE_URL \
    --no-allow-unauthenticated \
    --iap

    Para un servicio existente, sigue estos pasos:

    gcloud beta run services update SERVICE_NAME \
    --region=REGION \
    --iap

    Reemplaza lo siguiente:

    • SERVICE_NAME por el nombre del servicio de Cloud Run.
    • REGION por el nombre de tu región de Cloud Run.
    • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  2. Para verificar que tu servicio esté configurado con el IAP habilitado, ejecuta el siguiente comando:

    gcloud beta run services describe SERVICE_NAME

    El resultado debe contener la siguiente cadena:

    Iap Enabled: true

Ahora enrutas todo el tráfico destinado al servicio configurado de Cloud Run a IAP para la autenticación antes de pasarlo al contenedor.

Inhabilita IAP desde Cloud Run

Puedes inhabilitar la IAP con la consola de Google Cloud o Google Cloud CLI.

Console

Para inhabilitar IAP desde Cloud Run, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Cloud Run:

    Ir a Cloud Run

  2. Haz clic en el servicio existente que deseas modificar.

  3. Haz clic en Seguridad y, luego, desmarca la opción Autenticación avanzada con Identity-Aware Proxy (IAP).

  4. Haz clic en Guardar.

gcloud

Para inhabilitar la IAP directamente desde Cloud Run, agrega la marca --no-iap cuando implementes tu app:

  1. Implementa tu servicio de Cloud Run con cualquiera de los siguientes comandos:

    Para un servicio nuevo, sigue estos pasos:

    gcloud beta run deploy SERVICE_NAME \
    --region=REGION \
    --image=IMAGE_URL \
    --no-iap

    Para un servicio existente, sigue estos pasos:

    gcloud beta run services update SERVICE_NAME \
    --region=REGION \
    --no-iap

    Reemplaza lo siguiente:

    • SERVICE_NAME por el nombre del servicio de Cloud Run.
    • REGION por el nombre de tu región de Cloud Run.
    • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  2. Para verificar que tu servicio ya no esté configurado con la IAP habilitada, ejecuta el siguiente comando:

    gcloud beta run services describe SERVICE_NAME

    El resultado ya no debería contener la siguiente cadena:

    Iap Enabled: true

Ya no enrutas todo el tráfico destinado al servicio configurado de Cloud Run al IAP para la autenticación antes de pasarlo al contenedor.

Administra el acceso de usuarios o grupos

De forma predeterminada, IAP para Cloud Run usa identidades dentro de la organización con Cuentas de Google. Puedes agregar o quitar acceso a un servicio de Cloud Run mediante la consola de Google Cloud o Google Cloud CLI.

Console

Sigue estos pasos para agregar o quitar el acceso:

  1. En la consola de Google Cloud, ve a la página Cloud Run:

    Ir a Cloud Run

  2. Haz clic en el servicio existente que deseas modificar y, luego, en Seguridad.

  3. En IAP, haz clic en Editar política.

  4. Para agregar acceso, ingresa el principal y, de manera opcional, el nivel de acceso o los niveles que deseas agregar.

  5. Para quitar el acceso de un principal existente, haz clic en el ícono Borrar política junto a Niveles de acceso.

  6. Haz clic en Guardar.

gcloud

Para agregar o quitar el acceso a un servicio de Cloud Run para usuarios individuales o grupos dentro de tu organización, ejecuta uno de los siguientes comandos:

  • Para agregar acceso, sigue estos pasos:

    gcloud beta iap web add-iam-policy-binding \
    --member=user:USER_EMAIL \
    --role=roles/iap.httpsResourceAccessor \
    --region=REGION \
    --resource-type=cloud-run \
    --service=SERVICE_NAME
  • Para quitar el acceso, sigue estos pasos:

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

    Reemplaza lo siguiente:

    • USER_EMAIL con la dirección de correo electrónico del usuario.
    • REGION por el nombre de tu región de Cloud Run.
    • SERVICE_NAME por el nombre del servicio de Cloud Run.

Soluciona problemas

La falla del agente de servicio causa un error de IAM establecido

Habilitar la IAP en un proyecto nuevo por primera vez puede causar el siguiente error:

Setting IAM permissions failed

Esto se debe a que el agente de servicio de Cloud Run falló. Para resolver el problema, vuelve a habilitar la API o configura la política de IAM de forma manual.

¿Qué sigue?