防火墙政策

防火墙政策可让您将多条防火墙规则分组,以便一次性更新所有防火墙规则,此操作由 Identity and Access Management (IAM) 角色有效控制。这些政策包含可以明确拒绝或允许连接的规则,Virtual Private Cloud (VPC) 防火墙规则就是如此。

分层防火墙政策

分层防火墙政策允许您将规则分组到政策对象中,该对象可应用于一个或多个项目中的许多 VPC 网络。您可以将分层防火墙政策与整个组织或单个文件夹关联。

如需了解分层防火墙政策规范和详细信息,请参阅分层防火墙政策

全球网络防火墙政策

通过全球网络防火墙政策,您可以将规则分组到适用于所有区域(全球)的政策对象。将全球网络防火墙政策与 VPC 网络关联后,政策中的规则可以应用于 VPC 网络中的资源。

如需了解全球网络防火墙政策规范和详细信息,请参阅全球网络防火墙政策

区域级网络防火墙政策

通过区域级网络防火墙政策,您可以将规则分组到适用于特定区域的政策对象中。将区域级网络防火墙政策与 VPC 网络关联后,该政策中的规则可以应用于 VPC 网络中该区域的资源。

如需了解区域级防火墙政策规范和详细信息,请参阅区域级网络防火墙政策

政策和规则评估顺序

分层防火墙政策、全球网络防火墙政策、区域级网络防火墙政策和 VPC 防火墙规则是在 Andromeda 网络虚拟化堆栈虚拟机数据包处理过程中实现的。针对虚拟机的每个网络接口 (NIC) 评估规则。

规则的适用性不依赖于其协议和端口配置的特异性。例如,允许所有协议的规则的较高优先级优先于特定于 TCP 端口 22 的较低优先级拒绝规则。

此外,规则的适用性不取决于目标参数的特异性。例如,即使优先级较低的拒绝规则具有较具体的目标参数(比如特定的服务账号或标记),允许所有虚拟机(所有目标)的规则较高优先级仍然优先。

确定政策和规则评估顺序

防火墙政策规则和 VPC 防火墙规则的评估顺序由连接到虚拟机 NIC 的 VPC 网络的 networkFirewallPolicyEnforcementOrder 标志确定。

networkFirewallPolicyEnforcementOrder 标志可以具有以下两个值:

  • BEFORE_CLASSIC_FIREWALL:如果将该标志设置为 BEFORE_CLASSIC_FIREWALL,则在规则评估顺序中,全球网络防火墙政策和区域级网络防火墙政策会在 VPC 防火墙规则之前进行评估。

  • AFTER_CLASSIC_FIREWALL:如果将该标志设置为 AFTER_CLASSIC_FIREWALL,则在规则评估顺序中,全球网络防火墙政策和区域级网络防火墙政策会在 VPC 防火墙规则之后进行评估。AFTER_CLASSIC_FIREWALLnetworkFirewallPolicyEnforcementOrder 标志的默认值。

如需更改规则评估顺序,请参阅更改政策和规则评估顺序

默认政策和规则评估顺序

默认情况下,当连接到虚拟机 NIC 的 VPC 网络的 networkFirewallPolicyEnforcementOrderAFTER_CLASSIC_FIREWALL 时,Google Cloud 会按以下顺序评估适用于虚拟机 NIC 的规则:

  1. 如果分层防火墙政策与包含虚拟机的项目的组织关联,则 Google Cloud 会评估分层防火墙政策中的所有适用规则。由于分层防火墙政策中的规则必须是唯一的,因此与流量方向和第 4 层特征匹配的最高优先级规则确定流量的处理方式:

    • 该规则可以允许流量。 评估过程停止。

    • 该规则可以拒绝流量。 评估流程停止。

    • 该规则可以将第 7 层检查 (apply_security_profile_group) 的流量发送到防火墙端点。然后,允许还是丢弃数据包的决定取决于防火墙端点和配置的安全配置文件。在这两种情况下,规则评估过程都会停止。

    • 如果存在以下任一情况,则该规则可以允许如后续步骤中所述处理定义的规则:

      • 操作为 goto_next 的规则与流量匹配。
      • 没有规则与流量匹配。在这种情况下,隐式 goto_next 规则适用。
  2. 如果分层防火墙政策与虚拟机项目的最远(顶部)文件夹祖先关联,则 Google Cloud 将评估该文件夹的分层防火墙政策中的所有适用规则。由于分层防火墙政策中的规则必须是唯一的,因此与流量方向和第 4 层特征匹配的最高优先级规则确定流量的处理方式(allowdeny、、apply_security_profile_group、 或 goto_next),如第一步中所述。

  3. Google Cloud 会对在资源层次结构中较靠近虚拟机项目的文件夹关联的分层防火墙政策重复上一步的操作。Google Cloud 首先评估与最远的文件夹祖先(最接近组织)关联的分层防火墙政策中的规则,然后评估与较靠近虚拟机项目的下一个(子)文件夹关联的分层防火墙政策中的规则。

  4. 如果虚拟机的 NIC 使用的 VPC 网络中存在 VPC 防火墙规则,Google Cloud 会评估所有适用的 VPC 防火墙规则。

    与防火墙政策中的规则不同:

    • VPC 防火墙规则没有显式 goto_nextapply_security_profile_group 操作。VPC 防火墙规则只能配置为允许或拒绝流量。

    • 一个 VPC 网络中的两个或更多 VPC 防火墙规则可以共享相同的优先级编号。在这种情况下,拒绝规则优先于允许规则。如需详细了解 VPC 防火墙规则优先级,请参阅 VPC 防火墙规则文档中的优先级

    如果没有 VPC 防火墙规则应用于流量,则 Google Cloud 会继续下一步,即隐式 goto_next

  5. 如果全球网络防火墙政策与虚拟机 NIC 的 VPC 网络相关联,则 Google Cloud 会评估防火墙政策中的所有适用规则。由于防火墙政策中的规则必须是唯一的,因此与流量方向和第 4 层特征匹配的最高优先级规则确定流量的处理方式(allowdeny、、apply_security_profile_group、 或 goto_next),如第一步中所述。

  6. 如果区域级网络防火墙政策与虚拟机的 NIC 的 VPC 网络和虚拟机区域关联,则 Google Cloud 会评估防火墙政策中的所有适用规则。由于防火墙政策中的规则必须是唯一的,因此与流量方向和第 4 层特征匹配的最高优先级规则确定流量的处理方式:allowdenygoto_next,如第一步中所述。

  7. 作为评估中的最后一步,Google Cloud 会强制执行隐式允许出站流量和隐式拒绝入站流量 VPC 防火墙规则

