En esta página se explica cómo proteger una instancia de App Engine con Identity-Aware Proxy (IAP).
Antes de empezar
Para habilitar IAP para App Engine, necesitas lo siguiente:
- Un proyecto de la consola de Google Cloud con la facturación habilitada. Google Cloud
Si aún no has configurado tu instancia de App Engine, consulta la guía completa para implementar App Engine.
IAP usa un cliente de OAuth gestionado por Google para autenticar a los usuarios. Solo los usuarios de la organización pueden acceder a la aplicación con IAP. Si quieres permitir el acceso a usuarios ajenos a tu organización, consulta Habilitar las compras en aplicaciones para aplicaciones externas.
Habilitar IAP
Consola
El cliente de OAuth gestionado por Google no está disponible al habilitar IAP mediante la Google Cloud consola.
Si no has configurado la pantalla de consentimiento de OAuth de tu proyecto, se te pedirá que lo hagas. Para configurar la pantalla de consentimiento de OAuth, consulta el artículo Configurar la pantalla de consentimiento de OAuth.
Configurar el acceso a IAP
-
Ve a la página Identity-Aware Proxy.
Ve a la página Identity-Aware Proxy - Selecciona el proyecto que quieras proteger con IAP.
- Seleccione la casilla situada junto al recurso al que quiera conceder acceso.
- En el panel lateral de la derecha, haz clic en Añadir principal.
-
En el cuadro de diálogo Añadir principales que aparece, introduce las direcciones de correo de los grupos o las personas que deban tener el rol Usuario de aplicaciones web protegidas mediante IAP en el proyecto.
Los siguientes tipos de principales pueden tener este rol:
- Cuenta de Google: usuario@gmail.com
- Grupo de Google: admins@googlegroups.com
- Cuenta de servicio: servidor@example.gserviceaccount.com
- Dominio de Google Workspace: example.com
Asegúrate de añadir una cuenta de Google a la que tengas acceso.
- En la lista desplegable Roles, selecciona Cloud IAP > IAP-secured Web App User (Cloud IAP > Usuario de aplicación web protegida con IAP).
- Haz clic en Guardar.
Activando IAP
-
En la página Identity-Aware Proxy, en APLICACIONES, busca la aplicación a la que quieras restringir el acceso. Para activar IAP en un recurso, haz lo siguiente:
- En la ventana Activar IAP que aparece, haz clic en Activar para confirmar que quieres que IAP proteja tu recurso. Una vez que hayas activado IAP, se requerirán credenciales de inicio de sesión para todas las conexiones con tu balanceador de carga. Solo se concederá acceso a las cuentas que tengan el rol Usuario de aplicaciones web protegidas mediante IAP en el proyecto.
gcloud
Antes de configurar tu proyecto y las compras en la aplicación, necesitas una versión actualizada de la CLI de gcloud. Para obtener instrucciones sobre cómo instalar gcloud CLI, consulta Instalar gcloud CLI.
-
Para autenticarte, usa la CLI de Google Cloud y ejecuta el siguiente comando.
gcloud auth login
- Haz clic en la URL que aparece e inicia sesión.
- Después de iniciar sesión, copia el código de verificación que aparece y pégalo en la línea de comandos.
-
Ejecuta el siguiente comando para especificar el proyecto que contiene las aplicaciones que quieres proteger con la compra en la aplicación.
gcloud config set project PROJECT_ID
-
Para habilitar IAP, ejecuta el siguiente comando.
gcloud iap web enable --resource-type=app-engine --versions=version
-
Añade al proyecto las entidades que deban tener el rol de usuario de aplicaciones web protegidas mediante IAP.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL_IDENTIFIER \ --role=roles/iap.httpsResourceAccessor
- Sustituye PROJECT_ID por el ID del proyecto.
- Sustituye PRINCIPAL_IDENTIFIER por los principales necesarios. Puede ser un tipo de dominio, grupo, cuenta de servicio o usuario. Por ejemplo,
user:myemail@example.com
.
Una vez que hayas habilitado IAP, puedes usar la CLI de gcloud para modificar la política de acceso de IAP con el rol de IAM roles/iap.httpsResourceAccessor
. Más información sobre cómo gestionar roles y permisos
API
Ejecuta el siguiente comando para preparar un archivo
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
Ejecuta el siguiente comando para habilitar IAP.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
Una vez que hayas habilitado IAP, puedes usar la CLI de Google Cloud para modificar la política de acceso de IAP con el rol de gestión de identidades y accesos roles/iap.httpsResourceAccessor
. Más información sobre cómo gestionar roles y permisos
Probar la autenticación de usuarios
Accede a la URL de la aplicación desde una cuenta de Google que hayas añadido a IAP con el rol Usuario de aplicaciones web protegidas mediante IAP, tal como se ha descrito anteriormente. Deberías poder acceder a ella sin problemas.
Usa una ventana de Incógnito en Chrome para acceder a la aplicación e inicia sesión cuando aparezca el mensaje correspondiente. Si intentas acceder a la aplicación con una cuenta que no tiene autorización con el rol Usuario de aplicación web protegida por IAP, verás un mensaje que indica que no tienes acceso.