3

我们希望在一个 Google Cloud 项目中部署两个 App Engine 服务(一个处理外部 HTTPS 请求,另一个处理来自第一个服务的接收流量)。这两个服务之间的通信是通过 mTLS 使用自签名证书完成的(第二个服务根据握手期间提供的客户端证书对第一个服务进行身份验证)。

如果我理解正确,我们无法通过 VERSION_ID-dot-SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com 域名公开 HTTP 以外的流量,并且服务之间的通信应使用内部网络 (VPC) 进行。这也降低了与暴露内部流量相关的安全风险(尽管流量是安全的)。

我们能够使用内部 IP 地址从第一个服务的一个实例连接到另一个服务的一个实例。但是我们不太了解如何正确地将流量从第一个服务的实例路由到第二个服务的一个实例。这可以通过 VPC 连接器完成,还是应该有一些 TCP 负载均衡器?

4

1 回答 1

3

你必须使用两者的组合:

  • 在第一个服务上使用无服务器 VPC 连接器将源自该第一个服务的所有流量路由到您的 VPC
  • 在第二个服务的子网范围内创建 NEG(网络端点组)
  • 使用内部全局负载均衡器将流量路由到第二个服务的 NEG

您也可以选择不执行此操作并仅使用IAP来保护第二项服务。当然,IP 和 DNS 将是可公开访问的,但只有明确授权的帐户才能访问它。所有其他请求将被 GFE(Google 前端)丢弃。

这种“零信任”功能在 Google 很流行。您不依赖网络,而是依赖身份验证机制。我是它的粉丝!

于 2020-05-26T18:36:19.123 回答