使用防火墙数据分析

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

  • 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

要使用防火墙数据分析,您必须启用 Firewall Insights API。

在 Cloud Console 中使用防火墙数据分析时,如果未检测到数据分析,Cloud Console 会提醒您启用该 API。或者,您可以通过执行以下步骤从 API 库启用该 API。

控制台

  1. 在 Google Cloud Console 中,转到 API 库

    转到 API 库

  2. 搜索栏中,输入 Firewall Insights,然后点击 API 名称。

  3. 在 Firewall Insights API 页面上,点击启用

如需详细了解 API,请参阅 Recommender 文档中的数据分析

启用 Firewall Rules Logging

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

管理权限

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

使用 Network Intelligence Center

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

  • 被覆盖的防火墙规则
  • 在过去六周内没有命中的 Allow 防火墙规则
  • Deny 防火墙规则在过去 24 小时内产生命中

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

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

查看被覆盖的防火墙规则

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

控制台

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

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

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

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

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

将数据分析标记为 DISMISSED

控制台

  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. 如需查看其配置和使用详情,请点击防火墙规则的名称。

查看在过去 24 小时内有命中的 deny 规则

如需了解如何准确地收集过去 24 小时的数据,请参阅防火墙数据分析概览

控制台

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

查看过去六周内没有命中的 allow 规则

控制台

  1. 在 Cloud Console 中,转到 Recommendation Hub

    转到 Recommendation Hub

  2. 在名为过于宽松的防火墙规则的卡片上,点击查看全部

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

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

  5. 点击防火墙规则的名称

  6. 系统会打开防火墙规则的详细信息页面,您可以在其中检查防火墙配置和使用详情。如需标记数据分析,请参阅以下部分。

将数据分析标记为 DISMISSED

控制台

  1. 在 Cloud Console 中,转到 Recommendation Hub

    转到 Recommendation Hub

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

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

  4. 如果一个或多个被覆盖的规则没有意义,您可以通过选中规则左侧的复选框来忽略相应规则。选中要忽略的所有规则后,点击页面中心的忽略

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

恢复已忽略的数据分析

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

控制台

  1. 在 Cloud Console 中,转到 Recommendation Hub

    转到 Recommendation Hub

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

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

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

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

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

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

列出项目的数据分析

控制台

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

    转到“防火墙规则”页面

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

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

查看过去六周内没有命中的 allow 规则

控制台

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

    转到“防火墙规则”页面

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

查看规则的使用记录图表

控制台

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

    转到“防火墙规则”页面

  2. 选中防火墙名称对应的复选框。

  3. 查看结果图表,其中显示了给定时间段内的防火墙命中数。您可以选择图表上方不同时间段的标签页。

查看过去 6 周内有命中的 deny 规则

控制台

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

    转到“防火墙规则”页面

  2. 命中数列中,观察在过去 6 周(默认值)内用于指定防火墙规则的唯一连接数。

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

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

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

查看过去 6 周内有命中的规则

控制台

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

    转到 Compute Engine 虚拟机实例页面

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

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

  4. 网络接口详情页面上,观察过去 6 周内与特定网络接口关联的所有防火墙规则的 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/beta/{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/v1beta1/{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 防火墙运行时使用情况,清理并优化防火墙规则配置并加强安全边界,请参阅使用常见用例