如何防止公众访问Compute Engine外部IP地址?

时间:2019-08-05 09:18:31

标签: security google-cloud-platform google-compute-engine load-balancing firewall

我需要阻止用户通过Compute Engine上的外部IP地址访问网站,他们应该只能通过域名(www.some-domain.com)访问网站,而不能通过IP地址本身访问网站。

让我们说实例引擎的Compute Engine的IP地址为A.A.A.A。我正在使用Load Balancer通过以下设置将其重定向到安全连接:

  • 前端
    • HTTP:B.B.B.B:80
    • HTTPS:B.B.B.B:443
  • 后端
    • 重定向到活动实例

我将DNS(A)指向B.B.B.B。

现在,我可以访问https://www.some-domain.com。但是问题是,我仍然可以使用A.A.A.A和B.B.B.B.访问该网站。

这是我当前的防火墙配置: enter image description here

如何防止这种情况?谢谢。

3 个答案:

答案 0 :(得分:0)



好吧,您可以做几件事:

1-从VM实例中删除外部IP
2-创建特定的防火墙规则,仅允许访问特定的子网范围

我来详细说明:

对于1:

使用Web控制台,您只需要编辑VM详细信息,转到网络接口设置,然后在“外部IP”下拉菜单中选择“无”,保存新配置。所有这些都可以在不停止VM实例的情况下完成。

对于2:

使用default-allow-http和default-allow-https创建几个firewall rules,它们具有相同的配置,但是在“过滤器”中,您需要指定要允许的“公共”子网范围(您的数据中心范围例如)。这些新的防火墙规则必须具有较低的优先级值,以具有比现有规则更高的优先级。验证工作正常后,您可以删除旧的Video GCP Firewall

我希望能对您有所帮助,如果您需要更多帮助,请给我写评论

答案 1 :(得分:0)

您的问题与配置Google Identity Aware Proxy非常相似,后者是Google Beyond Corp架构的一部分,并且为您的用户提供Google ID非常有效。

docs解释了设置IAP的过程,但也有助于解释如何配置活动部件。您需要:

  1. 在您的DNS上将您的A记录设置到负载均衡器的公共前端
  2. 在GCE实例上配置防火墙规则,以不允许来自Internet的任何流量,而仅允许来自负载平衡器的流量。负载均衡器有一个有用的图形来显示规则。
  3. 配置您的负载均衡器后端,以将流量从前端引导到GCE实例。我通过互联网将TLS传输到LB,然后通过HTTP从LB传输到我的实例,但是您不必这样做

然后,您的负载均衡器将使用HTTP / S流量,并使用您在配置它时设置的转发规则转发到后端。如果您尝试直接转到实例IP,则防火墙将阻止您,为了进行测试,您可以从客户端IP启用允许,然后您会看到没有标题

答案 2 :(得分:-1)

这是我解决此问题的方法:

  • 在您的GCP帐户中。
  • 转到 VPC网络,然后防火墙规则
  • 您需要创建2条防火墙规则:

1)允许所有来自Google运行状况检查和您自己的负载均衡器的流量。


2)拒绝所有流量。

  • 优先级:900
  • 方向:进入
  • 对比赛的操作:拒绝
  • 目标标签:在此处放置相同的网络目标标签。
  • IP范围:0.0.0.0/0

就这样。如果将VM实例的IP放在浏览器中,它将失败。该访问将通过负载均衡器强制进行。

In the GCP project menu