使用区域级网络防火墙政策和规则

本页面假定您熟悉区域级网络防火墙政策概览中所述的概念。

防火墙政策任务

创建区域级网络防火墙政策

您可以为项目中的任何 VPC 网络创建政策。创建政策后,您可以将它与项目中的任何 VPC 网络相关联。关联政策后,政策的规则将对关联网络中的虚拟机有效。

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 在项目选择器下拉菜单中,选择您的组织内的项目。

  3. 点击创建防火墙政策

  4. 为政策指定名称

  5. 对于部署范围,选择区域级。选择要在用于创建此防火墙政策的区域。

  6. 如果要为政策创建规则,请点击继续,然后点击添加规则

    如需了解详情,请参阅创建防火墙规则

  7. 如果要将政策与网络关联,请点击继续,然后点击将政策与 VPC 网络关联

    如需了解详情,请参阅将政策与 VPC 网络关联

  8. 点击创建

gcloud

gcloud compute network-firewall-policies create \
    NETWORK_FIREWALL_POLICY_NAME
    --description DESCRIPTION \
    --region=REGION_NAME

替换以下内容:

  • NETWORK_FIREWALL_POLICY_NAME:政策的名称。
  • DESCRIPTION:政策的说明。
  • REGION_NAME:您要应用于政策的区域。

将政策与网络关联

将政策与网络关联,以激活网络中任何虚拟机的政策规则。

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 在项目选择器下拉菜单中,选择包含政策的项目。

  3. 点击您的政策。

  4. 点击关联标签页。

  5. 点击添加关联

  6. 选择项目中的网络。

  7. 点击关联

gcloud

gcloud compute network-firewall-policies associations create \
    --firewall-policy POLICY_NAME \
    --network NETWORK_NAME \
    --name ASSOCIATION_NAME  \
    --firewall-policy-region=REGION_NAME
    [ --replace-association-on-target true ]

请替换以下内容:

  • POLICY_NAME:政策的简称或系统生成的名称
  • NETWORK_NAME:网络的名称
  • ASSOCIATION_NAME:关联的可选名称;如果未指定,则将名称设置为“network-NETWORK_NAME”。
  • REGION_NAME:要应用政策的区域

描述区域级网络防火墙政策

您可以查看政策的所有详细信息,包括其所有防火墙规则。此外,您还可以查看政策中的所有规则中的特性。这些特性会计入每项政策的限制

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 在项目选择器下拉菜单中,选择包含区域级网络防火墙政策的项目。

  3. 点击您的政策。

gcloud

gcloud compute network-firewall-policies describe POLICY_NAME \
    --region=REGION_NAME

更新区域级网络防火墙政策说明

唯一可以更新的政策字段是说明字段。

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 在项目选择器下拉菜单中,选择包含区域级网络防火墙政策的项目。

  3. 点击您的政策。

  4. 点击修改

  5. 修改说明

  6. 点击保存

gcloud

gcloud compute network-firewall-policies update POLICY_NAME \
    --description DESCRIPTION \
    --region=REGION_NAME

列出区域级网络防火墙政策

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 在项目选择器下拉菜单中,选择包含政策的项目。

    网络防火墙政策部分显示项目中可用的政策。

gcloud

gcloud compute network-firewall-policies list
    --regions=LIST_OF_REGIONS

删除区域级网络防火墙政策

您必须先删除网络防火墙政策的所有关联,然后才能删除政策。

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 在项目选择器下拉菜单中,选择包含政策的项目。

  3. 点击您要删除的政策。

  4. 点击关联标签页。

  5. 选择所有关联。

  6. 点击 Remove Associations(移除关联)。

  7. 移除所有关联后,点击删除

gcloud

  1. 列出与防火墙政策关联的所有网络:

    gcloud compute network-firewall-policies describe POLICY_NAME \
        --region=REGION_NAME
    
  2. 删除各个关联。如需移除关联,您必须具有针对关联的 VPC 网络的 compute.SecurityAdmin 角色。

    gcloud compute network-firewall-policies associations delete \
        --network-firewall-policy POLICY_NAME \
        --firewall-policy-region=REGION_NAME
    
  3. 删除政策:

    gcloud compute network-firewall-policies delete POLICY_NAME \
        --region=REGION_NAME
    

删除关联

如需停止对网络强制执行防火墙政策,请删除关联。

但是,如果您打算将一项防火墙政策替换为另一项安全政策,则无需先删除现有关联。否则,系统会在一段时间内没有强制执行任何政策。请改为在关联新政策时替换现有政策。

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 在项目选择器下拉菜单中,选择包含政策的项目或文件夹。

  3. 点击您的政策。

  4. 点击关联标签页。

  5. 选择要删除的关联。

  6. 点击 Remove Associations(移除关联)。

