Paso 4: Configura Identity-Aware Proxy (IAP)

En este paso, configurarás Identity-Aware Proxy (IAP) para aprovisionar una capa de autorización centralizada para la app implementada en Cloud Run. Para ello, haz lo siguiente:

  1. Configurar la pantalla de consentimiento de OAuth: La pantalla de consentimiento de OAuth es un mensaje que incluye un resumen de tu proyecto, sus políticas y los permisos de acceso de autorización solicitados. Cuando configuras la pantalla de consentimiento de OAuth para tu app, defines lo que está disponible para los usuarios y revisores de apps, y también registras tu app para que puedas publicarla más adelante. Para obtener más información sobre la pantalla de consentimiento de OAuth, consulta Cómo configurar la pantalla de consentimiento de OAuth y elegir permisos.

  2. Crear credenciales de acceso de OAuth: Debes crear un ID de cliente de OAuth para tu app y tu dominio, de modo que tu app pueda llamar a las APIs requeridas. Para obtener más información sobre las credenciales de OAuth, consulta Crea credenciales de acceso.

  3. Habilitar IAP en el balanceador de cargas: Usa el ID de cliente y el secreto de OAuth para habilitar IAP en el balanceador de cargas que creaste para tu app.

  4. Activar IAP: Para proteger tu aplicación, crea principales que puedan acceder a ella y, luego, activa IAP.

  1. En la consola de Google Cloud, ve a la pantalla de consentimiento de OAuth.

    Ir a la pantalla de consentimiento de OAuth

  2. Selecciona uno de los siguientes tipos de usuarios para tu app:

    • Externo: Cualquier usuario con una Cuenta de Google puede realizar solicitudes de autorización. Para completar este instructivo, te recomendamos seleccionar Externo.

    • Interno: Solo los miembros de tu organización de Google Cloud pueden realizar solicitudes de autorización a la app.

  3. Haz clic en Crear.

  4. En la sección Dominios autorizados, Agregar dominio, especifica el nombre de dominio que se usó durante la creación del certificado.

  5. En la sección Información de contacto del desarrollador, ingresa tu dirección de correo electrónico.

  6. Haz clic en Guardar y continuar.

  7. En la página Permisos, haz clic en Guardar y continuar.

  8. Opcional: Si seleccionaste Externo como el tipo de usuario, agrega usuarios de prueba en la página Usuarios de prueba, de la siguiente manera:

    1. Haz clic en Agregar usuarios.

    2. Ingresa tu dirección de correo electrónico y los demás usuarios de prueba autorizados, y haz clic en Guardar y continuar.

  9. Revisa el resumen del registro de tu app. Para realizar cambios, haz clic en Editar. Si el registro de la app parece correcto, haz clic en Volver al panel.

Crea credenciales de acceso de OAuth

  1. En la consola de Google Cloud, ve a Credenciales.

    Ir a Credenciales

  2. Haz clic en Crear credenciales y, luego, en ID de cliente de OAuth.

  3. En la lista Tipo de aplicación, haz clic en Aplicación web.

  4. En el campo Nombre, ingresa gemini-streamlit-app.

  5. En la sección Orígenes autorizados de JavaScript, haz clic en Agregar URI y, luego, ingresa el siguiente URI:

    https://DOMAIN_NAME
    

    Reemplaza DOMAIN_NAME por el nombre de dominio que se usó durante la creación del certificado.

  6. Haz clic en Crear.

    Aparecerá la pantalla Se creó el cliente de OAuth, que muestra el ID de cliente y el Secreto del cliente.

  7. Copia el ID de cliente y el Secreto del cliente. Necesitarás los detalles en el siguiente paso del instructivo.

Habilita IAP en el balanceador de cargas

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. En la terminal de Cloud Shell, ejecuta el siguiente comando:
    
          gcloud compute backend-services update gemini-streamlit-app-backend \
          --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET \
          --global
          

    Reemplaza lo siguiente

    • CLIENT_ID: Es el ID de cliente de OAuth de las credenciales de OAuth que acabas de crear.
    • CLIENT_SECRET: El secreto del cliente de OAuth de las credenciales de OAuth que acabas de crear.

Configura y usa IAP

  1. Ir a la página de Identity-Aware Proxy.

    Ir a la página de Identity-Aware Proxy

  2. Elige tu proyecto.

  3. Selecciona la casilla de verificación junto a gemini-streamlit-app-backend.

  4. Haz clic en Agregar principal.

  5. Ingresa los detalles en los siguientes campos:

    • Principales nuevas: Ingresa las direcciones de correo electrónico de los grupos o las personas a las que deseas otorgarles acceso a tu app. Cualquiera de las siguientes opciones puede ser un principal:

      • Cuenta de Google

      • Grupo de Google

      • Cuenta de servicio

      • Dominio de Google Workspace

      Asegúrate de incluir una Cuenta de Google a la que tengas acceso.

  6. En la lista Rol, selecciona Cloud IAP > Usuario de aplicación web protegida con IAP.

  7. Haz clic en Guardar.

  8. En la página Identity-Aware Proxy, en Aplicaciones, haz clic en el botón de activación IAP para ponerlo en la posición de activado en la fila correspondiente al recurso gemini-streamlit-app-backend.

  9. En la ventana Activar IAP que aparece, selecciona la casilla de verificación para confirmar que leíste los requisitos de configuración y configuraste tu backend según corresponda.

  10. Haz clic en Activar. Después de activar IAP, se requieren credenciales de acceso para todas las conexiones a tu balanceador de cargas. Solo las cuentas con el rol Usuario de la aplicación web protegida con IAP en el proyecto tienen acceso.