我在一个 App Engine 灵活环境项目中部署了一些服务。服务实例在同一个 VPC 网络(非默认)中运行,该网络在其指定的 VPC 网络中指定。app.yaml
文件和分配的 IP 地址来自同一子网。默认情况下,这两个服务都可以从外部访问,我想配置防火墙规则以仅保留允许传入流量的默认服务。
因此,作为第一步,我配置一条规则来拒绝此 VPC 中所有实例的所有入口,并创建另一个具有更高优先级的规则,以仅允许流量流向运行默认服务的一个实例。
问题是,当我创建优先级为 1001 的防火墙规则来阻止所有传入流量时,我的默认服务仍然会收到请求。但是,如果我指定优先级 1000 或以下,则流量将被阻止,并且我会收到 502 服务器错误。
问题当然是为什么? VPC 文档指出,所有手动创建的 VPC 网络仅使用两个默认防火墙规则:
- 默认“允许出口”规则。
允许所有出口连接。规则的优先级为 65535。
- 默认的“拒绝入口”规则。
拒绝所有入口连接。规则的优先级为 65535
那么为什么我的 1001 优先级规则无法阻止入口,而优先级为 1000(或更低)的完全相同的规则却按预期工作呢? Flex 实例是否还有其他默认防火墙规则,还是我在这里遗漏了其他内容?
据我了解,两个防火墙都必须允许流量才能使请求到达您的 App Engine。如果任何人有充分的理由阻止该请求,则该请求将被阻止。
您可以通过查看响应代码了解哪个防火墙正在阻止:
- 502 -> VPC 防火墙
- A 403 -> App Engine 防火墙
如果启用日志,您可以知道 VPC 防火墙上的哪条规则导致拒绝。
关于“1000 反对 1001 优先”规则,这是一个非常奇怪(且未记录)的行为。因此,让我们在这里为那些可能偶然发现它的人记录一下:
VPC 网络上针对灵活 App Engine 实例的规则似乎
仅当优先级低于 1000 时才起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)