¿Cómo puedo alojar una aplicación web (Django/Flask) de manera que su base de datos esté en la nube y solo los empleados de mi empresa puedan administrarla desde cualquier lugar? Si no es una aplicación web, ¿qué otro tipo de aplicaciones deberían usarse para manejar todo tipo de dispositivos, garantizar la privacidad de la empresa y estar en la nube al mismo tiempo?
Hay una respuesta para AWS, así que proporcionaré una solución usando Google Cloud.
Primero, puede implementar su aplicación usando Google Kubernetes Engine o Google Compute Engine o App Engine.
En segundo lugar, debe crear un balanceador de carga HTTPS externo para el acceso público desde Internet.
En tercer lugar, debe configurar Identity Aware Proxy para permitir que solo los usuarios con Identidad accedan a la aplicación (Identidades de Google o identidades de terceros)
A partir de mis propias experiencias con AWS y GCP, descubrí que GCP Identity Aware Proxy es la solución más fácil de configurar, pero tendrá menos control y menos opciones en los métodos de autenticación y autorización.
Es probable que haya muchas arquitecturas para este escenario ofrecidas por diferentes proveedores de nube.
En AWS, por ejemplo, podría hacer esto con una VPC compuesta por una combinación de subredes públicas y privadas, además de acceso VPN de sitio a sitio. El servidor web estaría en la subred pública escuchando en una IP elástica, mientras que la base de datos estaría en la subred privada y conectada a través de VPN y una puerta de enlace privada virtual a su sitio corporativo.
Todo depende de sus requisitos y limitaciones específicas.
Vea solo uno de los muchos ejemplos posibles: