es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Puerta de enlace de la API de GCP para asegurar la comunicación interna/externa para la API desplegada en App Engine.

Estoy construyendo una arquitectura de microservicios y necesito ayuda con la comunicación interna/externa.

Tengo microservicios que están desplegados en GCP App Engine Flex y tengo un GCP API Gateway que se sitúa delante de ellos. El API Gateway maneja la autenticación de la comunicación externa utilizando un token JWT enviado en el encabezado de la solicitud firmado mediante la clave privada de la cuenta de servicio.

En App Engine, hemos configurado Ingress (Interno + Balanceador de carga), por lo que las URL de appspot de App Engine están bloqueadas externamente. Cada servicio tiene un balanceador de carga en el que está habilitado el IAP y solo la cuenta de servicio del API Gateway tiene el rol de usuario de aplicación web segura de IAP para pasar la solicitud al balanceador de carga.

Mis preguntas son:

  • ¿Debería utilizarse GCP API Gateway para la comunicación interna de servicio a servicio?
  • Dado que tenemos el Ingress (Interno + Balanceador de carga) habilitado en App Engine y las URL de appspot solo son accesibles dentro del proyecto de GCP, ¿se pueden utilizar estas URL para la comunicación interna de servicio a servicio? ¿Es este un enfoque seguro/recomendado?

¿Cuál de las dos opciones anteriores se adapta mejor a la arquitectura para administrar la comunicación segura? Además, si es posible, por favor sugiera algunas alternativas.

Actualización: Agregando diagrama de flujo para ambos enfoques.

Approach-1
Approach-2

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en arquitectura de microservicios y GCP, recomendaría utilizar el API Gateway de GCP tanto para la comunicación interna como externa.

    Aunque App Engine tiene una configuración de ingreso para equilibrio de carga interno, se recomienda utilizar el API Gateway para la comunicación interna ya que proporciona un gobierno centralizado, seguridad y validación de datos para todos los microservicios. Esto facilita la gestión y monitorización de la comunicación de servicio a servicio y garantiza la consistencia en las políticas de autenticación y autorización.

    El uso de URLs de appspot para la comunicación interna es factible, pero no es seguro ya que no hay un gobierno centralizado para la autenticación y autorización, y la URL puede ser accesible por cualquier persona con acceso directo al proyecto. Además, el uso del API Gateway para la comunicación interna permite aplicar los mismos controles de seguridad tanto para la comunicación interna como externa.

    Una alternativa sería utilizar un service mesh como Istio o Linkerd para la comunicación de servicio a servicio. Estas herramientas proporcionan gestión de tráfico, seguridad y observabilidad para los microservicios dentro de un clúster. Sin embargo, requieren una configuración y ajuste adicionales en comparación con el API Gateway.

    Para una arquitectura de microservicios segura y manejable en GCP, recomiendo utilizar el API Gateway de GCP tanto para la comunicación interna como externa.

    Aquí hay diagramas que ilustran ambos enfoques:

    Enfoque 1: Utilizando el API Gateway para la comunicación interna y externa

    Enfoque-1

    Enfoque 2: Utilizando la URL de appspot para la comunicación interna y el API Gateway para la comunicación externa

    Enfoque-2

Comments are closed.