【发布时间】:2017-11-17 10:22:47
【问题描述】:
我在一个 App Engine 柔性环境项目中部署了一些服务。服务实例在其app.yaml 文件中指定的同一 VPC 网络(非默认)中运行,并从同一子网分配 IP 地址。默认情况下,这两个服务都可以从外部访问,我想配置防火墙规则,只保留允许传入流量的默认服务。
因此,作为第一步,我将配置一条规则以拒绝此 VPC 中所有实例的所有入口,其想法是创建另一个具有更高优先级的规则,以仅允许流量流向运行默认服务的一个实例。
问题是,当我创建优先级为 1001 的防火墙规则来阻止所有传入流量时,我的默认服务仍然会收到请求。但如果我指定优先级 1000 或以下,则流量被阻止,我得到 502 服务器错误。
问题当然是为什么? VPC 文档指出,所有手动创建的 VPC 网络只有两个默认防火墙规则:
- 默认的“允许出口”规则。
允许所有出口连接。规则的优先级为 65535。- 默认的“拒绝进入”规则。
拒绝所有入口连接。规则的优先级为 65535
那么为什么我的 1001 优先级规则未能阻止入口,而具有 1000 级(或更低)优先级的完全相同的规则按预期工作? Flex 实例是否有任何其他默认防火墙规则,或者我在这里遗漏了什么?
【问题讨论】:
-
有两种防火墙可以发挥作用:适用于 Compute Engine 实例的 GCP 防火墙(柔性环境实例属于其中),以及影响标准环境和柔性环境的 App Engine 防火墙。 HTTP(第 7 层)级别而不是第 3 层 TCP 级别。
-
对。 App Engine 的默认防火墙规则允许所有入口并具有优先级
2147483647。那么这些防火墙是如何协同工作的呢?简单地说,我的主要问题是为什么优先级为 1001 的拒绝所有入口规则不会阻止 AE Flex 实例的传入 http,但优先级为 1000 及以下的相同规则会阻止。这种行为是无证的,看起来很奇怪。 -
嗨,你解决了这个问题吗?我们正在尝试在我们的默认网络上执行相同的操作,但似乎所有流量都由应用引擎防火墙管理。
-
谢谢,您的问题帮助我们解决了这个问题。如果你能找到这方面的文档,请告诉我
标签: google-app-engine app-engine-flexible