分层防火墙政策可让您在组织中创建和实施一致的防火墙政策。您可以将分层防火墙政策分配给整个组织或各个文件夹。这些政策包含可以明确拒绝或允许连接的规则,Virtual Private Cloud (VPC) 防火墙规则也是如此。此外,分层防火墙政策还可以通过 goto_next
操作将评估委托给较低级层的政策或 VPC 网络防火墙规则。
较低级层的规则无法替换资源层次结构中较高级别的规则。这样,组织范围的管理员就可以集中管理关键的防火墙规则。
规范
- 分层防火墙政策在组织级层和文件夹级层上进行创建。创建政策不会自动将规则应用于组织或文件夹。
- 政策在创建后可以应用于(关联)组织中的任何资源。
- 分层防火墙政策是防火墙规则的容器。当您将政策与组织或文件夹关联时,系统会立即应用所有规则。您可以为资源更换政策,该操作以原子方式更换应用于该资源下虚拟机实例的所有防火墙规则。
- 规则评估基于资源层次结构进行分层。与组织关联的所有规则都将进行评估,其次是第一级文件夹的规则,依此类推。
- 分层防火墙政策规则具有新的
goto_next
操作,您可以使用该操作将连接评估委托给层次结构中较低的级层。
分层防火墙政策规则可用于配置匹配流量的第 7 层检查,例如入侵防御服务。
您可以使用
apply_security_profile_group
操作和安全配置文件组的名称来创建防火墙政策规则。与防火墙政策规则匹配的流量会被拦截并透明地转发到防火墙端点,以进行第 7 层检查,然后再转发回来。如需了解如何创建防火墙政策规则,请参阅创建防火墙规则。
- 通过使用网络的目标资源和虚拟机的目标服务账号,分层防火墙政策规则可以针对特定的 VPC 网络和虚拟机。这样,您就可以为虚拟机组创建例外。分层防火墙政策规则不支持根据实例标记指定目标。
- 每条分层防火墙政策规则可以包含 IPv4 或 IPv6 范围,但不能同时包含这两者。
- 为遵守合规性和调试,您可以使用 VPC 网络详情页面和虚拟机实例的网络接口详情页面审核对虚拟机实例应用的防火墙规则。
资源层次结构
您可在单独的步骤中创建和应用防火墙政策。您可以在资源层次结构的组织或文件夹级层上创建和应用防火墙政策。防火墙政策规则可以阻止连接、允许连接或将防火墙规则评估交由较低级层的文件夹或 VPC 网络中定义的 VPC 防火墙规则处理。
组织是 Google Cloud 资源层次结构中的顶层资源,您可以在其中创建或关联分层防火墙政策。组织中的所有文件夹和 VPC 网络均继承此政策。
文件夹是 Google Cloud 资源层次结构中的中层资源,位于组织和项目之间,您可以在其中创建或分配分层防火墙政策。文件夹中的所有文件夹和 VPC 网络都会继承其关联政策。
项目位于文件夹或组织下。您可以在组织中的资源之间移动项目。项目包含 VPC 网络。分层防火墙政策不能分配给项目,只能分配给组织或文件夹。
VPC 网络是用于独立内部 IP 空间通信的 Google Cloud 分区。这是指定和应用路由、网络防火墙政策和传统 VPC 防火墙规则的级层。分层防火墙政策规则可以替换连接评估,或将连接评估委托给全球网络防火墙政策和规则。
默认情况下,所有分层防火墙政策规则应用于与该政策关联的组织或文件夹下的所有项目中的所有虚拟机。但是,您可以通过指定目标网络或目标服务账号来限制哪些虚拟机获得给定的规则。
下图显示了防火墙规则现在可以应用到的层次结构的级层。黄色方框表示包含防火墙规则的分层防火墙政策,白色方框表示 VPC 防火墙规则。
分层防火墙政策详情
分层防火墙政策规则在防火墙规则资源中定义,该资源充当防火墙规则的容器。除非政策与资源(组织或文件夹)关联,否则防火墙政策中定义的规则不会强制执行。
一个政策可以与多个资源关联。如果您修改政策中的规则,则该规则更改将应用于关联的所有资源。
一个资源只能与一个防火墙政策关联。分层防火墙政策规则和 VPC 防火墙规则按照明确的顺序进行评估。
未与任何资源关联的防火墙政策是未关联的分层防火墙政策。
政策名称
当您创建新政策时,Google Cloud 会自动为该政策生成 ID。此外,您还需要为政策指定简称。使用 gcloud
接口更新现有政策时,您可以引用系统生成的 ID 或简称与组织 ID 的组合。使用 API 更新政策时,您必须提供系统生成的 ID。
分层防火墙政策规则详情
分层防火墙政策规则与防火墙政策规则和 VPC 防火墙规则相同,但存在一些区别:
分层防火墙政策支持目标网络,而全球网络防火墙政策不支持目标网络。您可以指定目标网络,以将防火墙政策规则限制为指定网络中的虚拟机。通过在规则中指定 VPC 网络,您可以控制如何使用该规则配置哪些网络。
与
goto_next
或allow
结合使用时,通过指定目标网络,您可以在需要定义其他限制政策时针对特定网络创建例外。分层防火墙政策没有安全标记集成。
分层防火墙政策是组织级层资源,而全球网络防火墙政策是项目级层资源。
预定义规则
创建分层防火墙政策时,Cloud 新一代防火墙会将优先级最低的预定义规则添加到政策。这些规则适用于任何与政策中明确定义的规则不匹配的连接,导致此类连接传递到较低级层的政策或网络规则。
如需了解各种类型的预定义规则及其特性,请参阅预定义规则。
Identity and Access Management (IAM) 角色
IAM 角色控制与分层防火墙政策相关的以下操作:
- 创建位于特定资源的政策
- 将政策与特定资源关联
- 修改现有政策
- 查看特定网络或虚拟机的有效防火墙规则
下表介绍了每个步骤所需的角色:
特性 | 必要角色 |
---|---|
创建新的分层防火墙政策 | 政策所在资源上的 compute.orgFirewallPolicyAdmin 角色 |
将政策与资源关联 | 目标资源上的 compute.orgSecurityResourceAdmin 角色,以及政策所在资源或政策本身上的 compute.orgFirewallPolicyAdmin 或 compute.orgFirewallPolicyUser 角色 |
通过添加、更新或删除政策防火墙规则来修改政策 | 政策所在资源或政策本身上的 compute.orgFirewallPolicyAdmin 角色 |
删除政策 | 政策所在资源或政策本身上的 compute.orgFirewallPolicyAdmin 角色 |
查看 VPC 网络的有效防火墙规则 | 网络的以下角色之一: compute.networkAdmin compute.networkViewer compute.securityAdmin compute.viewer |
查看网络中虚拟机的有效防火墙规则 | 虚拟机的以下角色之一: compute.instanceAdmin compute.securityAdmin compute.viewer |
以下角色与分层防火墙政策相关。
角色名称 | 说明 |
---|---|
compute.orgFirewallPolicyAdmin | 可以针对资源或单个政策授予。如果针对资源授予,则用户可以创建、更新和删除分层防火墙政策及其规则。如果针对单个政策授予权限,则允许用户更新政策规则,但不允许创建或删除政策。此角色还允许用户在同时具有资源的 compute.orgSecurityResourceAdmin 角色时,将政策与该资源相关联。 |
compute.orgSecurityResourceAdmin | 该角色在组织级层授予或授予给文件夹,允许文件夹级层管理员将政策与该资源关联。管理员还必须对拥有政策的资源或政策本身具有 compute.orgFirewallPolicyUser 或 compute.orgFirewallPolicyAdmin 角色才能使用它。 |
compute.orgFirewallPolicyUser | 针对资源或单个政策授予,允许管理员使用与相应资源关联的单个或多个政策。用户还必须具有目标资源上的 compute.orgSecurityResourceAdmin 角色才能将政策与该资源关联。 |
compute.securityAdmin compute.viewer compute.networkUser compute.networkViewer |
允许用户查看应用于网络或实例的防火墙规则。 包括网络的 compute.networks.getEffectiveFirewalls 权限和实例的 compute.instances.getEffectiveFirewalls 权限。 |
在以下示例中,Joe 可以在 policies
文件夹中创建、修改和删除任何分层防火墙政策,但无法将分层防火墙政策关联到文件夹,因为他不具有任何文件夹的 orgSecurityResourceAdmin
角色。
但是,由于 Joe 向 Mary 授予了使用 policy-1
的权限,因此她可以列出该分层防火墙政策并将其与 dev-projects
文件夹或其任何后代关联。orgFirewallPolicyUser
角色不授予将政策与任何文件夹关联的权限;用户还必须具有目标文件夹的 orgSecurityResourceAdmin
角色。
管理分层防火墙政策资源
由于分层防火墙政策仅定义一组防火墙规则,而没有定义它们的应用范围,因此您可以从这些资源应用到的节点,在层次结构的不同部分创建这些资源。这样,您就可以将一个分层防火墙政策资源与组织中的多个文件夹关联。
在以下示例中,policy-1
应用于 dev-projects
和 corp-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-1
与 dev-projects
的关联。如果 dev-projects
文件夹在其所有 VPC 网络的祖先实体更新之前失去其分层防火墙政策关联,这些 VPC 网络在短时间内不受 policy-1
的保护。
将分层防火墙政策与共享 VPC 结合使用
在共享 VPC 场景中,连接到宿主项目网络的虚拟机接口受宿主项目的分层防火墙政策规则(而不是服务项目)的约束。
即使服务项目位于与宿主项目不同的文件夹下,共享网络中的虚拟机接口仍从宿主项目文件夹规则继承。
将分层防火墙政策与 VPC 网络对等互连结合使用
在 VPC 网络对等互连场景中,与每个 VPC 网络关联的虚拟机接口会继承相应 VPC 网络层次结构中的政策。以下是 VPC 网络对等互连示例,其中 VPC 对等互连网络属于不同的组织。