使用防火墙数据分析

本页介绍如何查看防火墙数据分析的数据分析或用量指标,该模块支持从以下控制台、页面或工具访问此信息:

  • Network Intelligence Center 控制台
  • Recommendation Hub
  • Virtual Private Cloud (VPC) 的“防火墙规则详情”页面
  • Compute Engine 虚拟机 (VM) 实例的“网络接口详情”页面
  • gcloud Recommender 命令或 API

如需简要了解防火墙数据分析及其状态,请参阅防火墙数据分析概览

如需查看防火墙用量指标的列表,请参阅查看指标

准备工作

在使用防火墙数据分析之前,请在 Google Cloud 中设置以下各项:

  1. 在 Google Cloud Console 中,转到项目选择器页面。

    转到“项目选择器”页面

  2. 选择或创建 Google Cloud 项目。

  3. 确保您的 Cloud 项目已启用结算功能

  4. 如下一部分所述,启用 Firewall Insights API。

启用被覆盖的规则检测功能

如需使用被覆盖的规则检测功能,您必须启用 Firewall Insights API。

在 Cloud Console 中使用防火墙数据分析时,如果未检测到数据分析,Cloud Console 会提醒您启用该 API。

被覆盖的规则分析每天进行一次,因此您最长可能需要等待 24 小时才能看到结果。

控制台

  1. 在 Google Cloud Console 中,转到防火墙数据分析

    转到“防火墙数据分析”

  2. 点击配置

  3. 点击启用

  4. 点击选择器,使其显示已启用

  5. 点击完成

启用防火墙规则日志记录

如需查看防火墙规则的数据分析和用量指标,您必须为一个或多个防火墙规则启用防火墙规则日志记录。如需了解详情,请参阅防火墙规则日志记录概览

管理权限

如需查阅查看和管理数据分析和用量数据所需的角色和权限的列表,请参阅访问权限控制

使用 Network Intelligence Center

Cloud Console 中用于防火墙数据分析的 Network Intelligence Center 着陆页会显示三种数据分析卡:

  • 被覆盖的防火墙规则
  • 在指定观察时间段(默认值为过去 6 周)内没有任何命中的 Allow 防火墙规则
  • 在指定观察期(默认值为过去 24 小时)内有命中计数的 Deny 防火墙规则

每张卡片都包含一个摘要快照示例。借助卡片上方的过滤条件搜索栏,您可以过滤特定 VPC 网络的数据分析。

以下部分介绍了如何查看这些数据分析。

查看被覆盖的防火墙规则

如需了解被覆盖的防火墙规则,请参阅防火墙数据分析概览

控制台

  1. 在 Cloud Console 中,转到防火墙数据分析页面。

    转到“防火墙数据分析”页面

  2. 在名为被覆盖的规则的卡片上,点击查看完整列表

  3. 此时会打开一个详情页面,其中包含所有被覆盖的规则。

  4. 在每个规则的数据分析列中,点击每个被覆盖的规则以查看数据分析详情。此详情会显示被覆盖的规则以及一个或多个覆盖规则,因此您可以了解被覆盖的规则是多余的原因。如需了解详情,请参阅防火墙数据分析概览中被覆盖的规则示例。如需标记数据分析,请参阅以下部分。

将数据分析标记为“已忽略”

控制台

  1. 在 Cloud Console 中,转到防火墙数据分析页面。

    转到“防火墙数据分析”页面

  2. 在名为被覆盖的规则的卡片上,点击查看完整列表

  3. 此时会打开一个详情页面,其中包含所有被覆盖的规则。

  4. 如果被覆盖的规则没有意义,您可以点击页面顶部的忽略来将其关闭。

  5. 忽略数据分析后,除非您将其恢复,否则 Cloud Console 将不再向您或任何用户显示该数据分析。如需恢复数据分析,请参阅下一部分。

恢复已忽略的数据分析

如果您忽略了您认为稍后具有相关性的数据分析,您或用户可以按照以下步骤在 Cloud Console 中进行恢复。

控制台

  1. 在 Cloud Console 中,转到防火墙数据分析页面。

    转到“防火墙数据分析”页面

  2. 在名为被覆盖的规则的卡片上,点击查看完整列表

  3. 此时会打开一个详情页面,其中包含所有被覆盖的规则。

  4. 如需恢复已忽略的数据分析,请点击页面顶部的忽略历史记录。此操作会将您转到已忽略的数据分析页面。

  5. 已忽略的数据分析页面上,如需恢复数据分析,请选中一个或多个数据分析对应的复选框,然后点击页面顶部的恢复按钮。

查看观察期内没有任何命中的 allow 规则

如需了解如何准确收集整个观察期内的数据,请参阅防火墙数据分析概览

