Beyond Corp in a Bottle - ¡Descorchado!
Hacer girar una aplicación de muestra con Google Identity
Este blog está coescrito por Jen Person y Max Saltonstall
Con más personas trabajando desde casa que nunca, las empresas necesitan soluciones para un acceso seguro a los recursos. No es fácil conectar a todos de forma segura desde fuera de la oficina, y el perfil de riesgo ha cambiado. Si no ha oído hablar del modelo BeyondCorp para acceso remoto a aplicaciones web, lea todo al respecto .
¿Cómo mantenemos a los trabajadores seguros cuando la FMH?
Hoy vamos a configurar una aplicación de muestra utilizando este modelo de confianza basado en el contexto. Ejecutaremos controles de acceso basados en identidad para una aplicación simple de App Engine, usando Cloud Identity para controlar la autorización. Siga leyendo para obtener instrucciones paso a paso para configurar una nueva aplicación y protegerla con Identity-Aware Proxy.
Proxy consciente de identidad
Antes de entrar en el ejemplo divertido, ¡es una buena idea conocer los productos que estamos usando! Cloud Identity Aware Proxy (IAP) puede ayudarlo a controlar el acceso a sus aplicaciones de nube pública, sus aplicaciones locales y sus máquinas virtuales que se ejecutan en Google Cloud. IAP funciona verificando la identidad de los usuarios y considerando el contexto de su solicitud para determinar si se les debe permitir el acceso. Este es un componente básico en el modelo de acceso de confianza cero, un modelo de seguridad empresarial que permite a cada empleado trabajar desde redes no confiables sin el uso de una VPN.
Identity-Aware Proxy decide quién entra o se queda afuera
Para nuestro ejemplo, estamos usando IAP para verificar la identidad y el contexto de un cliente antes de servir una aplicación de App Engine. Piense en IAP como el gorila y App Engine como el club: IAP lo ve y obtiene información sobre quién es, luego verifica si está en la lista. Si estás en eso, ¡estás dentro! Si no, entonces no tienes suerte y puedes pasar la noche en 403: Prohibido.
Implementación en App Engine
Para comenzar, necesitará un proyecto Google Cloud nuevo o existente con una aplicación App Engine. Estamos usando la muestra Node.js del repositorio de muestras de App Engine en GitHub. A continuación puede ver cómo usar la herramienta de línea de comandos gcloud para administrar proyectos.
Fácil y rápido de proteger App Engine, o cualquier aplicación
Si tiene gcloud y un proyecto listo, pase a “ Obtener el código ” a continuación. Si aún no tiene gcloud, la interfaz de línea de comandos de Google Cloud, descárguela y actualícela. Los productos se mejoran todo el tiempo, por lo que incluso si ya lo tiene instalado, es una buena idea ejecutar una actualización:
actualización de componentes gcloud
Inicie sesión en la cuenta que usará para administrar su proyecto.
inicio de sesión de autenticación de gcloud
Este comando abre una pestaña de Chrome para autenticarse en GCP.
Una vez que haya iniciado sesión, puede crear un proyecto con este comando:
Aplicación gcloud create --project = [YOUR_PROJECT_ID]
Estamos llamando a nuestro proyecto helloworld-portal. ¿Por qué? Porque eso es lo primero que pensamos en este momento.
Aplicación gcloud create --project = helloworld-portal
Obtén el código
Si no tiene un proyecto específico en mente, aquí es cuando puede obtener un código de muestra.
Clonar el repositorio de muestras:
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
Ingrese el directorio de muestra apropiado:
cd nodejs-docs-samples / appengine / hello-world / standard
Instale los paquetes requeridos:
npm install
¡Desplegar!
Una vez que los paquetes se hayan instalado, implemente la aplicación Node.js en App Engine con este comando:
Despliegue de la aplicación gcloud --project = helloworld-portal
Puede llamar a este comando sin el indicador - project, pero tenga en cuenta que al hacerlo, llamará al comando en el proyecto predeterminado. Si tiene muchos proyectos en marcha, ¡es mejor incluir la bandera y asegurarse de que está implementando la aplicación deseada!
Para ver su proyecto, use este comando o copie el enlace provisto en la respuesta del terminal:
Navegación en la aplicación gcloud --project = helloworld-portal

