GCP:仅允许来自负载均衡器的公共入口Web流量

问题描述 投票:0回答:1

免责声明:我来自AWS背景,但对GCP而言相对较新。我知道有许多现有的类似问题(例如herehere等),但由于仍然缺少确切/详细的说明,我仍然无法使它正常工作。所以请允许我再问一次。

我的简单设计:

公共HTTP / S流量(入口) >> GCP负载均衡器>> GCP服务器

GCP负载平衡器保存SSL证书。然后它将端口80用于与服务器的下游连接。因此,到服务器的LB只是HTTP。

我的问题:

如何防止传入的HTTP / S 公共通信直接到达GCP服务器?而是只允许负载均衡器(以及运行状况检查流量)?

到目前为止我尝试过的事情:

我进入了防火墙规则,并从0.0.0.0/0中删除了以前允许的端口80/443(入口流量)规则。然后,添加(允许)负载均衡器的外部IP地址。

至此,我只是期望应该拒绝公共流量,但应该拒绝负载均衡器。但实际上,两者似乎都被拒绝了。什么也没有到达服务器。似乎无法识别负载均衡器的外部IP。

后来我也注意到“健康检查”也不再被认可。因此,运行状况检查无法到达服务器,然后失败。因此,实例已被负载均衡器删除。

请注意:我不能采用简单地删除服务器上的外部IP的方法。 (尽管许多人说这行得通。)但是我们仍然希望维护对服务器的直接SSH访问(不使用堡垒实例)。因此,我仍然需要在每个Web服务器上使用外部IP。

任何清晰(和善意)的说明,我们将不胜感激。谢谢大家。

security google-cloud-platform google-compute-engine load-balancing firewall
1个回答
0
投票

使用HTTP(S) load balancer时,您可以在负载均衡器和后端服务器之间设置HTTPS连接。为了实现此目标,您应该在后端服务器上安装HTTPS证书,并将Web服务器配置为使用它们。如果您决定完全切换到HTTPS并在后端服务器上禁用HTTP,则还应该将运行状况检查也从HTTP切换为HTTPS。

允许从0.0.0.0/0到端口80和443连接的

要在删除默认防火墙规则后使运行状况检查再次起作用,您需要将子网35.191.0.0/16130.211.0.0/22列入白名单,这些子网是进行运行状况检查的源IP范围。您可以在documentation中找到逐步说明。之后,对您的Web服务器的访问仍然受到限制,但是您的负载均衡器将能够使用运行状况检查并为您的客户提供服务。

© www.soinside.com 2019 - 2024. All rights reserved.