Descripción general de Identity-Aware Proxy

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 quieras aplicar políticas de control de acceso para aplicaciones y recursos. IAP funciona con encabezados firmados o con la API de Users del entorno estándar de App Engine para proteger tu app. Con IAP, puedes configurar el acceso a la aplicación basado en grupos: un recurso puede ser accesible para los empleados y no accesible para los contratistas, o solo accesible para un departamento específico.

Cómo funciona IAP

Cuando una aplicación o un recurso están protegidos por IAP, solo las principales, también conocidas como usuarios, que tengan el rol de Identity and Access Management (IAM) correcto 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, IAP realiza verificaciones de autenticación y de autorización.

App Engine
ruta de solicitud a App Engine cuando se usa Cloud IAP
Cloud Run
Ruta de acceso de la solicitud a Cloud Run cuando se usa Cloud IAP
Compute Engine
ruta de solicitud a Compute Engine y Kubernetes Engine cuando se usa Cloud IAP
GKE
ruta de solicitud a Compute Engine y Kubernetes Engine cuando se usa Cloud IAP
Local
la ruta de acceso de la solicitud a una app local cuando se usa Cloud IAP

Autenticación

Las solicitudes a tus recursos de Google Cloud llegan a través de Cloud Run, App Engine y Cloud Load Balancing (balanceo de cargas de HTTP(S) interno y externo). El código de la infraestructura de entrega de estos productos verifica si IAP está habilitado para la app 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 cualquier credencial de IAP en los encabezados de la solicitud o las cookies.

Luego, IAP verifica si el usuario accedió. Si el usuario no accedió, su navegador se redireccionará a uno de los siguientes métodos de acceso que admite IAP:

  • Cuenta de Google: Tus usuarios de Google Cloud con Cuentas de Google se redireccionan a través del flujo de acceso de la Cuenta de Google para acceder a Google Cloud.
  • Federación de identidades de personal: Tus usuarios de Google Cloud en un proveedor de identidad externo se redireccionan a través de su acceso de IdP para acceder a Google Cloud.
  • Identity Platform: Son tus clientes que usan correo electrónico y contraseñas, o accesos sociales, como Facebook, Apple y Google (Gmail), para acceder a tu aplicación.

Después de la autenticación, el navegador del usuario almacena un token en una cookie del navegador para los accesos futuros.

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 proteger contra el acceso desde el código que se ejecuta en la misma VM que la aplicación protegida por IAP. Las reglas de firewall pueden proteger contra el acceso desde otra VM, pero solo si se configuran de forma correcta. Obtén más información sobre 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 IAP proteja todas las rutas de entrada a Cloud Run, incluida la URL asignada automáticamente y cualquier URL de balanceador de cargas configurada. Esta configuración es útil cuando tienes un solo servicio de Cloud Run para el que deseas habilitar 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 con un solo balanceador de cargas global. En esta configuración, la URL asignada automáticamente no está protegida por 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 ejecuta con un balanceador de cargas, no habilites IAP en el balanceador de cargas ni en el servicio de Cloud Run.

Obtén más información sobre la federación de identidades de personal. Obtén información para configurar IAP con la federación de identidades de personal. Como alternativa, si deseas sincronizar tus identidades externas con sus propias Cuentas de Google, puedes usar Google Cloud Directory Sync para sincronizar con tu IdP.

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 el rol de Usuario de app web protegida con IAP en el proyecto de la consola deGoogle Cloud en el que existe el recurso, tiene autorización para acceder a la aplicación. Para administrar la lista del rol de Usuario de app web protegida con IAP, usa el panel de IAP en la consola de Google Cloud .

Cuando habilitas IAP para un recurso, se crean automáticamente un ID de cliente y un secreto de OAuth 2.0. 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 deGoogle Cloud .

Acceso adaptado al contexto

Como parte del paso de autorización, puedes usar el Acceso adaptado al contexto para proporcionar acceso seguro a los siguientes tipos de recursos:

Consola y APIs deGoogle Cloud
  • Es la primera capa de defensa para proteger el acceso a la infraestructura de Google Cloud.
  • Acceso avanzado adaptado al contexto Google Cloud para los usuarios
Virtual Machines (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 las 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 protege la autenticación y la autorización de todas las solicitudes a Cloud Run, App Engine, Cloud Load Balancing (HTTPS) y el balanceo de cargas de HTTP interno.

Para garantizar la seguridad, es necesario que tomes las siguientes precauciones:

  • Si habilitas IAP en un balanceador de cargas, verifica si se puede acceder directamente a los recursos de backend.

    • Si el recurso de backend es una VM, configura las reglas de firewall para protegerte del tráfico que no pasa por el balanceador de cargas. IAP no protege contra la actividad dentro de un proyecto, como la de otra VM en el proyecto.

    • Si el recurso de backend es un servicio de Cloud Run, puedes inhabilitar la URL run.app para asegurarte de que todo el tráfico de entrada pase por el balanceador de cargas. Si decides dejar habilitada la URL de run.app, debes usar controles de entrada para bloquear el tráfico que provenga de fuera de tu red.

  • Actualiza tu app para usar encabezados firmados o usa la API de Users del entorno estándar de App Engine.

¿Qué sigue?