gcloud

gcloud compute network-firewall-policies associations delete ASSOCIATION_NAME \
    --firewall-policy POLICY_NAME \
    --firewall-policy-region REGION_NAME

防火墙政策规则任务

创建网络防火墙规则

您必须在区域级网络防火墙政策中创建网络防火墙政策规则。在将包含政策关联到 VPC 网络之前,这些规则处于无效状态。

每条网络防火墙政策规则可以包含 IPv4 或 IPv6 范围,但不能同时包含这两者。

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 在项目选择器下拉菜单中,选择包含政策的项目。

  3. 点击您的区域级政策的名称。

  4. 对于防火墙规则,点击创建

  5. 填充规则字段:

    1. 优先级:规则的数字评估顺序。这些规则按照从最高到最低的优先级进行评估,其中 0 是最高优先级。每条规则的优先级都必须唯一。最好向规则提供允许稍后插入的优先级编号(如 100200300)。
    2. 日志集合设置为开启关闭
    3. 选择“入站流量”或“出站流量”作为流量方向
    4. 对于对匹配项执行的操作,指定是允许(允许)还是拒绝(拒绝)与规则匹配的连接,还是将连接评估传递到层次结构中的下一个较低防火墙规则(转到下一个)。
    5. 指定规则的目标
      • 如果您希望将规则应用于网络中的所有实例,请选择网络中的所有实例
      • 如果您希望按标记将规则应用于部分实例,请选择安全标记。点击选择范围,然后选择要在其中创建标记键值对的组织或项目。输入规则应该应用于的键值对。如需添加更多键值对,请点击添加标记
      • 如果您希望按关联的服务账号将规则应用于部分实例,请选择服务账号,在服务账号范围中指明该服务账号属于当前项目还是其他项目,然后在目标服务账号字段中选择或输入服务账号名称。
    6. 对于入站流量规则,请指定来源过滤条件
      • 如需按来源 IPv4 范围过滤传入的流量,请选择 IPv4,然后在 IP 范围字段中输入 CIDR 地址块。如需选择所有 IPv4 来源,请使用 0.0.0.0/0
      • 如需按来源 IPv6 范围过滤传入的流量,请选择 IPv6,然后在 IP 范围字段中输入 CIDR 地址块。如需选择所有 IPv6 来源,请使用 ::/0
      • 如需按标记限制来源,请点击标记部分中的选择范围。选择要在其中创建标记的组织或项目。输入规则应该应用于的键值对。如需添加更多键值对,请点击添加标记
    7. 对于出站流量规则,请指定目标过滤条件
      • 如需按目标 IPv4 范围过滤传出的流量,请选择 IPv4,然后在 IP 范围字段中输入 CIDR 地址块。对于任何 IPv4 目标,请使用 0.0.0.0/0
      • 如需按目标 IPv6 范围过滤传出的流量,请选择 IPv6,然后在 IP 范围字段中输入 CIDR 地址块。对于任何 IPv6 目标,请使用 ::/0
    8. 可选:如果您要创建入站流量规则,请指定此规则适用的来源 FQDN。如果要创建出站流量规则,请选择此规则适用的目标 FQDN。如需详细了解域名对象,请参阅域名对象
    9. 可选:如果您要创建入站流量规则,请选择此规则适用的来源地理位置。如果要创建出站流量规则,请选择此规则适用的目标地理位置。如需详细了解地理位置对象,请参阅地理位置对象
    10. 可选:如果您要创建入站流量规则,请选择此规则适用的来源地址组。如果要创建出站流量规则,请选择此规则适用的目标地址组。如需详细了解地址组,请参阅防火墙政策的地址组
    11. 可选:如果您要创建入站流量规则,请选择此规则适用的 Google Cloud 威胁情报来源列表。 如果要创建出站流量规则,请选择此规则适用的目标 Google Cloud 威胁情报列表。如需详细了解威胁情报,请参阅防火墙政策规则的威胁情报
    12. 可选:对于入站流量规则,请指定目标过滤条件:

      • 如需按目标 IPv4 范围过滤传入的流量,请选择 IPv4,然后在 IP 范围字段中输入 CIDR 地址块。对于任何 IPv4 目标,请使用 0.0.0.0/0
      • 如需按目标 IPv6 范围过滤传入的流量,请选择 IPv6 范围,然后在目标 IPv6 范围字段中输入 CIDR 地址块。对于任何 IPv6 目标,请使用 ::/0。 如需了解详情,请参阅入站流量规则的目的地
    13. 可选:对于出站流量规则,请指定来源过滤条件:

      • 如需按来源 IPv4 范围过滤传出的流量,请选择 IPv4,然后在 IP 范围字段中输入 CIDR 地址块。如需选择所有 IPv4 来源,请使用 0.0.0.0/0
      • 如需按来源 IPv6 范围过滤传出的流量,请选择 IPv6,然后在 IP 范围字段中输入 CIDR 地址块。如需选择所有 IPv6 来源,请使用 ::/0。 如需了解详情,请参阅出站流量规则的来源
    14. 对于协议和端口,指定规则适用于所有协议和所有目标端口,或指定应用哪些协议和端口。

    15. 点击创建

  6. 点击添加规则以添加其他规则。点击继续 > 将政策与 VPC 网络关联以将政策与网络关联,或点击创建以创建政策。

