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 IAP protege una aplicación o un recurso, solo pueden acceder a ellos a través del proxy las principales, también conocidas como usuarios, que tengan la función de administración de identidades y accesos (IAM) correcta. 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 con IAP, IAP realiza verificaciones de autenticación y autorización.
![diagrama de flujo de una solicitud para App Engine cuando se usa Cloud IAP](https://cloud.google.com/iap/images/iap-app.png?authuser=9&hl=es)
![diagrama de la ruta de acceso a una solicitud para Cloud Run cuando se usa Cloud IAP](https://cloud.google.com/iap/images/iap-ingress-app.png?authuser=9&hl=es)
![diagrama de flujo de una solicitud para Compute Engine y Kubernetes Engine cuando se usa Cloud IAP](https://cloud.google.com/iap/images/iap-load-balancer.png?authuser=9&hl=es)
![diagrama de flujo de una solicitud para Compute Engine y Kubernetes Engine cuando se usa Cloud IAP](https://cloud.google.com/iap/images/iap-load-balancer.png?authuser=9&hl=es)
![diagrama de flujo de una solicitud para una aplicación local cuando se usa Cloud IAP](https://cloud.google.com/iap/images/iap-on-prem.png?authuser=9&hl=es)
Autenticación
Las solicitudes a tus recursos de Google Cloud provienen de App Engine y Cloud Load Balancing (balanceo de cargas de HTTP(S) interno y externo). El código de infraestructura de entrega de estos productos verifica si IAP está habilitado para la aplicación o el servicio de 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 pueden protegerlo contra el acceso desde otra VM, pero solo si están configuradas de forma correcta. 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 entrada pueden restringir el acceso para usar el balanceo de cargas, pero solo si se configuran de forma correcta. 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 aplicación web protegida con IAP en el proyecto de la consola de Google Cloud en el que existe el recurso, está autorizado para acceder a la aplicación. Para administrar la lista de funciones del Usuario de aplicación 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 las API y los servicios de la consola de Google Cloud.
Tus responsabilidades
IAP protege la autenticación y autorización de todas las solicitudes a App Engine, Cloud Load Balancing (HTTPS) o el balanceo de cargas de HTTP interno. IAP no protege contra la actividad dentro de un proyecto, como otra VM dentro del proyecto.
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 mediante los controles de entrada.
- Usa encabezados firmados o las API de usuarios del entorno estándar de App Engine.
¿Qué sigue?
- Completa una de las siguientes tareas para comenzar a usar IAP:
- Completa la guía de inicio rápido de App Engine para administrar el acceso con Cuentas de Google.
- Habilita IAP para Compute Engine.
- Habilita IAP para GKE.
- Habilita IAP para aplicaciones locales.
- Más información:
- Autenticación en Compute Engine
- Opciones de autenticación del usuario 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)
- Restringe la entrada para Cloud Run