分层防火墙政策概览

分层防火墙政策可让您在组织中创建和实施一致的防火墙政策。您可以将分层防火墙政策分配给整个组织或各个文件夹。这些政策包含可以明确拒绝或允许连接的规则,Virtual Private Cloud (VPC) 防火墙规则也是如此。此外,分层防火墙政策还可以通过 goto_next 操作将评估委托给较低级层的政策或 VPC 网络防火墙规则。

较低级层的规则无法替换资源层次结构中较高级别的规则。这样,组织范围的管理员就可以集中管理关键的防火墙规则。

规格

  • 可以在组织和文件夹节点上指定分层防火墙政策。
  • 分层防火墙政策是防火墙规则的容器。当您将政策与组织或文件夹关联时,系统会立即应用所有规则。您可以为节点更换政策,该操作以原子方式更换应用于该节点下虚拟机实例的所有防火墙规则。
  • 规则评估基于资源层次结构进行分层。与组织节点关联的所有规则都将进行评估,其次是第一级文件夹的规则,依此类推。
  • 分层防火墙政策规则具有新的 goto_next 操作,您可以使用该操作将连接评估委托给层次结构中较低的级层。
  • 可以使用目标资源针对特定的 VPC 网络和虚拟机实施分层防火墙政策规则。这样,您就可以为虚拟机组创建例外。
  • 借助一项新功能,您可以查看特定网络或虚拟机接口实际应用了哪些防火墙规则,这有助于进行合规性检查和调试。

资源层次结构

您可在单独的步骤中创建和应用防火墙政策。您可以在资源层次结构的组织或文件夹节点上创建和应用防火墙政策。防火墙政策规则可以阻止连接、允许连接或将防火墙规则评估交由较低级层的文件夹或 VPC 网络中定义的 VPC 防火墙规则处理。

  • 组织是 Google Cloud 资源层次结构中的顶层节点,您可以在其中创建或关联分层防火墙政策。组织中的所有文件夹和 VPC 网络均继承此政策。

  • 文件夹是 Google Cloud 资源层次结构中的中层节点,位于组织和项目之间,您可以在其中创建或分配分层防火墙政策。文件夹中的所有文件夹和 VPC 网络都会继承其关联政策。

  • 项目位于文件夹或组织下。您可以在组织中的节点之间移动项目。项目包含 VPC 网络。分层防火墙政策不能分配给项目,只能分配给组织或文件夹。

  • VPC 网络是用于独立内部 IP 空间通信的 Google Cloud 分区。这是指定和应用路由和传统 VPC 防火墙规则的级层。分层防火墙政策规则可以替换网络防火墙规则,也可以将连接评估委托给它们。

默认情况下,所有分层防火墙政策规则应用于与该政策关联的组织或文件夹下的所有项目中的所有虚拟机。但是,您可以通过指定目标网络目标服务帐号来限制哪些虚拟机获得给定规则。

下图显示了防火墙规则现在可以应用到的层次结构的级层。黄色方框表示包含防火墙规则的分层防火墙政策,白色方框表示 VPC 防火墙规则。

包含组织和文件夹级层规则(黄色方框)的分层防火墙政策和包含 VPC 网络级层的 VPC 防火墙规则的分层防火墙政策
包含组织和文件夹级层规则(黄色方框)的分层防火墙政策和包含 VPC 网络级层的 VPC 防火墙规则的分层防火墙政策

规则评估

分层防火墙政策规则在虚拟机级层强制执行,VPC 防火墙规则也是如此。也就是说,它们不会像传统防火墙那样在网络边缘应用。

Google Cloud 按以下顺序评估分层防火墙政策规则和 VPC 防火墙规则:

  1. 如果防火墙政策与组织关联,Google Cloud 评估该政策应用于虚拟机的规则。每条规则都会导致连接被允许或拒绝,或者规则可以指示防火墙评估转到层次结构的下一级层,即文件夹或 VPC 网络。
  2. Google Cloud 评估与每个文件夹关联的政策规则,从组织下的顶层文件夹开始,并往下至子文件夹(如果存在)。

    对每条规则的评估都会导致连接被允许或拒绝,或者规则可以指示防火墙评估转到层次结构的下一级层,即另一个文件夹或 VPC 网络。

  3. 最后,评估 VPC 防火墙规则。VPC 防火墙规则允许或拒绝连接。

防火墙规则解析流程
防火墙规则解析流程

分层防火墙政策详情

分层防火墙政策规则在防火墙规则资源中定义,该资源充当防火墙规则的容器。除非政策与节点(组织或文件夹)关联,否则防火墙政策中定义的规则不会强制执行。

一个政策可以与多个节点关联。如果您修改政策中的规则,则该规则更改将应用于当前关联的所有节点。

一个节点只能与一个防火墙政策关联。分层防火墙政策规则和 VPC 防火墙规则按照明确的顺序进行评估

政策名称

当您创建新政策时,Google Cloud 会自动为该政策生成 ID。此外,您还需要为政策指定显示名。使用 gcloud 接口更新现有政策时,您可以引用系统生成的 ID 或显示名与组织 ID 的组合。使用 API 更新政策时,您必须提供系统生成的 ID。