gcloud

gcloud compute network-firewall-policies rules create PRIORITY \
    --action ACTION \
    --firewall-policy POLICY_NAME \
    [--description DESCRIPTION ]\
    [--layer4-configs PROTOCOL_PORT] \
    [--target-secure-tags TARGET_SECURE_TAG[,TARGET_SECURE_TAG,...]] \
    [--target-service-accounts=SERVICE_ACCOUNT[,SERVICE_ACCOUNT,...]] \
    [--direction DIRECTION]\
    [--src-ip-ranges IP_RANGES] \
    [--src-secure-tags SRC_SECURE_TAG[,SRC_SECURE_TAG,...]] \
    [--dest-ip-ranges IP_RANGES] \
    [--src-region-codes COUNTRY_CODE,[COUNTRY_CODE,...]] \
    [--dest-region-codes COUNTRY_CODE,[COUNTRY_CODE,...]] \ 
    [--src-threat-intelligence LIST_NAMES[,LIST_NAME,...]] \
    [--dest-threat-intelligence LIST_NAMES[,LIST_NAME,...]] \
    [--src-address-groups ADDR_GRP_URL[,ADDR_GRP_URL,...]] \
    [--dest-address-groups ADDR_GRP_URL[,ADDR_GRP_URLL,...]] \
    [--dest-fqdns DOMAIN_NAME[,DOMAIN_NAME,...]]
    [--src-fqdns DOMAIN_NAME[,DOMAIN_NAME,...]]
    [--enable-logging | --no-enable-logging]\
    [--disabled | --no-disabled]\
    --firewall-policy-region=REGION_NAME

请替换以下内容:

  • PRIORITY:规则的数字评估顺序

    这些规则按照从最高到最低的优先级进行评估,其中 0 是最高优先级。每条规则的优先级都必须唯一。最好向规则提供允许稍后插入的优先级编号(如 100200300)。

  • ACTION:以下操作之一:

    • allow:允许与规则匹配的连接
    • deny:拒绝与规则匹配的连接
    • goto_next:将连接评估传递到层次结构中的下一个级别(文件夹或网络)
  • POLICY_NAME:网络防火墙政策的名称

  • PROTOCOL_PORT:协议名称或数字 (tcp,17)、协议和目的地端口 (tcp:80) 或者协议和目的地端口范围 (tcp:5000-6000) 的英文逗号分隔列表

    您不能指定不含协议的端口或端口范围。对于 ICMP,您无法指定端口或端口范围 - 例如:
    --layer4-configs tcp:80,tcp:443,udp:4000-5000,icmp

    如需了解详情,请参阅协议和端口

  • TARGET_SECURE_TAG:用于定义目标安全标记列表(以英文逗号分隔)

  • SERVICE_ACCOUNT:用于定义目标的服务账号列表(以英文逗号分隔)

  • DIRECTION:指明规则是 ingress 规则还是 egress 规则;默认值为 ingress

    • 添加 --src-ip-ranges 以指定流量来源的 IP 地址范围
    • 添加 --dest-ip-ranges 以指定流量目的地的 IP 地址范围

    如需了解详情,请参阅目标来源目的地

  • IP_RANGES:CIDR 格式的 IP 地址范围(所有 IPv4 范围或所有 IPv6 范围)的英文逗号分隔列表 - 示例:
    --src-ip-ranges=10.100.0.1/32,10.200.0.0/24
    --src-ip-ranges=2001:0db8:1562::/96,2001:0db8:1723::/96

  • SRC_SECURE_TAG:以英文逗号分隔的标记列表

  • COUNTRY_CODE:以英文逗号分隔的双字母国家/地区代码列表

    • 对于入站流量方向,请在 --src-region-code 参数中指定来源国家/地区代码;不能j将 --src-region-code 参数用于出站流量方向
    • 对于出站流量方向,请在 --dest-region-code 参数中指定目标国家/地区代码;不能将 --dest-region-code 参数用于入站流量方向
  • LIST_NAMES:以英文逗号分隔的威胁情报列表名称

    • 对于入站流量方向,请在 --src-threat-intelligence 参数中指定来源威胁情报列表;不能将 --src-threat-intelligence 参数用于出站流量方向
    • 对于出站流量方向,请在 --dest-threat-intelligence 参数中指定目标威胁情报列表;不能将 --dest-threat-intelligence 参数用于入站流量方向
  • ADDR_GRP_URL:地址组的唯一网址标识符

    • 对于入站流量方向,请在 --src-address-groups 参数中指定来源地址组;不能将 --src-address-groups 参数用于出站流量方向
    • 对于出站流量方向,请在 --dest-address-groups 参数中指定目标地址组;不能将 --dest-address-groups 参数用于入站流量方向
  • DOMAIN_NAME:以英文逗号分隔的域名列表,格式如域名格式中所述

    • 对于入站流量方向,请在 --src-fqdns 参数中指定来源域名;不能将 --src-fqdns 参数用于出站流量方向
    • 对于出站流量方向,请在 --dest-fqdns 参数中指定目标地址组;不能将 --dest-fqdns 参数用于入站流量方向
  • --enable-logging--no-enable-logging:为给定规则启用或停用防火墙规则日志记录

  • --disabled:指明在处理连接时不予考虑防火墙规则(如果存在);忽略此标志将启用规则,也可以指定 --no-disabled

  • REGION_NAME:要应用政策的区域

