查看和优化防火墙规则

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本页介绍用于查看和优化 Virtual Private Cloud (VPC) 防火墙使用情况的一些常见防火墙数据分析任务。执行这些任务以优化防火墙规则配置并加强安全边界。

例如,假设您是网络管理员或网络安全工程师,支持许多具有多个项目和应用的大型共享 VPC 网络。您想要查看和优化随着时间的推移积累的大量防火墙规则,以确保它们与您的网络的预期状态一致。您可以使用以下任务查看和优化防火墙规则。

所需的角色和权限

如需获得使用防火墙数据分析所需的权限,请让您的管理员向您授予项目的以下 IAM 角色:

  • Firewall Recommender Admin 角色 (roles/recommender.firewallAdmin)
  • Firewall Recommender Viewer 角色 (roles/recommender.firewallViewer)

如需详细了解如何授予角色,请参阅管理访问权限

这些预定义角色包含使用防火墙数据分析所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

  • recommender.computeFirewallInsights.list
  • recommender.computeFirewallInsights.update

您也可以使用自定义角色或其他预定义角色来获取这些权限。

查看最近 30 天内应用到虚拟机的规则

如需查看可帮助您避免配置错误和不必要的被覆盖的规则的规则,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,前往 Compute Engine“虚拟机实例”页面。

    转到 Compute Engine 虚拟机实例

  2. 过滤虚拟机实例字段中,通过输入以下键值对之一来过滤实例以查找相关的虚拟机。您也可以点击输入键(例如 Network tags)后出现的值。如需了解详情,请参阅标记IP 地址的文档。

    Network tags:TAG_NAME

    TAG_NAME 替换为分配给 VPC 网络的标记。

    Internal IP:INTERNAL_IP_ADDRESS

    INTERNAL_IP_ADDRESS 替换为虚拟机接口的内部 IP 地址。

    External IP:EXTERNAL_IP_ADDRESS

    EXTERNAL_IP_ADDRESS 替换为虚拟机接口的外部 IP 地址。

  3. 在虚拟机接口的搜索结果中,找到虚拟机,然后点击其更多操作菜单

  4. 在菜单上,选择查看网络详情

  5. 网络接口详情页面上,完成以下步骤:

    1. 防火墙规则和路由详情 > 防火墙过滤条件中,输入 last hit after:YYYY-MM-DD 以过滤防火墙规则。此过滤条件表达式会查找具有近期命中的防火墙规则。

    2. 对于防火墙规则,请点击命中数列中的数字以打开防火墙日志并查看流量详情,如以下示例查询中所示。要输入查询,请点击提交过滤条件

      jsonPayload.rule_details.reference:("network:network1/firewall:allow-tcp") AND
      jsonPayload.instance.project_id:("p6ntest-firewall-intelligence") AND
      jsonPayload.instance.zone:("us-central1-c") AND
      jsonPayload.instance.vm_name:("instance2")
      
    3. 添加一个或多个其他 Cloud Logging 过滤条件,以进一步过滤防火墙日志详情。例如,以下示例查询添加了一个附加过滤条件,该过滤条件按来源 IP 地址 (src_ip) 进行过滤。要输入查询,请点击提交过滤条件

      jsonPayload.rule_details.reference:("network:network1/firewall:allow-tcp") AND
      jsonPayload.instance.project_id:("p6ntest-firewall-intelligence") AND
      jsonPayload.instance.zone:("us-central1-c") AND
      jsonPayload.instance.vm_name:("instance2") AND
      jsonPayload.connection.src_ip:("10.0.1.2")
      

检测 deny 防火墙规则的命中数突然增加情况

您可以配置 Cloud Monitoring 以检测 VPC deny 防火墙规则的匹配数变化。例如,您可选择当特定规则的匹配数时,增加收到提醒的百分比。设置此提醒可帮助您检测针对 Google Cloud 资源的潜在攻击。

如需设置提醒,请执行以下操作:

控制台

  1. 在 Google Cloud Console 中,前往 Monitoring 页面。

    前往 Monitoring

  2. 在导航窗格中选择提醒

  3. 点击页面顶部的创建政策

  4. 创建提醒政策页面上,点击添加条件,然后完成以下步骤:

    1. 输入条件名称。

    2. 查找资源类型和指标字段中,输入 firewallinsights.googleapis.com/vm/firewall_hit_count虚拟机防火墙命中数)。此指标显示针对发往特定虚拟机的流量触发的防火墙规则的命中数。

    3. 输入过滤条件。例如:

      • 使用 instance_id 指定虚拟机的 ID。
      • 使用 firewall_name 来标识启用了防火墙规则日志记录的防火墙规则。
    4. 配置提醒条件。例如,当您确定的规则匹配数为 6 小时时,使用以下值触发提醒:

      • 条件触发的条件:设为 Any time series violates
      • 条件:设置为 increases by
      • 阈值:设置为 10
      • 对于:设置为 6 hours
    5. 点击添加

    6. 点击添加通知渠道,然后添加电子邮件地址等。

    7. 点击保存