分层防火墙政策规则详情

一般而言,分层防火墙政策包含的规则与 VPC 防火墙规则的工作方式相同,但存在一些区别。

优先级

  • VPC 防火墙规则可以具有相同的优先级,与 VPC 防火墙规则不同,分层防火墙政策规则必须具有指定的优先级,并且每个优先级在防火墙政策中必须是唯一的。

  • 分层防火墙政策规则没有名称。相反,防火墙政策本身具有 ID 和名称,并且其中的每个规则都有一个唯一的优先级编号。

  • 在分层防火墙政策中,防火墙规则按优先级顺序评估,从优先级最高(数字最小)的规则开始。因此,在分配给组织节点的政策中,优先级为 0 的规则将覆盖组织中的任何其他规则。

对匹配项执行的操作

  • allow
    分层防火墙政策 allow 规则会覆盖具有较低优先级或位于层次结构中较低级层的任何 deny 规则。使用组织或文件夹政策中的 allow 规则可无条件地允许到层次结构中该节点下的所有虚拟机的特定类型的连接。

    例如,如果您有一个集中管理的探测器,用于监控组织中的所有虚拟机,您可以在组织级层创建 allow 规则,以确保来自探测器 IP 地址的请求不被任何项目中的任何网络阻止。

  • deny
    分层防火墙政策 deny 规则会覆盖具有较低优先级或位于层次结构中较低级层的任何 allow 规则。

    例如,如果要确保组织中的任何虚拟机都无法从特定 IP 范围访问,您可以为该范围创建 deny 规则。

  • goto_next
    指示防火墙将防火墙评估移至层次结构的下一个较低级层。您可以使用此选项将特定类型的连接委托给较低的级层管理。

目标网络

您可以将分层防火墙政策规则限制为仅应用于指定网络中的虚拟机。通过在规则中指定目标网络,您可以控制哪些 VPC 网络配置该规则。通过与 goto_nextallow 搭配使用,您可以在定义限制性政策时为特定网络创建例外。

目标服务帐号

您可以为规则指定目标服务帐号。此类规则仅应用于指定服务帐号拥有的虚拟机。分层防火墙政策规则不支持根据实例标记指定目标。

协议和端口

与 VPC 防火墙规则类似,您必须在创建规则时指定一个或多个协议和端口限制条件。在规则中指定 TCP 或 UDP 时,您可以指定协议、协议和一个端口或协议和端口范围;不能仅指定端口或端口范围。对于 ICMP,请指定 icmp。防火墙规则不支持指定 ICMP 类型和代码。

日志记录

分层防火墙政策规则的日志记录与 VPC 防火墙规则日志记录相同,但以下方面除外:

  • 引用字段包含安全政策 ID 和一个数字,该数字表明政策关联的节点的层次结构级层。例如,0 表示政策应用于组织,1 表示政策应用于组织下的顶层文件夹。

  • 分层防火墙政策规则的日志包含一个 target_resource 字段,用于标识规则要应用到的 VPC 网络。

只能为 allowdeny 规则启用日志记录;不能为 goto_next 规则启用。

预定义规则

所有分层防火墙政策都有两个具有最低优先级的预定义 goto_next 规则。这些规则适用于任何与政策中明确定义的规则不匹配的连接,导致此类连接传递到较低级层的政策或网络规则。

  • 优先级非常低的出站规则 (2147483646),将连接的处理发送到下一个较低级层的评估 (goto_next)。
  • 优先级非常低的入站规则 (2147483647),将连接的处理发送到下一个较低级层的评估 (goto_next)。

这些预定义规则是可见的,但无法修改或删除。这些规则不同于 VPC 网络的隐式和预填充的规则

Identity and Access Management (IAM) 角色

以下角色与分层防火墙政策相关。

角色名称 说明
compute.orgSecurityPolicyAdmin 该角色在组织级层授予或授予文件夹,允许用户创建、更新和删除分层安全政策及其规则。此外,如果管理员还具有节点的 compute.orgSecurityResourceAdmin 角色,则管理员还可以将政策与该节点关联。
compute.orgSecurityResourceAdmin 该角色在组织级层授予或授予文件夹,允许文件夹级层管理员将政策与该节点关联。管理员还必须对拥有该政策的节点具有 compute.orgSecurityPolicyUser 角色才能使用它。
compute.orgSecurityPolicyUser 该角色在组织级层授予或授予文件夹,允许管理员使用与组织或文件夹关联的政策。用户还必须具有目标节点上的 compute.orgSecurityResourceAdmin 角色才能将政策与该节点关联。
compute.securityAdmin
compute.viewer
compute.securityReadOnly
compute.networkUser
compute.networkViewer
允许用户查看应用于网络或实例的防火墙规则。
包括网络的 compute.networks.getEffectiveFirewalls 权限和实例的 compute.instances.getEffectiveFirewalls 权限。

在以下示例中,Joe 可以在 policies 文件夹中创建、修改和删除任何分层防火墙政策,但无法将分层防火墙政策关联到文件夹,因为他不具有任何文件夹的 orgSecurityResourceAdmin 角色。

