Preguntas frecuentes y solución de problemas

En este artículo, se incluyen preguntas frecuentes sobre Identity-Aware Proxy (IAP).

¿Qué aplicaciones puedo proteger con IAP?

IAP se puede usar con lo siguiente:

  • Entorno estándar de App Engine y aplicaciones de 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 HTTP(S)

Actualmente, 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 se muestra un código de estado 405 Método no permitido?

El origen de este error puede estar en que tus solicitudes no llevan cookies adjuntas. Según la configuración predeterminada, los métodos de JavaScript no adjuntan cookies a las solicitudes.

La forma de incluir cookies varía dependiendo del método de solicitud que utilices. Por ejemplo, las solicitudes enviadas con un objeto XMLHttpRequest necesita la propiedad withCredentials establecida en true, mientras que las solicitudes enviadas con la API de recuperación necesitan la opción credentials configurada en include o same-origin.

Para obtener información sobre cómo manejar los errores que se producen después de un tiempo, consulta Administración de las sesiones de Cloud IAP.

¿Por qué recibo un código de estado HTTP 401 No autorizado en lugar de un HTTP 302 Redireccionamiento?

IAP responde con un código de estado 302 Redirect cuando un cliente está configurado para manejar redireccionamientos. Para indicar que tu cliente puede manejar redireccionamientos, asegúrate de que HTTP Accept="text/html,*/*" esté en el encabezado de las solicitudes.

¿Por qué las solicitudes POST no activan redireccionamientos?

Para activar redireccionamientos, asegúrate de que las llamadas a IAP no sean solicitudes POST. Los navegadores no redireccionan como respuesta a las solicitudes POST. Debido a esto, IAP responde con un código de estado 401 Unauthorized en lugar de 302 Redirect.

Si necesitas IAP para entregar solicitudes POST, asegúrate de que el token de ID o las cookies válidas se envíen en el encabezado de la solicitud.

Incluye el token de ID en un encabezado Authorization: Bearer para realizar una solicitud autenticada al recurso protegido con IAP. Para obtener cookies válidas, actualiza la sesión.

¿Puedo usar IAP si inhabilité la API?

Sí, el acceso a los recursos protegidos con IAP funciona con la API inhabilitada, pero no podrás realizar cambios en los permisos de IAM.

¿Cómo puedo evitar que los usuarios con la función de propietario usen IAP para TCP?

Primero, evita usar la función de propietario (roles/owner) tanto como sea posible. La función de propietario otorga amplios permisos en Google Cloud. Asignar funciones y permisos más detallados puede aumentar la seguridad de tu proyecto. Para obtener más información, consulta las prácticas recomendadas de IAM.

Si no puedes reducir el uso de la función de propietario, puedes bloquear IAP para TCP mediante reglas de firewall.

¿Qué dominio usa IAP para TCP?

IAP utiliza los siguientes dominios, que son propiedad de Google:

Si te conectas a través de un servidor proxy o firewall, asegúrate de que permitan el tráfico a estos dominios y de que no bloqueen el uso de las conexiones de WebSocket.

Si bloqueas el tráfico a estos dominios, no podrás usar IAP para TCP. Es posible que recibas uno de varios mensajes de error.

Si usas gcloud, el mensaje de error podría ser el siguiente:

