En este documento, se incluyen preguntas frecuentes sobre Identity-Aware Proxy (IAP).
¿Qué aplicaciones puedo proteger con IAP?
IAP se puede usar con lo siguiente:
- Apps del entorno estándar de App Engine y del entorno flexible de App Engine
- Instancias de Compute Engine con servicios de backend de balanceo de cargas HTTP(S)
- Contenedores de Google Kubernetes Engine
- Apps de Cloud Run con servicios de backend de balanceo de cargas de HTTP(S)
- Cloud Run con un solo clic y sin servicios de backend de balanceo de cargas
IAP no se puede usar con Cloud CDN.
¿Por qué aparece un # al final de mi URL después de acceder a mi aplicación?
Es posible que algunos navegadores en ciertas circunstancias agreguen un #
a la URL después de autenticarla. Esto es normal, y no ocasionará problemas para acceder a la aplicación.
¿Por qué mis solicitudes fallan y muestran 405 Method Not Allowed
?
Esto suele suceder cuando tus solicitudes no llevan cookies adjuntas. De forma predeterminada, los métodos de JavaScript no adjuntan cookies.
Los diferentes métodos de solicitud requieren diferentes enfoques:
- Para
XMLHttpRequest
, establecewithCredentials
entrue
. - Para la API de Fetch, establece
credentials
eninclude
osame-origin
.
Para controlar los errores relacionados con la sesión, consulta Administración de las sesiones de IAP.
¿Por qué recibo un HTTP 401 Unauthorized
en lugar de un 302 Redirect
?
IAP envía un 302 Redirect
solo cuando tu cliente está configurado para controlar redireccionamientos.
Agrega HTTP Accept="text/html,*/*"
a los encabezados de tu solicitud para indicar que se admiten redireccionamientos.
¿Por qué las solicitudes POST no activan redireccionamientos?
Los navegadores no redireccionan como respuesta a las solicitudes POST. En su lugar, IAP devuelve un código de estado 401 Unauthorized
.
Para las solicitudes POST a recursos protegidos con IAP, incluye una de las siguientes opciones:
- Un token de ID en un encabezado
Authorization: Bearer
- Cookies válidas (consulta cómo actualizar sesiones)
¿Puedo usar IAP si inhabilité la API?
Sí, los recursos protegidos por IAP siguen siendo accesibles cuando la API está inhabilitada, pero no podrás modificar los permisos de IAM.
¿Cómo puedo evitar que los usuarios con el rol de propietario usen IAP para TCP?
Lo ideal es limitar el uso del rol de propietario (roles/owner
) en favor de permisos más detallados. Consulta las prácticas recomendadas de IAM para obtener orientación.
Si eso no es posible, puedes bloquear IAP para TCP con reglas de firewall.
¿Qué dominio usa IAP para TCP?
IAP usa los siguientes dominios propiedad de Google:
tunnel.cloudproxy.app
mtls.tunnel.cloudproxy.app
(cuando está habilitado el acceso basado en certificados)
¿Por qué recibo el mensaje Server Error
?
Si ves lo siguiente:
The server encountered a temporary error and could not complete your request. Please try again in 30 seconds.
Es posible que tu firewall esté bloqueando las IPs del balanceador de cargas.
Verifica que tu firewall permita el tráfico de 130.211.0.0/22
y 35.191.0.0/16
. Si estas IPs no pueden acceder a tu backend, tus aplicaciones serán inaccesibles.
En el caso de las conexiones TCP de IAP a VMs específicas, asegúrate también de que la VM acepte conexiones del rango 35.235.240.0/20
.
¿Por qué recibo errores internos del servidor intermitentes?
Los mensajes como An internal server error occurred while authorizing your request.
Error code X
indican errores del backend.
Los códigos de error 1
, 30
, 62
, 63
, 64
o 703
suelen reflejar problemas transitorios. Implementa la retirada exponencial para los reintentos.
¿Cómo puedo solucionar los errores de cuota excedida (código de error 429)?
El código de error 429 se produce cuando tu aplicación supera los límites de solicitudes de la API de IAP. El servicio aplica cuotas independientes:
- Solicitudes basadas en el navegador: 360,000 por minuto por proyecto
- Solicitudes programáticas: 360,000 por minuto por proyecto
Una solicitud programática es aquella que incluye un encabezado AUTHORIZATION
o PROXY-AUTHORIZATION
y no incluye una cookie de IAP. Todas las demás solicitudes (incluidas las que no tienen credenciales) se consideran solicitudes del navegador.
Estos límites se aplican de forma colectiva a todos los recursos protegidos por IAP en tu proyecto.
Si tienes problemas relacionados con la cuota, considera estas soluciones:
- Evita las pruebas de carga en producción: usa rutas de red alternativas que omitan el IAP
- Para el tráfico de servicio a servicio, implementa la retirada exponencial para controlar los errores 429 de forma correcta
- Distribuye las aplicaciones con mucho tráfico en varios proyectos
- Usa Apigee o soluciones similares de puerta de enlace de API para aplicaciones basadas en APIs
- Comunícate con el Google Cloud equipo de asistencia para solicitar aumentos de cuota si el crecimiento orgánico está causando el problema.
Códigos de error
En la siguiente tabla, se enumeran los códigos de error comunes y los mensajes que se muestran cuando configuras y usas IAP.
Código de error | Descripción | Soluciona problemas |
---|---|---|
7 | ID o secreto de cliente de OAuth vacío | Visita la página Credenciales para verificar tu ID y secreto de cliente. Si parecen correctos, pero no funcionan, usa los métodos de la API para verificar la configuración (GET para Compute Engine y GET para App Engine) y restablecerlos con PATCH . |
9 | Redireccionamiento de OAuth fallido | Este es un error interno que se registró automáticamente. No es necesario que realices ninguna acción. |
9 (con reglas de reescritura de rutas de acceso) | Redireccionamiento de OAuth fallido | Las reglas de reescritura de rutas de acceso del balanceador de cargas impiden que se complete OAuth. Asegúrate de que todos los backends detrás de tu balanceador de cargas usen IDs de cliente de OAuth idénticos. Puedes actualizarlo con el comando gcloud compute backend-services update. |
9 (con reglas de enrutamiento de ruta) | Redireccionamiento de OAuth fallido | Crea variantes de reglas de ruta para ambas versiones de cada ruta (con y sin barras finales) y dirígelas al mismo backend. Por ejemplo, incluye reglas para /path/ y /path . |
11 | El ID de cliente de OAuth no está configurado correctamente | Verifica tu ID de cliente y tu secreto en la página Credenciales. Si parecen correctos, pero no funcionan, usa los métodos de la API para verificar la configuración (GET para Compute Engine y GET para App Engine) y restablecerlos con PATCH . |
13 | Token de OIDC no válido | Ve a la página Credenciales para confirmar que tu ID de cliente no se haya borrado ni modificado de forma incorrecta. |
51 | El navegador no admite la agrupación de conexiones | Pídeles a los usuarios finales que actualicen sus navegadores a las versiones actuales. Para obtener más detalles sobre los requisitos de conexión, consulta Restringe el acceso a los recursos. |
52 | Incoherencia entre el nombre de host y el certificado SSL | El administrador del sistema debe actualizar el certificado SSL para que coincida con el nombre de host. Consulta Restringe el acceso a los recursos para obtener orientación. |
52 (con entrada de mapa de certificados principal) | Incoherencia entre el nombre de host y el certificado SSL | IAP no admite entradas de mapa de certificados principales. Usa entradas separadas para asignar cada certificado al nombre de host correcto. Consulta Crea una entrada de mapa de certificados para obtener orientación. |
53 | El nombre de host no se encuentra en los dominios permitidos | Un administrador debe agregar tu nombre de host a la lista de dominios permitidos. Consulta Cómo restringir el acceso a los recursos para obtener instrucciones. |
253, HTTP 429 | Se superó la cuota de solicitudes | Alcanzaste los límites de solicitudes (360,000 por minuto para cada tipo de solicitud). Considera distribuir las cargas de trabajo en varios proyectos, implementar la limitación de solicitudes del cliente o comunicarte con el equipo de asistencia para solicitar aumentos de cuota si es necesario para un crecimiento legítimo. |
551 | IAP habilitadas en varios lugares | No puedes habilitar IAP en la regla de reenvío y en el servicio de backend. Inhabilítala en una ubicación siguiendo la guía de Habilitación para Compute Engine. |
700 y 701 | Problemas con el proveedor del grupo de personal | Configura exactamente un proveedor para tu grupo de trabajadores. Revisa las limitaciones de los grupos de personal para conocer los requisitos detallados. |
705 | Falta el ID de cliente de OAuth para la identidad de Workforce | Sigue el proceso de configuración completo: primero, crea un ID de cliente de OAuth y, luego, actualiza la configuración de IAP. |
708 | El nombre del grupo de trabajadores no es válido. | Verifica que tu grupo de trabajadores exista y use el formato correcto: locations/global/workforcePools/WORKFORCE_POOL_ID . |
4003 | Problema de conexión o firewall | Verifica que el proceso de la VM se esté ejecutando y escuchando en el puerto esperado. También verifica que tus reglas de firewall permitan conexiones en ese puerto. |
4010 | La conexión se cerró por el destino | Restablece la VM. Si los problemas persisten, examina auth.log (por lo general, en /var/log/ ) o usa la consola en serie para obtener diagnósticos más detallados. |
4033 | Problema de permiso, existencia o estado de la VM | Confirma que tienes asignada la función de usuario de túnel para el recurso a través de la página de IAP y verifica que la VM exista y se esté ejecutando. |
4047 | La instancia no existe o está detenida | Asegúrate de que la VM esté encendida y haya completado por completo su secuencia de inicio. |
Si no puedes resolver el problema o no ves el error en esta página, comunícate con Atención al cliente de Cloud y proporciona una descripción del error y la respuesta que recibes de una llamada GET
a la API. Asegúrate de quitar el secreto del cliente de la respuesta.