En esta página, se describen los conceptos básicos de Identity-Aware Proxy (IAP), un servicio global de Google Cloud.
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 recursos de Google Cloud provienen de App Engine y Cloud Load Balancing (balanceo de cargas HTTP(S) externo e 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, los usuarios que pueden acceder a la URL asignada automáticamente pueden omitir la autenticación de IAP. Los controles de Ingress pueden restringir el acceso para usar el balanceo de cargas, pero solo si se configuran correctamente. Obtén más información sobre tus responsabilidades para garantizar la seguridad.
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 funciones 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.
Tus responsabilidades
IAP asegura la autenticación y autorización de todas las solicitudes a App Engine, Cloud Load Balancing (HTTPS) o el balanceador de cargas HTTP interno. IAP no protege contra la actividad dentro de un proyecto, como la de otra VM en él.
Para garantizar la seguridad, es necesario que tomes las siguientes precauciones:
- Configura tu firewall y balanceador de cargas para proteger contra el tráfico que no provenga de la infraestructura de servicio.
- Como alternativa, si usas Cloud Run, puedes restringir el acceso con los controles de entrada.
- Usa 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:
- 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
- Guía de autenticación de Google Cloud
- Configura un balanceador de cargas
- Configura un balanceador de cargas con Cloud Run (completamente administrado)
- Cómo restringir la entrada a Cloud Run