清理被覆盖的防火墙规则

如需清理被其他规则覆盖的防火墙规则,请执行以下操作:

控制台

  1. 在 Google Cloud Console 中,转到防火墙页面。

    进入“防火墙”

  2. 过滤表字段中,输入以下查询:Insight type: Shadowed by

  3. 对于搜索结果中的每个规则,点击相应规则的名称并查看其详情页面。根据需要审核并清理每个规则。

如需详细了解被覆盖的规则,请参阅防火墙数据分析类别和状态中的被覆盖的规则的示例

移除未使用的 allow 规则

如需评估和移除未使用的 allow 规则,请执行以下操作:

控制台

  1. 在 Google Cloud Console 中,转到防火墙页面。

    进入“防火墙”

  2. 过滤表字段中,输入以下查询:Type:Ingress Last hit before:MM/DD/YYYY

    MM/DD/YYYY 替换为您要使用的日期。例如 08/31/2021

  3. 对于搜索结果中的每条规则,请查看数据分析列中的信息。此列提供一个百分比值,该值表示此规则在未来命中的可能性。如果百分比较高,您可能需要保留此规则。但是,如果该值较低,请继续查看数据分析生成的信息。

  4. 点击数据分析链接显示数据分析详情面板。

  5. 数据分析详情面板上,查看此规则的特性以及列出的任何类似规则的特性。

  6. 如果规则将来被命中的可能性较低,并且类似规则的命中模式支持该预测,请考虑移除该规则。如需移除该规则,请点击其名称显示在数据分析详情面板的顶部。防火墙规则详情页面随即打开。

  7. 点击删除

  8. 在确认对话框中点击删除

allow 规则中移除未使用的特性

如需评估和移除未使用的特性,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,进入防火墙数据分析页面。

    转到“防火墙数据分析”

  2. 在名为具有未使用特性的允许规则 (Allow rules with unused attributes) 的卡片上,点击查看完整列表。在响应中,Google Cloud 控制台会显示具有未使用特性的允许规则页面。本页面列出了在观察期间具有未使用特性的所有规则。

  3. 点击数据分析列中显示的文本。数据分析详情页面随即打开。

  4. 查看页面顶部的详细信息。此总结包含以下详细信息:

    • 数据分析的名称。
    • 此规则具有的未使用特性的数量。
    • 上次更新数据分析的时间。
    • 项目中使用类似特性的其他规则名称。
    • 观察期的长度。
  5. 评估是否可以移除该特性:

    1. 查看具有无命中特性的防火墙规则卡片。查看标记为无命中的特性(具有未来命中预测)的字段。此字段提供了一个百分比,该值说明特性将来被命中的可能性。
    2. 查看同一项目中的类似防火墙规则卡片。查看显示的有关是否使用此规则特性的数据。
  6. 如果特性在未来被命中的可能性较低,并且类似规则的命中模式支持该预测,请考虑从规则中移除该特性。如需移除该特性,请点击显示在数据分析详情页面顶部的规则名称。防火墙规则详情页面随即打开。

  7. 点击修改,进行所需的更改,然后点击保存

缩小 allow 规则的 IP 地址范围

请注意,您的项目可能具有防火墙规则,允许从某些 IP 地址块进行访问以进行负载均衡器健康检查或其他 Google Cloud 功能。这些 IP 地址可能不会被命中,但不应从防火墙规则中移除。如需详细了解这些范围,请参阅 Compute Engine 文档

如需评估和收紧过于宽松的 IP 地址范围,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,进入防火墙数据分析页面。

    转到“防火墙数据分析”

  2. 在名为具有过于宽松的 IP 地址或端口范围的允许规则的卡片上,点击查看完整列表。在响应中,Google Cloud 控制台会显示观察期内具有过于宽松范围的所有规则的列表。

  3. 在列表中找到任意规则,然后点击数据分析列中显示的文本。数据分析详情页面随即打开。

  4. 查看页面顶部的详细信息。此总结包含以下详细信息:

    • 规则的名称。
    • 可缩小的 IP 地址范围数量。
    • 上次更新数据分析的时间。
    • 观察期的长度。
  5. 评估是否可以缩小 IP 地址范围:查看具有过于宽松的 IP 地址或端口范围的防火墙规则卡片。查看所提议的新 IP 地址范围列表。

  6. 如果适用,请考虑根据数据分析中的建议缩小 IP 地址范围。点击数据分析详情页面顶部显示的规则的名称。防火墙规则详情页面随即打开。

  7. 点击修改,进行所需的更改,然后点击保存

后续步骤