但是,由于 Joe 向 Mary 授予了使用 policy-1 的权限,因此她可以列出该分层防火墙政策并将其与 dev-projects 文件夹或其任何后代关联。orgSecurityPolicyUser 角色不授予将政策与任何文件夹关联的权限;用户还必须具有目标文件夹的 orgSecurityResourceAdmin 角色。

policy-1 示例
policy-1 示例

管理分层防火墙政策资源

由于分层防火墙政策仅定义一组防火墙规则,而没有定义它们的应用范围,因此您可以从这些规则应用到的节点,在层次结构的不同部分创建这些资源。这样,您就可以将一个分层防火墙政策资源与组织中的多个文件夹关联。

在以下示例中,policy-1 应用于 dev-projectscorp-projects 文件夹,从而强制应用于这些文件夹中的所有项目。

政策位置和关联
政策位置和关联

修改政策的规则

您可以在政策中添加、移除和修改规则。每项更改都是单独进行的;在政策中没有批量更新规则的机制。更改会大致按照命令的执行顺序应用,但这是无法保证的。

如果您要对分层防火墙政策进行大量更改,并且需要确保同时还能应用这些政策,则可以将政策克隆到临时政策,并将临时政策分配给相同的节点。然后,您可以对原始政策进行更改,然后再将原始政策分配回这些节点。如需了解相关步骤,请参阅将规则从一个政策复制到另一个政策

在以下示例中,policy-1 关联到 dev-projects 文件夹,并且您需要进行多项以原子方式应用的更改。新建一个名为 scratch-policy 的政策,然后将所有现有规则从 policy-1 复制到 scratch-policy 以进行修改。修改完毕后,将所有规则从 scratch-policy 复制回 policy-1

修改政策
修改政策

移动政策

分层防火墙政策(如项目)由文件夹或组织资源作为父级。随着文件夹架构的不断发展,您可能需要在删除某个文件夹之前将分层防火墙政策移动到新文件夹。删除文件夹时,该文件夹所拥有的政策也会被删除。

下图展示了在节点之间移动政策的关联或政策中规则的评估。

移动政策
移动政策

将分层防火墙政策与文件夹关联

分层防火墙政策只有在与组织或文件夹节点关联后才会强制执行。分层防火墙政策关联后,将应用于该组织或文件夹下所有网络中的所有虚拟机。

关联政策
关联政策

对资源层次结构的更改

对资源层次结构的更改可能需要一段时间才能传播到整个系统。我们建议您避免同时更新分层防火墙政策连接和资源层次结构,因为网络可能不会立即继承层次结构中新位置中定义的分层防火墙政策。

移动政策
移动政策

例如,如果要将 dept-A 文件夹从 dev-projects 文件夹移动到 eng-projects 文件夹,并将 policy-1 的关联更改为 eng-projects 而不是 dev-projects,请务必同时取消 policy-1dev-projects 的关联。如果 dev-projects 文件夹在其所有 VPC 网络的祖先实体更新之前失去其分层防火墙政策关联,这些 VPC 网络在短时间内不受 policy-1 的保护。

将分层防火墙政策与共享 VPC 结合使用

共享 VPC 场景中,连接到宿主项目网络的虚拟机接口受宿主项目的分层防火墙政策规则(而不是服务项目)的约束。

共享 VPC 中的虚拟机
共享 VPC 中的虚拟机

即使服务项目位于与宿主项目不同的文件夹下,共享网络中的虚拟机接口仍从宿主项目文件夹规则继承。

服务项目虚拟机从宿主项目继承规则
服务项目虚拟机从宿主项目继承规则

将分层防火墙政策与 VPC 网络对等互连结合使用

VPC 网络对等互连场景中,与每个 VPC 网络关联的虚拟机接口会继承相应 VPC 网络层次结构中的政策。以下是 VPC 网络对等互连示例,其中 VPC 对等互连网络属于不同的组织。

虚拟机从各自的网络继承
虚拟机从各自的网络继承

有效的防火墙规则

由于连接同时受分层防火墙政策规则和 VPC 防火墙规则的约束,因此查看影响单个网络或单个虚拟机接口的所有防火墙规则会很有帮助。

项目级管理员可能无权查看影响其虚拟机的分层防火墙政策中的规则。但是,如果用户有权查看网络的防火墙规则,则该用户可以查看应用于该网络的所有规则,即使这些规则是从文件夹或组织继承的也是如此。

对网络有效的安全政策

您可以查看应用于 VPC 网络的所有防火墙规则。该列表包括从分层防火墙政策继承的所有规则以及从 VPC 网络应用的所有规则。

对实例有效的防火墙规则

您可以查看应用于虚拟机的网络接口的所有防火墙规则。此列表包括继承自分层防火墙政策的所有规则以及从接口的 VPC 网络应用的所有规则。

规则按照从组织层级到 VPC 规则的顺序排列。仅显示应用于虚拟机接口的规则。不显示其他政策中的规则,因此用户无法查看组织的整体安全政策。

后续步骤