控制台

  1. 在 Cloud Console 中,转到防火墙数据分析页面。

    转到“防火墙数据分析”页面

  2. 在名为无命中的允许规则的卡片上,点击查看完整列表

  3. 此时,系统会打开一个详情页面,其中包含过去六周内未使用的所有 allow 规则。

  4. 对于每个防火墙规则,点击日志列右侧的查看审核日志,以查看何时为每个防火墙规则启用或停用防火墙日志记录。

  5. 如需查看其配置和使用详情,请点击防火墙规则的名称。

查看观察期内有命中的 deny 规则

如需了解如何准确收集整个观察期内的数据,请参阅防火墙数据分析概览

控制台

  1. 在 Cloud Console 中,转到防火墙数据分析页面。

    转到“防火墙数据分析”页面

  2. 在名为有命中的拒绝规则的卡片上,点击查看完整列表

  3. 此时,系统会打开一个详情页面,其中包含指定观察期(默认值为过去 24 小时)内有命中的所有防火墙 deny 规则。

  4. 如需查看由防火墙丢弃的数据包,请点击命中数转到“Cloud Logging”页面以获取详细信息。

使用 Recommendation Hub

Recommendation Hub 是 Recommender 产品的一项功能,用于提供 Google Cloud 产品和服务的使用建议。如需了解详情,请参阅 Recommendation Hub 文档

Recommendation Hub 的 Cloud Console 显示有关防火墙规则的以下数据分析:

  • 被覆盖的防火墙规则

Recommendation Hub 会显示这些建议以及有关其他产品(例如 Identity and Access Management (IAM) 和虚拟机合理容量)的建议。

查看被覆盖的防火墙规则

如需了解被覆盖的防火墙规则,请参阅防火墙数据分析概览

控制台

  1. 在 Cloud Console 中,转到 Recommendation Hub

    转到 Recommendation Hub

  2. 在名为简化防火墙配置的卡片上,点击查看全部

  3. 此时,系统会显示一个列出了所有被覆盖的规则的页面。

  4. 您可以点击数据分析,了解其生成原因。此数据分析详情会显示被覆盖的防火墙以及一个或多个覆盖防火墙规则,因此您可以了解被覆盖的规则是多余的原因。如需了解详情,请参阅防火墙数据分析概览中被覆盖的规则示例

将数据分析标记为“已忽略”

控制台

  1. 在 Cloud Console 中,转到 Recommendation Hub

    转到 Recommendation Hub

    1. 在名为简化防火墙配置的卡片上,点击查看全部
    2. 此时会打开一个详情页面,其中包含所有被覆盖的规则。
    3. 如果被覆盖的规则数据分析没有意义,您可以将其忽略:点击数据分析,然后点击面板中的忽略数据分析
    4. 忽略数据分析后,除非您将其恢复,否则 Cloud Console 将不再向您或任何用户显示该数据分析。如需恢复数据分析,请参阅下一部分。

恢复已忽略的数据分析

如果您忽略了您认为稍后具有相关性的数据分析,您或用户可以按照以下步骤在 Cloud Console 中进行恢复。

控制台

  1. 在 Cloud Console 中,转到 Recommendation Hub

    转到 Recommendation Hub

  2. 点击页面顶部的历史记录

  3. 点击已忽略标签页,其中会显示项目的已忽略建议和数据分析。

  4. 选择您要恢复的数据分析旁边的选项。

  5. 点击恢复

使用“防火墙规则详情”页面

如需详细了解此页面,请参阅列出 VPC 网络的防火墙规则

列出项目的数据分析

控制台

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

    转到“防火墙规则”页面

  2. 对于每个防火墙规则,在数据分析列中查看可用的数据分析的名称。

  3. 您可以点击数据分析名称以查看其详细信息。以下各部分介绍了如何查看和解释每种类型的数据分析的细节。

查看过去 24 个月内没有任何命中的 allow 规则

控制台

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

    转到“防火墙规则”页面

  2. 上次命中时间列中,查看过去 24 个月内最后一次使用指定防火墙规则的时间。

查看规则的使用记录图表

控制台

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

    转到“防火墙规则”页面

  2. 点击防火墙规则名称。

  3. 在页面的命中数监控部分中查看生成的图表,其中显示给定时间段内的防火墙命中数。您可以选择图表上方不同时间段的标签页。

查看观察期内有命中的 deny 规则

控制台

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

    转到“防火墙规则”页面

  2. 命中数列中,查看过去 24 个月(默认值)内用于给定防火墙规则的唯一连接数

使用“虚拟机网络接口详情”页面

在虚拟机的网络接口详细信息页上查看防火墙用量。

