本页面介绍了如何使用分层防火墙政策和规则来控制Google Cloud 组织和文件夹中的网络流量。了解如何在组织或文件夹级层定义政策,然后将其与特定资源相关联。
在阅读本页面之前,请确保您熟悉分层防火墙政策概览中所述的概念。如需查看分层防火墙政策实施的示例,请参阅分层防火墙政策示例。
限制
- 分层防火墙政策规则不支持使用网络标记来定义目标。您必须改用目标虚拟私有云 (VPC) 网络或目标服务账号。
- 防火墙规则可以在文件夹级层和组织级层应用,但不能在 VPC 网络级层应用。VPC 网络支持常规 VPC 防火墙规则。
- 只有一个防火墙政策可以与资源(文件夹或组织)关联,但文件夹中的虚拟机 (VM) 实例可以从虚拟机上方的整个资源层次结构中继承规则。
- 防火墙政策规则日志记录支持
allow和deny规则,但不支持goto_next规则。 - 防火墙规则不支持 IPv6 逐跳协议。
防火墙政策任务
本部分介绍了如何创建和关联分层防火墙政策。
创建防火墙政策
创建分层防火墙政策时,您可以将其父级设置为组织或组织内的文件夹。创建政策后,您可以将政策与组织或组织中的文件夹相关联。
控制台
在 Google Cloud 控制台中,前往防火墙政策页面。
在项目选择器菜单中,选择您的组织 ID 或组织内的文件夹。
点击创建防火墙政策。
在政策名称字段中,输入政策的名称。
可选:如果您要为政策创建规则,请点击继续。
在添加规则部分中,点击创建防火墙规则。如需详细了解如何创建防火墙规则,请参阅以下内容:
(可选)如果您要将政策与资源关联,请点击继续。
在将政策与资源相关联部分中,点击添加。
如需了解详情,请参阅将政策与组织或文件夹相关联。
点击创建。
gcloud
运行以下命令以创建父级为组织的分层防火墙政策:
gcloud compute firewall-policies create \
--organization ORG_ID \
--short-name SHORT_NAME
运行以下命令可创建父级为组织内文件夹的分层防火墙政策:
gcloud compute firewall-policies create \
--folder FOLDER_ID \
--short-name SHORT_NAME
替换以下内容:
ORG_ID:您的组织的 ID指定组织 ID 以创建父级为组织的政策。政策可以与组织或组织内的文件夹相关联。
SHORT_NAME:政策的名称使用 Google Cloud CLI 创建的政策有两个名称:系统生成的名称和您提供的简称。使用 gcloud CLI 更新现有政策时,您可以提供系统生成的名称或简称以及组织 ID。使用 API 更新政策时,您必须提供系统生成的名称。
FOLDER_ID:文件夹的 ID指定文件夹 ID 以创建父级为文件夹的政策。 该政策可以与包含相应文件夹的组织或该组织内的任何文件夹相关联。
将政策与组织或文件夹相关联
将分层防火墙政策与组织或组织中的文件夹相关联后,该防火墙政策的规则(已停用的规则除外,但需遵守每条规则的目标)将应用于关联的组织或文件夹的项目中 VPC 网络内的资源。
控制台
在 Google Cloud 控制台中,前往防火墙政策页面。
在项目选择器菜单中,选择您的组织 ID 或包含政策的文件夹。
点击您的政策。
点击关联标签页。
点击添加关联。
选择组织根目录或组织内的文件夹。
点击添加。
gcloud
默认情况下,如果您尝试将关联插入到已有关联的组织或文件夹,则该方法将失败。如果指定此 --replace-association-on-target 标志,则在创建新关联的同时删除现有关联。这可防止资源在转换期间没有政策。
gcloud compute firewall-policies associations create \
--firewall-policy POLICY_NAME \
--organization ORG_ID \
[ --folder FOLDER_ID ] \
[ --name ASSOCIATION_NAME ] \
[ --replace-association-on-target ]
替换以下内容:
POLICY_NAME:政策的简称或系统生成的名称ORG_ID:您的组织的 IDFOLDER_ID:如果要将政策与文件夹相关联,请在此处指定;如果要将政策关联到组织级层,请省略ASSOCIATION_NAME:关联的可选名称;如果未指定,则将名称设置为“组织ORG_ID”或“文件夹FOLDER_ID”
防火墙政策规则任务
本部分介绍了如何创建分层防火墙政策规则。
为虚拟机目标创建入站规则
本部分介绍如何创建适用于 Compute Engine 实例的网络接口的入站规则。
控制台
在 Google Cloud 控制台中,前往防火墙政策页面。
在项目选择器列表中,选择包含分层防火墙政策的组织或文件夹。
如有必要,请在层次结构索引部分中选择一个子文件夹。
在防火墙政策部分中,点击要在其中创建规则的分层防火墙政策的名称。
在防火墙规则部分,点击创建防火墙规则,然后指定以下配置参数:
优先级:规则的数字评估顺序。
这些规则按照从最高到最低的优先级进行评估,其中
0是最高优先级。每条规则的优先级都必须唯一。 建议您将规则优先级值之间的差值设为大于 1(例如100、200、300),以便日后在现有规则之间创建新规则。说明:提供说明(可选)。
流量方向:选择入站。
对匹配项执行的操作:选择以下选项之一:
- 允许:允许与规则参数匹配的连接。
- 拒绝:用于屏蔽与规则参数匹配的连接。
- 转到下一层:继续执行防火墙规则评估流程。
日志:选择启用可启用防火墙规则日志记录;选择关闭可针对相应规则停用防火墙规则日志记录。
目标网络:您可以选择将防火墙政策应用于特定 VPC 网络中的目标,为此请点击添加网络,然后选择项目和网络。
目标:选择以下选项之一:
来源网络上下文:指定网络上下文:
- 如需跳过按网络上下文过滤入站流量,请选择所有网络上下文。
- 如需过滤到特定网络上下文的入站流量,请选择特定网络上下文,然后选择一个网络上下文:
- 互联网:入站流量必须与入站数据包的互联网网络情境相匹配。
- 非互联网:入站流量必须与入站数据包的非互联网网络上下文相匹配。
- VPC 内部:入站流量必须符合 VPC 内部网络上下文的标准。
- VPC 网络:入站流量必须符合 VPC 网络上下文的标准。您必须至少选择一个 VPC 网络:
- 选择当前项目:可让您从包含防火墙政策的项目中添加一个或多个 VPC 网络。
- 手动输入网络:可让您手动输入项目和 VPC 网络。
- 选择项目:用于选择一个项目,从中可以选择 VPC 网络。
来源过滤条件:指定其他来源参数。某些来源参数不能一起使用,并且您选择的来源网络情境会限制可使用的来源参数。如需了解详情,请参阅入站流量规则的来源以及入站流量规则来源组合。
- 如需按来源 IPv4 范围过滤入站流量,请选择 IPv4,然后在 IP 范围字段中输入 CIDR 地址块。如需选择所有 IPv4 来源,请使用
0.0.0.0/0。 - 如需按来源 IPv6 范围过滤入站流量,请选择 IPv6,然后在 IPv6 范围字段中输入 CIDR 地址块。如需选择所有 IPv6 来源,请使用
::/0。 - 如需按来源安全标记值过滤入站流量,请在安全标记部分中选择选择标记范围。然后,提供标记键和标记值。如需添加更多标记值,请点击添加标记。
- 如需按来源 FQDN 过滤入站流量,请在 FQDN 字段中输入 FQDN。如需了解详情,请参阅 FQDN 对象。
- 如需按来源地理位置过滤入站流量,请从地理位置字段中选择一个或多个位置。如需了解详情,请参阅地理定位对象。
- 如需按来源地址组过滤入站流量,请从地址组字段中选择一个或多个地址组。如需了解详情,请参阅防火墙政策的地址组。
- 如需按来源 Google 威胁情报列表过滤入站流量,请从 Google Cloud 威胁情报字段中选择一个或多个 Google 威胁情报列表。如需了解详情,请参阅防火墙政策规则的 Google Threat Intelligence。
- 如需按来源 IPv4 范围过滤入站流量,请选择 IPv4,然后在 IP 范围字段中输入 CIDR 地址块。如需选择所有 IPv4 来源,请使用
目的地:指定可选的目的地参数。如需了解详情,请参阅入站流量规则的目的地。
- 如需跳过按目标 IP 地址过滤入站流量,请选择无。
- 如需按目标 IP 地址过滤入站流量,请选择 IPv4 或 IPv6,然后输入一个或多个 CIDR,格式与来源 IPv4 范围或来源 IPv6 范围所用的格式相同。
协议和端口:指定流量的协议和目标端口,以匹配规则。如需了解详情,请参阅协议和端口。
强制执行:指定是否强制执行防火墙规则:
- 已启用:创建规则并开始对新连接强制执行该规则。
- 已停用:创建规则,但不针对新连接强制执行该规则。
点击创建。
gcloud
gcloud compute firewall-policies rules create PRIORITY \
--firewall-policy=POLICY_NAME \
--organization=ORG_ID | --folder=FOLDER_ID \
--description=DESCRIPTION \
--direction=INGRESS \
--action=ACTION \
[--enable-logging | --no-enable-logging] \
[--disabled | --no-disabled] \
[--target-resources=TARGET_NETWORKS] \
[--target-secure-tags=TARGET_SECURE_TAGS] \
[--target-service-accounts=TARGET_SERVICE_ACCOUNTS] \
[--layer4-configs=LAYER_4_CONFIGS] \
[--src-network-context=SRC_NETWORK_CONTEXT] \
[--src-networks=SRC_VPC_NETWORKS] \
[--src-ip-ranges=SRC_IP_RANGES] \
[--src-address-groups=SRC_ADDRESS_GROUPS] \
[--src-fqdns=SRC_DOMAIN_NAMES] \
[--src-secure-tags=SRC_SECURE_TAGS] \
[--src-region-codes=SRC_COUNTRY_CODES] \
[--src-threat-intelligence=SRC_THREAT_LIST_NAMES] \
[--dest-ip-ranges=DEST_IP_RANGES]
替换以下内容:
PRIORITY:政策中规则的数字评估顺序。这些规则按照从最高到最低的优先级进行评估,其中0是最高优先级。每条规则的优先级都必须唯一。建议您将规则优先级值之间的差值设为大于 1(例如100、200、300),以便日后在现有规则之间创建新规则。POLICY_NAME:您要在其中创建规则的分层防火墙政策的名称。ORG_ID:包含分层防火墙政策的组织 ID(如果其父级是组织)。FOLDER_ID:包含分层防火墙政策的文件夹 ID(如果其父级是文件夹)。DESCRIPTION:新规则的可选说明。-
ACTION:指定以下操作之一:allow:允许与规则匹配的连接。deny:拒绝与规则匹配的连接。goto_next:继续执行防火墙规则评估流程。
apply_security_profile_group:将数据包发送到防火墙端点或拦截端点组。- 当操作为
apply_security_profile_group时,您必须包含--security-profile-group SECURITY_PROFILE_GROUP,其中SECURITY_PROFILE_GROUP是安全配置文件组的名称。 - 安全配置文件组的安全配置文件可以引用 Cloud NGFW 防火墙端点或 Network Security Integration 拦截端点组以进行带内集成。
- 如果安全配置文件组的安全配置文件引用了 Cloud NGFW 防火墙端点,请添加
--tls-inspect或--no-tls-inspect以启用或停用 TLS 检查。
- 当操作为
--enable-logging和--no-enable-logging标志用于启用或停用 VPC 防火墙规则日志记录。--disabled和--no-disabled标志用于控制规则是处于停用(不强制执行)状态还是启用(强制执行)状态。-
指定目标:
- 如果您省略
--target-resources、--target-secure-tags和--target-service-accounts标志,Cloud NGFW 将使用最广泛的实例目标。 TARGET_NETWORKS:以逗号分隔列表形式指定的 VPC 网络,其中每个 VPC 网络都以其网络资源网址(格式为https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME)指定。--target-resources标志可以单独使用,也可以与其他一个目标标志结合使用。如需了解详情,请参阅特定目标组合。TARGET_SECURE_TAGS:以英文逗号分隔的安全标记值列表,用于将最广泛的实例目标范围缩小到绑定到至少一个安全标记值的虚拟机实例的网络接口。TARGET_SERVICE_ACCOUNTS:服务账号的逗号分隔列表,用于将最大范围的实例目标缩小到使用其中一个服务账号的虚拟机实例的网络接口。
- 如果您省略
LAYER_4_CONFIGS:以逗号分隔的第 4 层配置列表。每个第 4 层配置可以是以下项之一:- 不含任何目标端口的 IP 协议名称 (
tcp) 或 IANA IP 协议编号 (17)。 - 以英文冒号 (
tcp:80) 分隔的 IP 协议名称和目标端口。 - IP 协议名称和目标端口范围,以英文冒号分隔,并使用英文短划线分隔起始目标端口和结束目标端口 (
tcp:5000-6000)。如需了解详情,请参阅协议和端口。
- 不含任何目标端口的 IP 协议名称 (
-
为入站流量规则指定来源。
如需了解详情,请参阅入站流量规则来源组合:
SRC_NETWORK_CONTEXT:定义要与另一个受支持的来源参数结合使用的来源网络上下文,以生成来源组合。当值为--target-type=INSTANCES时,有效值为:INTERNET、NON_INTERNET、VPC_NETWORKS或INTRA_VPC。如需了解详情,请参阅网络上下文。SRC_VPC_NETWORKS:以逗号分隔的 VPC 网络列表,由其网址标识符指定。仅当--src-network-context为VPC_NETWORKS时,才应指定此标志。SRC_IP_RANGES:以逗号分隔的 IP 地址范围列表(采用 CIDR 格式)。列表中的范围必须全部是 IPv4 CIDR 或 IPv6 CIDR,不能同时使用这两者。SRC_ADDRESS_GROUPS:以逗号分隔的地址组列表,其中每个地址组都由其唯一网址标识符指定。列表中的地址组必须包含所有 IPv4 地址或所有 IPv6 地址,而不能同时包含这两种地址。SRC_DOMAIN_NAMES:以逗号分隔的 FQDN 对象列表,以域名格式指定。SRC_SECURE_TAGS:标记的逗号分隔列表。如果--src-network-context为INTERNET,则不能使用--src-secure-tags标志。SRC_COUNTRY_CODES:以逗号分隔的国家/地区双字母代码列表。如需了解详情,请参阅地理定位对象。 如果--src-network-context为NON_INTERNET、VPC_NETWORKS或INTRA_VPC,则无法使用--src-region-codes标志。SRC_THREAT_LIST_NAMES:Google Threat Intelligence 列表名称的逗号分隔列表。如需了解详情,请参阅防火墙政策规则的 Google Threat Intelligence。 如果--src-network-context为NON_INTERNET、VPC_NETWORKS或INTRA_VPC,则无法使用--src-threat-intelligence标志。
-
(可选)指定入站规则的目标:
DEST_IP_RANGES:以逗号分隔的 IP 地址范围列表(采用 CIDR 格式)。列表中的范围必须全部是 IPv4 CIDR 或 IPv6 CIDR,不能同时使用这两者。
为虚拟机目标创建出站规则
以下说明展示了如何创建出站规则。出站规则仅适用于作为 Compute Engine 实例网络接口的目标。
控制台
在 Google Cloud 控制台中,前往防火墙政策页面。
在项目选择器列表中,选择包含分层防火墙政策的组织或文件夹。
如有必要,请在层次结构索引部分中选择一个子文件夹。
在防火墙政策部分中,点击要在其中创建规则的分层防火墙政策的名称。
在防火墙规则部分,点击创建防火墙规则,然后指定以下配置参数:
优先级:规则的数字评估顺序。
这些规则按照从最高到最低的优先级进行评估,其中
0是最高优先级。每条规则的优先级都必须唯一。 建议您将规则优先级值之间的差值设为大于 1(例如100、200、300),以便日后在现有规则之间创建新规则。说明:提供说明(可选)。
流量方向:选择出站。
对匹配项执行的操作:选择以下选项之一:
- 允许:允许与规则参数匹配的连接。
- 拒绝:用于屏蔽与规则参数匹配的连接。
- 转到下一层:继续执行防火墙规则评估流程。
日志:选择启用可启用防火墙规则日志记录;选择关闭可针对相应规则停用防火墙规则日志记录。
目标网络:您可以选择将防火墙政策应用于特定 VPC 网络中的目标,为此请点击添加网络,然后选择项目和网络。
目标:选择以下选项之一:
目标网络上下文:指定网络上下文:
- 如需跳过按网络上下文过滤出站流量,请选择所有网络上下文。
- 如需将出站流量过滤到特定网络情境,请选择特定网络情境,然后选择一个网络情境:
- 互联网:出站流量必须与出站数据包的互联网网络上下文相匹配。
- 非互联网:出站流量必须与出站数据包的非互联网网络上下文相匹配。
目标过滤条件:指定其他目标参数。某些目标参数不能一起使用,并且您选择的目标网络上下文会限制可使用的目标过滤条件。如需了解详情,请参阅出站流量规则的目的地和出站流量规则目的地组合。
- 如需按目标 IPv4 范围过滤传出的流量,请选择 IPv4,然后在 IP 范围字段中输入 CIDR 地址块。对于任何 IPv4 目标,请使用
0.0.0.0/0。 - 如需按目标 IPv6 范围过滤传出的流量,请选择 IPv6,然后在 IPv6 范围字段中输入 CIDR 地址块。对于任何 IPv6 目标,请使用
::/0。 - 如需按目标 FQDN 过滤传出的流量,请在 FQDN 字段中输入 FQDN。如需了解详情,请参阅 FQDN 对象。
- 如需按目标地理位置过滤传出的流量,请从地理位置字段中选择一个或多个地理位置。如需了解详情,请参阅地理定位对象。
- 如需按目标地址组过滤出站流量,请从地址组字段中选择一个或多个地址组。如需了解详情,请参阅防火墙政策的地址组。
- 如需按目的地 Google Threat Intelligence 列表过滤出站流量,请从 Google Cloud Threat Intelligence 字段中选择一个或多个 Google Threat Intelligence 列表。如需了解详情,请参阅防火墙政策规则的 Google Threat Intelligence。
- 如需按目标 IPv4 范围过滤传出的流量,请选择 IPv4,然后在 IP 范围字段中输入 CIDR 地址块。对于任何 IPv4 目标,请使用
来源:指定可选的来源参数。如需了解详情,请参阅出站流量规则的来源。
- 如需跳过按来源 IP 地址过滤传出流量,请选择无。
- 如需按来源 IP 地址过滤传出的流量,请选择 IPv4 或 IPv6,然后输入一个或多个 CIDR,格式与用于目标 IPv4 范围或目标 IPv6 范围的格式相同。
协议和端口:指定流量的协议和目标端口,以匹配规则。如需了解详情,请参阅协议和端口。
强制执行:指定是否强制执行防火墙规则:
- 已启用:创建规则并开始对新连接强制执行该规则。
- 已停用:创建规则,但不针对新连接强制执行该规则。
点击创建。
gcloud
gcloud compute firewall-policies rules create PRIORITY \
--firewall-policy=POLICY_NAME \
--organization=ORG_ID | --folder=FOLDER_ID \
--description=DESCRIPTION \
--direction=EGRESS \
--action=ACTION \
[--enable-logging | --no-enable-logging] \
[--disabled | --no-disabled] \
[--target-resources=TARGET_NETWORKS] \
[--target-secure-tags=TARGET_SECURE_TAGS] \
[--target-service-accounts=TARGET_SERVICE_ACCOUNTS] \
[--layer4-configs=LAYER_4_CONFIGS] \
[--dest-network-context=DEST_NETWORK_CONTEXT] \
[--dest-ip-ranges=DEST_IP_RANGES] \
[--dest-address-groups=DEST_ADDRESS_GROUPS] \
[--dest-fqdns=DEST_DOMAIN_NAMES] \
[--dest-region-codes=DEST_COUNTRY_CODES] \
[--dest-threat-intelligence=DEST_THREAT_LIST_NAMES] \
[--src-ip-ranges=SRC_IP_RANGES]
替换以下内容:
PRIORITY:政策中规则的数字评估顺序。这些规则按照从最高到最低的优先级进行评估,其中0是最高优先级。每条规则的优先级都必须唯一。建议您将规则优先级值之间的差值设为大于 1(例如100、200、300),以便日后在现有规则之间创建新规则。POLICY_NAME:您要在其中创建规则的分层防火墙政策的名称。ORG_ID:包含分层防火墙政策的组织 ID(如果其父级是组织)。FOLDER_ID:包含分层防火墙政策的文件夹 ID(如果其父级是文件夹)。DESCRIPTION:新规则的可选说明。-
ACTION:指定以下操作之一:allow:允许与规则匹配的连接。deny:拒绝与规则匹配的连接。goto_next:继续执行防火墙规则评估流程。
apply_security_profile_group:将数据包发送到防火墙端点或拦截端点组。- 当操作为
apply_security_profile_group时,您必须包含--security-profile-group SECURITY_PROFILE_GROUP,其中SECURITY_PROFILE_GROUP是安全配置文件组的名称。 - 安全配置文件组的安全配置文件可以引用 Cloud NGFW 防火墙端点或 Network Security Integration 拦截端点组以进行带内集成。
- 如果安全配置文件组的安全配置文件引用了 Cloud NGFW 防火墙端点,请添加
--tls-inspect或--no-tls-inspect以启用或停用 TLS 检查。
- 当操作为
--enable-logging和--no-enable-logging标志用于启用或停用 VPC 防火墙规则日志记录。--disabled和--no-disabled标志用于控制规则是处于停用(不强制执行)状态还是启用(强制执行)状态。-
指定目标:
- 如果您省略
--target-resources、--target-secure-tags和--target-service-accounts标志,Cloud NGFW 将使用最广泛的实例目标。 TARGET_NETWORKS:以逗号分隔列表形式指定的 VPC 网络,其中每个 VPC 网络都以其网络资源网址(格式为https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME)指定。--target-resources标志可以单独使用,也可以与其他一个目标标志结合使用。如需了解详情,请参阅特定目标组合。TARGET_SECURE_TAGS:以英文逗号分隔的安全标记值列表,用于将最广泛的实例目标范围缩小到绑定到至少一个安全标记值的虚拟机实例的网络接口。TARGET_SERVICE_ACCOUNTS:服务账号的逗号分隔列表,用于将最大范围的实例目标缩小到使用其中一个服务账号的虚拟机实例的网络接口。
- 如果您省略
LAYER_4_CONFIGS:以逗号分隔的第 4 层配置列表。每个第 4 层配置可以是以下项之一:- 不含任何目标端口的 IP 协议名称 (
tcp) 或 IANA IP 协议编号 (17)。 - 以英文冒号 (
tcp:80) 分隔的 IP 协议名称和目标端口。 - IP 协议名称和目标端口范围,以英文冒号分隔,并使用英文短划线分隔起始目标端口和结束目标端口 (
tcp:5000-6000)。如需了解详情,请参阅协议和端口。
- 不含任何目标端口的 IP 协议名称 (
-
为出站规则指定目的地。如需了解详情,请参阅出站流量规则目的地组合:
DEST_NETWORK_CONTEXT:定义要与另一个受支持的目标参数结合使用的目标网络上下文,以生成目标组合。有效值为INTERNET和NON_INTERNET。如需了解详情,请参阅网络上下文。DEST_IP_RANGES:以逗号分隔的 IP 地址范围列表(采用 CIDR 格式)。列表中的范围必须全部是 IPv4 CIDR 或 IPv6 CIDR,不能同时使用这两者。DEST_ADDRESS_GROUPS:以逗号分隔的地址组列表,其中每个地址组都由其唯一网址标识符指定。DEST_DOMAIN_NAMES:以逗号分隔的 FQDN 对象列表,格式如域名格式中所述。DEST_COUNTRY_CODES:以逗号分隔的国家/地区双字母代码列表。如需了解详情,请参阅地理定位对象。DEST_THREAT_LIST_NAMES:Google Threat Intelligence 列表名称的逗号分隔列表。如需了解详情,请参阅防火墙政策规则的 Google Threat Intelligence。
-
(可选)指定出站流量规则的来源:
SRC_IP_RANGES:以逗号分隔的 IP 地址范围列表(采用 CIDR 格式)。列表中的范围必须全部是 IPv4 CIDR 或 IPv6 CIDR,不能同时使用这两者。