Cloud Next Generation Firewall (Cloud NGFW) 规则使用标记来指定来源和目标。这种灵活的方法可避免对 IP 地址的依赖。
代码类型
为了在防火墙规则中过滤网络流量,Cloud NGFW 支持两种类型的标记:
由 Identity and Access Management (IAM) 治理的标记(也称为安全标记)在 Resource Manager 中作为标记键和标记值进行创建和管理。安全标记值可用于在分层防火墙政策、全球网络防火墙政策或区域级网络防火墙政策中指定入站流量规则的来源以及入站流量或出站流量规则的目标。
网络标记是没有访问权限控制的字符串,可以添加到虚拟机 (VM) 实例或实例模板。网络标记可用于为入站虚拟私有云 (VPC) 防火墙规则指定来源,以及为入站或出站 VPC 防火墙规则指定目标。分层防火墙政策、全球网络防火墙政策或区域级网络防火墙政策中的规则无法使用网络标记。如需详细了解网络标记,请参阅添加网络标记。
如需了解详情,请参阅安全标记与网络标记的比较。
此外,您还可以将 Resource Manager 标签直接附加到 Cloud NGFW 资源,以便通过 Identity and Access Management (IAM) 和 Organization Policy Service 等服务来管理这些资源。这些标记专门用于资源治理;防火墙规则不会评估这些标记来过滤网络流量。如需详细了解如何在防火墙资源上创建和管理标记,请参阅为防火墙资源创建和管理标记。
本页的以下部分介绍了防火墙政策中的安全标记。
规格
安全标记具有以下规范:
父级资源:父级资源是定义安全标记键的资源。标记键可以在父项目或组织中创建。如需详细了解如何创建标记键,请参阅创建和管理安全标记。
用途和用途数据:如需将安全标记键与 Cloud NGFW 搭配使用,您必须将标记键的
purpose属性设置为GCE_FIREWALL,并且必须指定purpose-data属性:您可以将标记键的
purpose-data属性设置为network,后跟单个 VPC 网络规范。对于具有父级项目的标记键,如果您将标记键的
purpose-data属性设置为network,则指定的 VPC 网络必须与标记键位于同一项目中。对于具有父级组织的标记键,如果您将标记键的
purpose-data属性设置为network,则指定的 VPC 网络必须与标记键位于同一组织中。
您可以将标记键的
purpose-data属性设置为organization=auto。这会标识组织中的所有 VPC 网络。
创建标记键后,
purpose和purpose-data属性都无法更改。如需详细了解如何在标记键的purpose-data属性中设置网络规范的格式,请参阅 Resource Manager API 文档中的用途。结构和格式:一个安全标记键最多可以引用 1,000 个唯一标记值。具有 Tag Administrator 角色 (
roles/resourcemanager.tagAdmin) 的 IAM 主账号会为每个标记键创建标记键和标记值。如需详细了解安全标记限制,请参阅限制。在组织之间迁移项目:您可以将项目从一个组织迁移到另一个组织。在移动项目之前,请从原始组织中分离具有
purpose-data属性(指定项目中使用的组织)的所有标记键。如果您不先分离安全标记,则会在移动过程中收到出错提示。访问权限控制:IAM 政策决定了哪些 IAM 主账号可以管理和使用安全标记:
具有 Tag Administrator 角色 (
roles/resourcemanager.tagAdmin) 的 IAM 主账号可以创建标记键并管理其标记值:在组织的 IAM 政策中被授予 Tag Administrator 角色 (
roles/resourcemanager.tagAdmin) 的 IAM 主账号可以创建以组织作为其父级的标记键。在组织、文件夹或项目的 IAM 政策中被授予 Tag Administrator 角色 (
roles/resourcemanager.tagAdmin) 的 IAM 主账号可以创建以项目作为其父级的标记键。
具有 Tag User 角色 (
roles/resourcemanager.tagUser) 的 IAM 主账号可以将标记值绑定到虚拟机实例,也可以在分层防火墙政策、全球网络防火墙政策或区域级网络防火墙政策的防火墙规则中使用标记值。在组织的 IAM 政策中被授予 Tag User 角色 (
roles/resourcemanager.tagUser) 的 IAM 主账号可以使用以组织为父级的标记键中的标记值。在组织、文件夹或项目的 IAM 政策中被授予 Tag User 角色 (
roles/resourcemanager.tagUser) 的 IAM 主体可以使用以项目作为其父级的标记键中的标记值。
可以向作为开发者、数据库管理员或运营团队的 IAM 主账号授予 Tag User 角色 (
roles/resourcemanager.tagUser) 以及其他适当的角色,而无需向其授予 Compute Security Admin 角色 (roles/compute.securityAdmin)。这样,运营团队就可以控制哪些防火墙规则应用于其管理的虚拟机实例的网络接口,而无法修改这些防火墙规则。
如需详细了解所需权限,请参阅 IAM 角色。
防火墙规则支持:分层防火墙政策、全球网络防火墙政策和区域级网络防火墙政策中的规则支持将标记键用作来源安全标记或目标安全标记。VPC 防火墙规则不支持安全标记。如需了解详情,请参阅安全标记与网络标记的比较。
虚拟机绑定和适用的防火墙规则:将安全标记值绑定到虚拟机实例时,使用该标记值的适用防火墙规则会将虚拟机网络接口作为来源或目标:
如果绑定到实例的安全标记值来自其
purpose-data属性指定单个 VPC 网络的标记键:使用该标记值作为来源安全标记的入站流量防火墙规则具有包含指定 VPC 网络中虚拟机的网络接口的来源。
使用该标记值作为目标安全标记的入站和出站防火墙规则具有包含指定 VPC 网络中虚拟机的网络接口的目标。
如果绑定到实例的安全标记值来自其
purpose-data属性指定组织的标记键,则:使用该标记值作为来源安全标记的入站防火墙规则具有包含组织中任何 VPC 网络中的虚拟机网络接口的来源。
使用该标记值作为目标安全标记的入站和出站防火墙规则具有包含虚拟机网络接口的目标,这些网络接口位于组织的任何 VPC 网络中。
适用的防火墙规则如何识别数据包:Cloud NGFW 会将来源安全标记和目标安全标记映射到网络接口,而不是 IP 地址:
当入站流量防火墙规则的来源安全标记包含虚拟机网络接口作为来源时, Google Cloud 会匹配从该网络接口发送的所有数据包。
当入站流量防火墙规则的目标安全标记将虚拟机网络接口作为目标时, Google Cloud 会匹配该网络接口接收的所有数据包。
当出站流量防火墙规则的目标安全标记将虚拟机网络接口作为目标时, Google Cloud 会匹配从该网络接口发送的所有数据包。
每个实例的标记值数量:您可以将每个标记值绑定到不限数量的虚拟机实例。每个实例支持的标记值数量是可变的。 Google Cloud 强制执行应用于虚拟机每个网络接口的标记值数量上限为 10。 Google Cloud 如果一个或多个网络接口应用了超过 10 个标记值,则无法将其他标记值绑定到虚拟机实例。如需了解详情,请参阅绑定安全标记。
网络对等互连和 NCC 支持:您可以使用安全标记来标识对等互连网络中的虚拟机网络接口。这包括通过 VPC 网络对等互连和 Network Connectivity Center hub 上的 VPC spoke 连接的网络。此功能可帮助使用专用服务访问通道的已发布服务的使用方。例如,您可以使用具有来源安全标记的入站流量防火墙规则来控制从服务提供方虚拟机到您的虚拟机的流量。
将安全标记与 Google Kubernetes Engine (GKE) 搭配使用:您可以将安全标记绑定到 GKE 集群和节点池,以便在网络防火墙政策中使用。如需了解详情,请参阅创建和管理安全标记。
绑定安全标记
如需将安全标记与 Cloud NGFW 搭配使用,您必须将标记值绑定到虚拟机实例。每个安全标记键都支持多个标记值;但是,对于每个标记键,您只能将其一个标记值绑定到实例。如需详细了解 IAM 权限以及如何绑定安全标记,请参阅绑定安全标记。
本部分中的示例展示了绑定的标记值如何应用于虚拟机网络接口。以具有两个网络接口的 instance1 虚拟机实例为例:
nic0已连接到network1VPC 网络nic1已连接到network2VPC 网络
两个 VPC 网络位于同一组织中。
相应标记键的 purpose-data 属性决定了绑定标记值与虚拟机网络接口之间的关系。
其 purpose-data 属性指定 VPC 网络的标记键
假设您创建了两个具有以下 purpose-data 属性和标记值的标记键:
tag_key1具有purpose-data属性,该属性指定network1VPC 网络和两个标记值tag_value1和tag_value2。tag_key2具有purpose-data属性,该属性指定network2VPC 网络和一个标记值tag_value3。
purpose-data 属性指定一个 VPC 网络(点击可放大)。将安全标记值 tag_value1 和 tag_value3 绑定到 instance1 时:
tag_value1适用于nic0网络接口,因为其父级tag_key1具有指定network1VPC 网络的purpose-data属性,并且nic0网络接口位于network1中。tag_value3适用于nic1网络接口,因为其父级tag_key2具有指定network2VPC 网络的purpose-data属性,并且nic1网络接口位于network2中。
下图显示了绑定标记值,这些标记值来自其 purpose-data 属性指定单个 VPC 网络的标记键。
purpose-data 属性指定单个 VPC 网络(点击可放大)。其 purpose-data 属性指定组织的标记键
假设您创建了两个具有以下 purpose-data 属性和标记值的标记键:
tag_key3具有一个指定父级组织的purpose-data属性,并且具有两个标记值tag_value4和tag_value5。tag_key4具有一个指定父级组织的purpose-data属性,并且具有一个标记值tag_value6。
purpose-data 属性指定父级组织(点击可放大)。将标记值 tag_value4 绑定到 instance1 时:
tag_value4适用于nic0网络接口,因为其父级tag_key3具有purpose-data属性,该属性指定包含network1VPC 网络的父级组织,并且nic0网络接口位于network1中。tag_value4也适用于nic1网络接口,因为其父级tag_key3包含一个purpose-data属性,该属性指定了包含network2VPC 网络的父级组织。nic1网络接口位于network2中。
下图显示了从其 purpose-data 属性指定父级组织的标记键绑定标记值。
purpose-data 属性指定父级组织(点击可放大)。配置安全标记
以下工作流提供了在防火墙政策中配置安全标记所需的简要步骤。
您可以在组织或项目级层创建安全标记。如需在组织级层创建标签,您必须先获得组织管理员授予的 IAM 权限。如需了解详情,请参阅授予安全标记权限。
如需创建安全标记,您必须先创建标记键。此标记键用于描述您要创建的标记。如需了解详情,请参阅创建安全标记键和值。
创建安全标记键后,您必须向其添加相关的安全标记值。如需了解详情,请参阅创建安全标记键和值。 如需向用户授予管理安全标记键以及向资源附加标记值的特定权限,请使用 Google Cloud 控制台。如需了解详情,请参阅管理对标签的访问权限。
创建安全标记后,您可以在网络防火墙政策或分层防火墙政策中使用该标记。如需了解详情,请参阅创建分层防火墙政策和创建网络防火墙政策。
如需在具有来源标记键和目标标记键的虚拟机之间允许所选流量,请创建具有特定来源标记值和目标标记值的防火墙政策规则(网络或分层)。如需了解详情,请参阅创建具有安全标记的防火墙政策规则。
创建标记键并向该标记键和资源授予适当的访问权限后,可以将标记值绑定到虚拟机实例。如需了解详情,请参阅绑定安全标记。
安全标记与网络标记的比较
下表总结了安全标记和网络标记之间的区别。对勾标记表示该属性受支持,符号表示该属性不受支持。
| 属性 | 具有指定 VPC 网络的 purpose-data 属性的安全标记 |
具有指定组织的 purpose-data 属性的安全标记 |
广告联盟代码 |
|---|---|---|---|
| 父级资源 | 项目或组织 | 项目或组织 | 项目 |
| 结构和格式 | 最多具有 1,000 个值的标记键 | 最多具有 1,000 个值的标记键 | 简单字符串 |
| 访问权限控制 | 使用 IAM | 使用 IAM | 无访问权限控制 |
| 适用的网络接口 |
|
|
|
| 受分层防火墙政策中的规则支持 | |||
| 受全球和区域级网络防火墙政策中的规则支持 | |||
| 受 VPC 防火墙规则支持 | |||
| 入站流量防火墙规则可以包含使用 VPC 网络对等互连连接的 VPC 网络中的来源 | 1 | 1 | |
| 入站流量防火墙规则可以包含 NCC hub 上其他 VPC spoke 中的来源 | 1 | 1 |
- 标记键
purpose-data属性指定另一个 VPC 网络(或包含另一个 VPC 网络的父级组织) - 另一个 VPC 网络和使用防火墙政策的 VPC 网络使用 VPC 网络对等互连进行连接,或者都是同一 NCC hub 上的 VPC spoke。
后续步骤
- 如需向安全标记授予权限以及创建安全标记键值对,请参阅创建和管理安全标记。
- 如需在网络对等互连中使用安全标记,请参阅在对等互连网络中使用安全标记。