更新规则

如需了解字段说明,请参阅创建防火墙规则

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 在项目选择器下拉菜单中,选择包含政策的项目。

  3. 点击您的政策。

  4. 点击规则的优先级。

  5. 点击修改

  6. 修改要更改的字段。

  7. 点击保存

gcloud

gcloud compute network-firewall-policies rules update PRIORITY \
    --firewall-policy POLICY_NAME \
    --firewall-policy-region=REGION_NAME \
    [...fields you want to modify...]

描述规则

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 在项目选择器下拉菜单中,选择包含政策的项目。

  3. 点击您的政策。

  4. 点击规则的优先级。

gcloud

gcloud compute network-firewall-policies rules describe PRIORITY \
    --firewall-policy POLICY_NAME \
    --firewall-policy-region=REGION_NAME

替换以下内容:

  • PRIORITY:要查看的规则的优先级;因为每条规则必须具有唯一的优先级,所以此设置唯一标识规则
  • POLICY_NAME:包含规则的政策的名称
  • REGION_NAME:要应用政策的区域。

从政策中删除规则

从政策中删除规则会从所有继承该规则的虚拟机中移除该规则。

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 在项目选择器下拉菜单中,选择包含政策的项目。

  3. 点击您的政策。

  4. 选择要删除的规则。

  5. 点击删除

gcloud

gcloud compute network-firewall-policies rules delete PRIORITY \
    --firewall-policy POLICY_NAME \
    --firewall-policy-region=REGION_NAME

替换以下内容:

  • PRIORITY:您要从政策中删除的规则的优先级
  • POLICY_NAME:包含规则的政策
  • REGION_NAME:要应用政策的区域

将规则从一个政策克隆到另一个政策

从目标政策中移除所有规则,并将其替换为来源政策中的规则。

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 在项目选择器下拉菜单中,选择包含政策的项目。

  3. 点击要从中复制规则的政策。

  4. 点击屏幕顶部的克隆

  5. 提供目标政策的名称。

  6. 如果您想立即关联新政策,请点击继续 > 将网络政策与资源关联

  7. 点击克隆

gcloud

gcloud compute network-firewall-policies clone-rules POLICY_NAME \
    --source-firewall-policy SOURCE_POLICY \
    --region=REGION_NAME

替换以下内容:

  • POLICY_NAME:接收所复制规则的政策
  • SOURCE_POLICY:从中复制规则的政策;必须是资源的网址
  • REGION_NAME:要应用政策的区域

获取有效的区域级网络防火墙政策

您可以查看应用于指定区域的所有分层防火墙政策规则、VPC 防火墙规则和网络防火墙政策。

gcloud

gcloud compute network-firewall-policies get-effective-firewalls \
    --region=REGION_NAME \
    --network=NETWORK_NAME

请替换以下内容:

  • REGION_NAME:您要查看其有效规则的区域。
  • NETWORK_NAME:您要查看其有效规则的网络。