¿Hecho?
Muy bien, ¡implementamos con éxito una aplicación helloworld! Pero uhhh ... todavía hay toda la cuestión de seguridad que se supone que debemos abordar.
Por defecto, hemos hecho pública esta aplicación para cualquier persona en Internet, y eso no es lo que queremos. Para asegurarnos de que solo ingresen las personas adecuadas, usaremos Identity-Aware Proxy para controlar quién obtiene acceso, en función de su correo electrónico individual o la membresía de su grupo. De esa forma, limitamos la visibilidad de nuestro muy confidencial "¡Hola, mundo!"
Solo las personas específicamente permitidas superan la aplicación
Una vez que hayamos agregado estos controles, el equilibrador de carga restringirá quién accede a la aplicación y prohibirá el acceso a cualquier persona que no esté en la lista.
Configuración de proxy con reconocimiento de identidad
En la consola de la nube, navegue hasta la pestaña App Engine . Allí, encontrará el enlace de configuración de App Engine a la izquierda. En la parte inferior de la configuración de esas aplicaciones, seleccione " Configurar ahora ".

Una vez habilitado, querrá configurar la pantalla de consentimiento para informar a los usuarios de lo que aceptan al acceder a su aplicación.

Para Tipo de usuario, seleccione Interno. Externo permitirá que cualquier persona con una cuenta de Google inicie sesión. Nuestro objetivo es restringir esta aplicación a sus usuarios específicos.
Elija un icono para su aplicación. Elegí Mercury porque siempre está en temporada.
A continuación, verá campos para enlaces de dominio autorizados. Puede dejar estos campos en blanco por ahora.
Finalmente, selecciona Guardar .
¡IAP ahora está habilitado!
Uh oh: ahora todos están prohibidos!
Cuando vuelva a visitar su aplicación, verá una pantalla de inicio de sesión de Google. Inicie sesión con una cuenta de Google. Notarás que ya no puedes ver tu aplicación "hello world", que es exactamente lo que debería suceder, porque IAP comienza en un estado denegación predeterminado y no hemos agregado a nadie a la lista de personas permitidas.

Agregar usuarios autorizados
¡Es genial que tu aplicación esté restringida para que no cualquiera pueda usarla! Pero, por supuesto, ¡alguien tiene que poder acceder! En este caso, a saber, usted!
En la consola de la nube, seleccione Seguridad> Proxy con reconocimiento de identidad .
Seleccione su aplicación App Engine.
En el panel derecho, verá los roles actuales de IAM que se han otorgado.
Seleccione "Agregar miembro" y elija el correo electrónico que desea utilizar para acceder a la aplicación. Para los roles, elija Cloud IAP> Usuario de la aplicación web protegida por IAP .
Solo las personas adecuadas pueden acceder a sus aplicaciones ahora
¡Pruébalo!
¡Ahora su correo electrónico tiene acceso para usar la aplicación App Engine! Continúa y accede a la aplicación nuevamente. Inicie sesión con el correo electrónico que acaba de incluir.

¡Éxito! Ahora tiene acceso a su aplicación App Engine. Si inicia sesión con una dirección de correo electrónico que no tiene permiso, notará que no puede acceder a la aplicación.
¿Que sigue?
Sumérgete en las características de IAP a través de la documentación y pruébalo tú mismo.
IAP funciona muy bien en este escenario utilizando Google como el proveedor de identidad.
Pero, ¿qué pasa si su empresa ya tiene un proveedor que utilizan? ¿Qué sucede si su empresa usa OIDC, SAML o Facebook, por ejemplo?
En la próxima publicación, le mostraré cómo usar Identity-Aware Proxy con un proveedor de identidad diferente.
Beyond Corp in a Bottle - ¡Descorchado! se publicó originalmente en Google Cloud - Community on Medium, donde las personas continúan la conversación resaltando y respondiendo a esta historia.