Error while connecting [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

Si usas SSH desde el navegador, el mensaje de error es el siguiente:

Cloud Identity-Aware Proxy Failed

No hay ningún código de error asociado.

¿Por qué recibo el error Server Error?

Si recibes el siguiente mensaje de error, es posible que tu firewall esté inhabilitando las IP 130.211.0.0/22 y 35.191.0.0/16:

Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.

Si los IP del balanceador de cargas 130.211.0.0/22 y 35.191.0.0/16 no pueden acceder a tu backend, es posible que no se pueda acceder a tus aplicaciones. Para obtener más información, consulta Configura un balanceador de cargas HTTPS externo.

Si usas IAP para TCP a fin de conectarse a una VM específica, la VM debe aceptar conexiones de direcciones en el rango 35.235.240.0/20.

¿Por qué recibo errores intermitentes del servidor interno?

Si recibes un mensaje de error con el formato An internal server error occurred while authorizing your request. Error code X, esto indica una falla interna. Los errores internos con códigos de error 1 o 30 indican fallas en el backend. A menudo, una tasa baja de estos errores de backend indica un problema transitorio. Los clientes deben reintentar la solicitud con la retirada exponencial.

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 o mensaje de error Descripción Soluciona problemas
Código de error 7 Tu ID de cliente de OAuth o los valores secretos están vacíos. A fin de verificar que tu ID de cliente y tu secreto estén configurados correctamente para tu aplicación, consulta la página Credenciales. Si parece que tu ID de cliente y tu secreto están configurados correctamente, usa el método GET para ver el estado actual y el método PATCH a fin de restablecer el ID de cliente y el secreto:
API de Compute Engine: GET, PATCH
API de App Engine: GET, PATCH
Código de error 9 No se completó un redireccionamiento de OAuth. Se trata de un error interno y se registró para su revisión.
Código de error 9 (con reglas de reescritura de ruta de acceso) No se completó un redireccionamiento de OAuth. Las reglas de reescritura de ruta del balanceador de cargas de Google Cloud interfieren en la capacidad de IAP de completar correctamente un flujo de OAuth. Si alojas varios backends detrás del balanceador de cargas de Google Cloud y usas reglas de reescritura de ruta de acceso, asegúrate de que ambos usen los mismos ID de cliente de OAuth para IAP. Puedes cambiar un ID de cliente de OAuth para un servicio de backend con el comando gcloud compute backend-services update.
Código de error 11 Tu ID de cliente de OAuth no está configurado correctamente. A fin de verificar que tu ID de cliente y tu secreto estén configurados correctamente para tu aplicación, consulta la página Credenciales. Si parece que tu ID de cliente y tu secreto están configurados correctamente, usa el método GET para ver el estado actual y el método PATCH a fin de restablecer el ID de cliente y el secreto:
API de Compute Engine: GET, PATCH
API de App Engine: GET, PATCH
Código de error 13 El token de OpenID Connect (OIDC) no es válido. A fin de asegurarte de que el ID de cliente configurado para IAP no se borre, consulta la página Credenciales.
Código de error 51 Tu navegador no admite la agrupación de conexiones. Un navegador actual y actualizado puede controlar los errores de agrupación de conexiones. Asegúrate de que los usuarios finales utilicen un navegador actualizado y actualizado. Para obtener más información, consulta Restringe el acceso a recursos de dominios específicos.
Código de error 52 El nombre de host proporcionado no coincide con el certificado SSL del servidor. Es posible que el administrador del sistema deba actualizar el certificado SSL. Para obtener más información, consulta Restringe el acceso a recursos de dominios específicos.
Código de error 53 El nombre de host no coincide con los dominios que permite el administrador de IAP. El administrador debe actualizar la lista de dominios permitidos para incluir tu nombre de host. Para obtener más información, consulta Restringe el acceso a recursos de dominios específicos.
Código de error 429 Tu proyecto supera el umbral por minuto de solicitudes. Los proyectos de IAP están limitados a un máximo de 360,000 solicitudes por minuto. Si encuentras este error, reduce el volumen de solicitudes de tu proyecto. Puedes comunicarte con el equipo de Asistencia de Google Cloud si tienes más preguntas.
Código de error 4003 Esto puede significar que la instancia no escucha en el puerto al que intentas conectarte o que el firewall está cerrado. Cualquiera de esos problemas también podría provocar que falle la prueba de conectividad de inicio a la instancia de VM. Asegúrate de que el proceso de escucha en la VM se esté ejecutando y escuchando en el puerto correcto. Además, verifica que tu firewall de Google Cloud esté configurado correctamente y que esté abierto en el puerto al que te estás conectando.
Código de error 4010 Se estableció una conexión, pero la instancia de destino la cerró. Por lo general, esto indica que hay un problema en la instancia o el programa que está escuchando en el puerto de destino. Restablece la instancia. Si usas SSH para conectarte, revisa el registro auth.log en busca de errores inesperados. La ubicación predeterminada del archivo de registro es /var/log/. Si no puedes acceder a los registros con SSH, intenta usar la consola en serie o desconecta y vuelve a conectar el disco a una VM nueva para ver los registros. Adjunta los registros cuando te comuniques con el equipo de asistencia al cliente.
Código de error 4033 O bien no tienes permiso para acceder a la instancia, la instancia no existe o la instancia está detenida. Visualiza la página de Identity-Aware Proxy para asegurarte de tener la función de usuario de túnel protegido con IAP de IAM aplicada en el recurso al que te estás conectando.
Código de error 4047 La instancia no existe o se detuvo. Asegúrate de que la VM esté encendida y haya completado su inicio.

Si no puedes resolver el problema, comunícate con la asistencia al cliente mediante la descripción del error y la respuesta que recibes de una llamada GET a la API. Puedes quitar el secreto del cliente de la respuesta.