下图展示了防火墙规则的解析流程。

防火墙规则解析流程。
图 1. 防火墙规则解析流程(点击可放大)。

更改政策和规则评估顺序

Google Cloud 可让您通过交换 VPC 防火墙规则和网络防火墙政策(全球和区域级)的顺序来更改默认规则评估过程。执行此交换后,全球网络防火墙政策(第 5 步)和区域级网络防火墙政策(第 6 步)会按规则评估顺序在 VPC 防火墙规则(第 4 步)之前先进行评估。

如需更改规则评估顺序,请运行以下命令以将 VPC 网络的 networkFirewallPolicyEnforcementOrder 属性设置为 BEFORE_CLASSIC_FIREWALL

gcloud compute networks update VPC-NETWORK-NAME \
    --network-firewall-policy-enforcement-order BEFORE_CLASSIC_FIREWALL

如需了解详情,请参阅 networks.patch 方法

有效的防火墙规则

分层防火墙政策规则、VPC 防火墙规则以及全球和区域级网络防火墙政策规则控制连接。您可能会发现,查看影响单个网络或虚拟机接口的所有防火墙规则会很有帮助。

对网络有效的防火墙规则

您可以查看应用于 VPC 网络的所有防火墙规则。列表包括以下所有规则:

  • 从分层防火墙政策继承的规则
  • VPC 防火墙规则
  • 从全球和区域级网络防火墙政策应用的规则

对实例有效的防火墙规则

您可以查看应用于虚拟机的网络接口的所有防火墙规则。列表包括以下所有规则:

  • 从分层防火墙政策继承的规则
  • 从接口的 VPC 防火墙应用的规则
  • 从全球和区域级网络防火墙政策应用的规则

规则按照从组织层级到 VPC 网络的顺序排列。仅显示应用于虚拟机接口的规则。不显示其他政策中的规则。

如需查看某个区域内的有效防火墙政策规则,请参阅获取网络的有效防火墙政策

预定义规则

创建分层防火墙政策、全球网络防火墙政策或区域级网络防火墙政策时,Cloud NGFW 会向政策添加预定义规则。Cloud NGFW 添加到政策的预定义规则取决于您创建政策的方式。

如果您使用 Google Cloud 控制台创建防火墙政策,则 Cloud NGFW 会将以下规则添加到新政策中:

  1. 专用 IPv4 范围的转到下一个规则
  2. 预定义的 Google Threat Intelligence 拒绝规则
  3. 预定义的地理位置拒绝规则
  4. 尽可能低的优先级转到下一个规则

如果您使用 Google Cloud CLI 或 API 创建防火墙政策,则 Cloud NGFW 只会将尽可能低的优先级转到下一个规则添加到政策。

新防火墙政策中的所有预定义规则有意使用低优先级(大优先级编号),因此您可以通过创建规则(优先级更高的规则)来替换这些规则。除了尽可能低的优先级转到下一个规则之外,您还可以自定义预定义的规则。

专用 IPv4 范围的转到下一个规则

  • 具有目的地 IPv4 范围 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16、优先级 1000goto_next 操作的出站流量规则。

  • 具有来源 IPv4 范围 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16、优先级 1001goto_next 操作的入站流量规则。

预定义的 Google Threat Intelligence 拒绝规则

  • 具有来源 Google 威胁情报列表 iplist-tor-exit-nodes、优先级 1002deny 操作的入站流量规则。

  • 具有来源 Google 威胁情报列表 iplist-known-malicious-ips、优先级 1003deny 操作的入站流量规则。

  • 具有目的地 Google 威胁情报列表 iplist-known-malicious-ips、优先级 1004deny 操作的出站流量规则。

如需详细了解 Google 威胁情报,请参阅防火墙政策规则的 Google 威胁情报

预定义的地理位置拒绝规则

  • 来源匹配地理位置为 CUIRKPSYXCXD,优先级为 1005 且操作为 deny 的入站流量规则。

如需详细了解地理位置,请参阅地理位置对象

尽可能低的优先级转到下一个规则

您无法修改或删除以下规则:

  • 具有目的地 IPv6 范围 ::/0、优先级 2147483644goto_next 操作的出站流量规则。

  • 具有来源 IPv6 范围 ::/0、优先级 2147483645goto_next 操作的入站流量规则。

  • 具有目的地 IPv4 范围 0.0.0.0/0、优先级 2147483646goto_next 操作的出站流量规则。

  • 具有来源 IPv4 范围 0.0.0.0/0、优先级 2147483647goto_next 操作的入站流量规则。

后续步骤