我正在构建一个微服务架构,我需要内部/外部通信方面的帮助。
我有部署在 GCP App Engine Flex 上的微服务,并且在它们前面有 GCP API 网关。API Gateway 使用通过服务帐户私钥签名的请求标头中发送的 JWT 令牌处理外部通信身份验证。
在 App Engine 上,我们已经配置了 Ingress(内部 + 负载均衡器),因此 App Engine 的 apppot URL 被外部阻止。每个服务都有启用 IAP 的负载均衡器,并且只有 API Gateway 的服务帐户具有 IAP-Secured Web App User 角色以将请求传递给 LB。
我的问题是:
- GCP API Gateway 是否应该用于内部服务到服务的通信?
- 由于我们在 App Engine 上启用了入口(内部 + 负载均衡器)并且 apppot URL 只能在 GCP 项目内部访问,这些 URL 可以用于内部服务到服务的通信吗?这是安全/推荐的方法吗?
上述 2 中哪一个非常适合管理安全通信的架构。另外,如果可能,请提出一些替代方案。
更新:为两种方法添加流程图