什么是App Engine Flex的默认VPC防火墙规则

时间:2017-11-17 10:22:48

标签: google-app-engine app-engine-flexible

我在一个App Engine灵活环境项目中部署了一些服务。服务实例在相同的VPC网络(非默认)中运行,该网络在其app.yaml文件中指定,并从同一子网分配IP地址。默认情况下,两个服务都可以从外部访问,我想配置防火墙规则,只留下允许传入流量的默认服务。

因此,作为第一步,我正在配置规则以拒绝此VPC中所有实例的所有入口,并创建另一个具有更高优先级的规则,以便仅允许流量运行默认服务的一个实例。
问题是,当我创建一个优先级为1001的防火墙规则来阻止所有传入流量时,我的默认服务仍然会收到请求。但是,如果我指定优先级1000或低于流量,则流量被阻止,我得到502服务器错误。

问题当然是为什么? VPC文档指出,所有手动创建的VPC网络只使用两个默认防火墙规则:

  
      
  • 默认的“允许出口”规则   允许所有出口连接。规则的优先级为65535。
  •   
  • 默认的“拒绝入口”规则   拒绝所有入口连接。规则的优先级为65535
  •   

那么为什么我的1001优先级规则无法阻止入口,优先级为1000(或低于)的完全相同的规则按预期工作? Flex实例是否还有其他默认防火墙规则,或者我在这里缺少其他内容?

1 个答案:

答案 0 :(得分:0)

据我了解,两个防火墙都必须允许流量通过,才能使请求到达您的App Engine。如果有充分的理由阻止该请求,则该请求将被阻止。

通过查看响应代码,您可以知道哪个防火墙被阻止了:

  • A 502-> VPC防火墙
  • A 403-> App Engine防火墙

如果启用了日志,则可以知道VPC防火墙上的哪个规则导致了拒绝。

关于“ 1000相对于1001优先级”规则,这是一个非常奇怪的行为(未记录)。因此,让我们在这里为可能偶然发现它的人们记录一下:

  

VPC网络上适用于灵活的App Engine实例的规则似乎   仅在优先级低于1000时有效。