En esta página, se describen los conceptos básicos de Identity-Aware Proxy (IAP), un Google Cloud servicio global.
IAP te permite establecer una capa de autorización central para las aplicaciones a las que se accede mediante HTTPS, por lo que puedes usar un modelo de control de acceso a nivel de aplicación en lugar de firewalls a nivel de red.
Las políticas de IAP se ajustan a tu organización. Puedes definir las políticas de acceso de forma centralizada y aplicarlas a todas tus aplicaciones y recursos. Cuando asignas un equipo dedicado a la creación y aplicación de políticas, proteges a tu proyecto de que estas se definan o implementen de manera incorrecta en las aplicaciones.
Cuándo usar IAP
Usa IAP cuando desees aplicar políticas de control de acceso para aplicaciones y recursos. IAP funciona con encabezados firmados o con la API de usuarios del entorno estándar de App Engine para proteger tu aplicación. Con IAP, puedes configurar el acceso a las aplicaciones en grupo: un recurso podría ser accesible para los empleados pero inaccesible para los contratistas, o solo accesible para un departamento específico.
Cómo funciona IAP
Cuando una aplicación o recurso está protegido por IAP, solo las principales, también conocidas como usuarios, que tengan asignada la función de Administración de identidades y accesos (IAM) correcta pueden acceder a ellos a través del proxy. Cuando otorgas a un usuario acceso a una aplicación o un recurso mediante IAP, estará sujeto a los controles de acceso detallados que implementa el producto en uso sin necesidad de una VPN. Cuando un usuario intenta acceder a un recurso protegido por IAP, este realiza comprobaciones de autenticación y autorización.




