免责声明:我来自AWS背景,但对GCP相对来说非常陌生。我知道有很多类似的问题(例如,这里和这里等(,但我仍然无法解决,因为仍然缺少确切/详细的说明。所以请耐心等待我再次提出这个问题
我的简单设计:
公共HTTP/S流量(入口(>GCP负载均衡器>>GCP服务器
GCP负载均衡器持有SSL证书。然后它使用端口80进行到服务器的下游连接。因此,LB到服务器只是HTTP。
我的问题:
如何防止传入的HTTP/SPublic流量直接到达GCP服务器?相反,只允许负载均衡器(以及它的健康检查流量(?
到目前为止我尝试了什么:
我进入了防火墙规则,并从0.0.0.0/0
中删除了以前允许的端口80/443(入口流量(规则。然后,添加(允许(负载平衡器的外部IP地址。
在这一点上,我只是希望公共交通应该被拒绝,但负载均衡器的。但事实上,两者似乎都遭到了拒绝。没有任何内容到达服务器。负载平衡器的外部IP似乎未被识别。
后来我也注意到"健康检查"也不再被识别了。因此,运行状况检查无法访问服务器,然后失败。因此,负载平衡器删除了实例。
还请注意:我不能简单地删除服务器上的外部IP。(尽管很多人说这会起作用。(但我们仍然希望保持对服务器的直接SSH访问(通过不使用堡垒实例(。因此,我仍然需要每个Web服务器上的外部IP。
如有任何明确(善意(的指示,我们将不胜感激。谢谢大家。
您可以在使用HTTP(S(负载均衡器的同时,在负载均衡器和后端服务器之间设置HTTPS连接。为了实现这一目标,您应该在后端服务器上安装HTTPS证书,并配置web服务器以使用它们。如果您决定完全切换到HTTPS并在后端服务器上禁用HTTP,那么您也应该将健康检查从HTTP切换到HTTPS。
要在删除允许从0.0.0.0/0
连接到端口80和443的默认防火墙规则后使运行状况检查再次工作,您需要将作为运行状况检查源IP范围的子网35.191.0.0/16
和130.211.0.0/22
列入白名单。您可以在文档中找到如何进行操作的分步说明。之后,对web服务器的访问仍然受到限制,但您的负载均衡器将能够使用健康检查并为您的客户提供服务。