如需详细了解此页面,请参阅列出虚拟机实例网络接口的防火墙规则

查看在过去 24 个月内有命中的规则

控制台

  1. 在 Cloud Console 中,转到 Compute Engine“虚拟机实例”页面。

    转到 Compute Engine“虚拟机实例”页面

  2. 选择一个虚拟机,然后在页面的最右侧点击其更多操作菜单

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

  4. 防火墙和路由详细信息部分中,点击防火墙规则标签页。

  5. 命中数列中,查看过去 24 个月内与特定网络接口关联的所有防火墙规则的 allowdeny 流量的命中数。

使用 gcloud 命令或 API 处理数据分析

防火墙数据分析使用 Recommender 命令。Recommender 是一项 Google Cloud 服务,可提供有关 Google Cloud 产品和服务的使用建议。

列出数据分析

gcloud

  • 如需列出项目的数据分析,请输入以下命令:

    gcloud beta recommender insights list --project=PROJECT_ID \
    --location=global --insight-type=google.compute.firewall.Insight \
    --filter=EXPRESSION --limit=LIMIT \
    --page-size=PAGE_SIZE --sort-by=SORT_BY \
    --format=json
    

    PROJECT_ID 替换为您要列出其数据分析的项目 ID。

    location 始终使用名为 global 的位置。insight-type 始终使用名为 google.compute.firewall.Insight 的数据分析类型。除非您使用 JSON 格式化输出,否则命令输出将以表格形式显示。

    以下字段是可选的:

    • EXPRESSION。将此布尔过滤条件应用于您要列出的每个资源。如果表达式的计算结果为 True,则会列出该项目。如需详细了解过滤条件表达式并查看示例,请运行 $ gcloud topic filters 或参阅 gcloud 主题文档
    • LIMIT。用于指定要列出的资源数上限。列出的默认资源数量是无限的。
    • PAGE_SIZE。用于指定每页列出的资源数上限。默认页大小由服务确定,否则不进行分页。可以在 FILTERLIMIT 之前或之后应用分页。
    • SORT_BY。用于指定一个以英文逗号分隔的字段键名称列表,以对资源进行排序。默认顺序是升序。如需指定降序,请在相应字段前面加上 ~(波浪号)。

API

如需获取 Google Cloud 项目的所有数据分析,请向 projects.locations.insightTypes.insights 方法发出 GET 请求。

GET https://recommender.googleapis.com/v1/{parent=projects/*/locations/global/insightTypes/*}/insights

以下示例显示了此命令的示例响应。

insights {
"name": "projects/{project_number}/locations/global/insightTypes/google.compute.firewall.Insight/insights/{insight-id}"
"description": "Firewall projects/{project_id}/global/firewalls/{shadowed_firewall_name} is shadowed by   projects/{project_id}/global/firewalls/{shadowing_firewall_name}."
"content": {
  "shadowingFirewalls": [
    "//compute.googleapis.com/projects/{project_id}/global/firewalls/shadowing_firewall_name1}"
  ]
},
"lastRefreshTime": "2020-04-01T19:16:43Z",
"observationPeriod": "0s",
"stateInfo" {
 "state": "ACTIVE"
}
"category": "SECURITY"
"targetResources":[
 "//compute.googleapis.com/projects/{project_id}/global/firewalls/{shadowed_firewall_name}"
 ],
"insightSubtype": "SHADOWED_RULE"
}

描述数据分析

使用此命令列出数据分析的详细信息。

gcloud

gcloud beta recommender insights describe INSIGHT_NAME \
  --project=PROJECT_NAME --location=global \
  --insight-type=google.compute.firewall.Insight

将以下变量替换为您网络的值:

  • INSIGHT_NAME:要描述的数据分析名称
  • PROJECT_NAME:您要为其列出数据分析的项目名称

location 始终使用名为 global 的位置。insight-type 始终使用名为 google.compute.firewall.Insight 的数据分析类型。

API

如需获取详细信息,请向 projects.locations.insightTypes.insights 方法发出 GET 请求。

GET
https://recommender.googleapis.com/v1/{name=projects/*/locations/global/insightTypes/*/insights/*}
{
 "name": projects/PROJECT_ID/locations/LOCATION/insightTypes/INSIGHT_TYPE_ID/insights/INSIGHT_ID,
{

将以下变量替换为您网络的值:

  • PROJECT_ID:项目 ID
  • LOCATION:始终使用名为 global 的位置
  • INSIGHT_TYPE_ID:始终使用 google.compute.firewall.Insight
  • INSIGHT_ID:数据分析的 ID

后续步骤

  • 如需查看 VPC 防火墙运行时用量、清理并优化防火墙规则配置并加强安全边界,请参阅处理常见使用场景