Autenticación
Las solicitudes a tus Google Cloud recursos llegan a través de Cloud Run, App Engine y Cloud Load Balancing (balanceo de cargas HTTP(S) externo y interno). El código de infraestructura de entrega de estos productos verifica si se habilitó IAP para el servicio de aplicaciones o backend. Si IAP está habilitado, la información sobre el recurso protegido se envía al servidor de autenticación de IAP. Esto incluye información como el número de proyecto de Google Cloud , la URL de la solicitud y todas las credenciales de IAP en los encabezados o las cookies de la solicitud.
A continuación, IAP verifica las credenciales del navegador del usuario. De no encontrar ninguna, se redirecciona al usuario a un flujo de acceso de una Cuenta de Google con OAuth 2.0 que almacena un token en una cookie del navegador para accesos futuros. Si necesitas crear Cuentas de Google para usuarios ya existentes, puedes usar Google Cloud Directory Sync y sincronizarlas con el servidor de Active Directory o LDAP.
Si las credenciales de la solicitud son válidas, el servidor de autenticación las utiliza para averiguar la identidad del usuario (ID del usuario y dirección de correo electrónico). A continuación, el servidor de autenticación usa la identidad para verificar la función de IAM del usuario y verificar si está autorizado para acceder al recurso.
Si usas Compute Engine o Google Kubernetes Engine, los usuarios que puedan acceder al puerto de la aplicación de la máquina virtual (VM) pueden omitir la autenticación de IAP. Las reglas de firewall de Compute Engine y GKE no pueden evitar el acceso del código que se ejecuta en la misma VM que la aplicación protegida por IAP. Las reglas de firewall sí pueden evitar accesos provenientes de otras VM, siempre y cuando estén bien configuradas. Conoce cuáles son tus responsabilidades para garantizar la seguridad.
Si usas Cloud Run, puedes habilitar IAP de las siguientes maneras:
- Directamente en tus servicios de Cloud Run Esto permite que la IAP proteja todas las rutas de entrada a Cloud Run, incluida la URL asignada automáticamente y cualquier URL del balanceador de cargas configurada. Esta configuración es útil cuando tienes un solo servicio de Cloud Run para habilitar la IAP.
- A través de un balanceador de cargas con un backend de Cloud Run Esta configuración es útil cuando tienes varios servicios de Cloud Run en diferentes regiones detrás de un solo balanceador de cargas global. En esta configuración, la URL asignada automáticamente no está protegida por el IAP y es posible que se pueda acceder a ella directamente. Obtén más información sobre tus responsabilidades para garantizar la seguridad.
Si un servicio de Cloud Run se encuentra detrás de un balanceador de cargas, no habilites IAP en el balanceador de cargas ni en el servicio de Cloud Run.
Autorización
Después de la autenticación, IAP aplica la política de IAM relevante para comprobar si el usuario está autorizado a acceder al recurso solicitado. Si el usuario tiene la función de Usuario de app web protegida por IAP en el proyecto de la consola de Google Cloud donde existe el recurso, está autorizado para acceder a la aplicación. Para administrar la lista de roles del Usuario de app web protegida con IAP, usa el panel de IAP en la consola de Google Cloud.
Cuando activas IAP para un recurso, se crea un ID de cliente y secreto de OAuth 2.0 de manera automática. Si borras las credenciales de OAuth 2.0 generadas de manera automática, IAP no funcionará correctamente. Puedes ver y administrar las credenciales de OAuth 2.0 en los servicios y APIs de la consola de Google Cloud.
Acceso adaptado al contexto
Como parte del paso de autorización, puedes usar el acceso basado en el contexto para proporcionar acceso seguro a los siguientes tipos de recursos:
APIs y consola de Google Cloud
- Primera capa de defensa para proteger el acceso de la infraestructura a Google Cloud.
- Acceso avanzado Google Cloud a los usuarios adaptado al contexto
Máquinas virtuales (VMs)
- Habilita el acceso administrativo de SSH/RDP a las VMs en Google Cloud y en otras nubes.
- Te permite implementar controles sólidos adaptados al contexto para restringir el acceso solo a los administradores designados.
Aplicaciones web
- Proporciona autorización y autenticación para aplicaciones web alojadas en Google Cloud y otras nubes.
- Proporciona autorización continua para evitar el acceso no autorizado y la pérdida de datos.
Tus responsabilidades
IAP garantiza la autenticación y autorización de todas las solicitudes a Cloud Run, App Engine, Cloud Load Balancing (HTTPS) y el balanceo de cargas HTTP interno.
Para garantizar la seguridad, es necesario que tomes las siguientes precauciones:
- Si habilitas la IAP en un balanceador de cargas, verifica si se puede acceder directamente a los recursos del backend.
- Si el recurso de backend es una VM, configura las reglas de firewall para protegerte contra el tráfico que no provenga del balanceador de cargas. IAP no protege contra la actividad dentro de un mismo proyecto, como la de otra VM en él.
- Si el recurso de backend es un servicio de Cloud Run, puedes inhabilitar la URL de run.app para asegurarte de que toda la entrada llegue a través del balanceador de cargas. Si decides dejar habilitada la URL run.app, debes usar controles de entrada para bloquear el tráfico desde fuera de tu red.
- Actualiza tu app para usar encabezados firmados o las API de usuarios del entorno estándar de App Engine.
¿Qué sigue?
- Para comenzar a usar los IAP, completa una de las siguientes tareas:
- Habilita IAP directamente en tus servicios de Cloud Run o en un balanceador de cargas con un backend de Cloud Run.
- Completa la guía de inicio rápido de App Engine para Administrar el acceso con las Cuentas de Google.
- Habilita IAP para Compute Engine.
- Habilita IAP para GKE.
- Habilita IAP para apps locales.
- Más información:
- Autentica en Compute Engine
- Opciones de autenticación de usuarios de App Engine
- Usa OAuth 2.0 para acceder a las APIs de Google
- Google Cloud guía de auth
- Configura un balanceador de cargas
- Configura un balanceador de cargas con Cloud Run (completamente administrado)
- Cómo restringir la entrada a Cloud Run