通过防火墙规则日志记录,您可以审核、验证和分析防火墙规则所带来的影响。例如,您可以确定用于拒绝流量的防火墙规则是否如期发挥作用。如果您需要确定某特定防火墙规则影响的连接数,防火墙规则日志记录也非常有用。
对于您需要记录其连接的每一条防火墙规则,您都要单独启用防火墙规则日志记录。防火墙规则日志记录选项适用于所有防火墙规则,与规则的操作(allow
或 deny
)或方向(入站或出站)无关。
防火墙规则日志记录会记录进出 Compute Engine 虚拟机实例的流量。这包括在 Compute Engine 虚拟机上构建的Trusted Cloud by S3NS 产品,例如 Google Kubernetes Engine (GKE) 集群和 App Engine 柔性环境实例。
启用防火墙规则日志记录后, Trusted Cloud by S3NS 会在规则允许或拒绝流量时创建称为连接记录的条目。您可以在 Cloud Logging 中查看这些记录,并将日志导出至 Cloud Logging 导出功能支持的任意目的地。
每一条连接记录都包含来源和目的地 IP 地址、协议和端口、日期和时间,以及对流量所应用的防火墙规则的引用。
防火墙规则日志记录可用于 VPC 防火墙规则和分层防火墙政策。
如需了解如何查看日志,请参阅使用防火墙规则日志记录。
规格
防火墙规则日志记录具有以下规范:
- 您只能为 Virtual Private Cloud (VPC) 网络中的规则启用防火墙规则日志记录。旧式网络不受支持。
- 防火墙规则日志记录仅记录 TCP 和 UDP 连接。虽然您可以创建适合其他协议的防火墙规则,但您无法记录其连接。
- 您无法为隐式拒绝入站流量规则和隐式允许出站流量规则启用防火墙规则日志记录。
- 日志条目从虚拟机的角度写入。仅当防火墙规则启用了日志记录,且该规则适用于进出虚拟机的流量时,才会创建日志条目。系统会尽量根据连接日志记录限制来创建条目。
- 在给定的时间间隔内可记录的连接数取决于机器类型。
- 您可以在 VPC 审核日志中查看对防火墙规则的更改。
防火墙日志格式
根据规范,如果对进出虚拟机实例的流量应用了已启用日志记录的防火墙规则,则系统会在 Cloud Logging 中为每条规则生成一个日志条目。日志记录包含在 Logging LogEntry 的 JSON 载荷字段中。
日志记录包含基本字段(即每个日志记录的核心字段)以及添加额外信息的元数据字段。您可以控制是否包含元数据字段。如果省略,则可以节省存储费用。
某些日志字段支持的值也是字段。这些字段可以在给定字段中包含多段数据。例如,connection
字段采用 IpConnection
格式,它在单个字段中包含来源 IP 地址和目的地 IP 地址、端口以及协议。下表介绍了这些字段。
字段 | 说明 | 字段类型:基本或可选元数据 |
---|---|---|
connection | IpConnection 一个 5 元组,它表示此连接的源 IP 地址、目标 IP 地址、源端口、目标端口以及 IP 协议。 |
基本 |
disposition | string 指示连接是 ALLOWED 还是 DENIED 。 |
基本 |
rule_details | RuleDetails 此连接所应用的规则的详细信息。 |
|
rule_details.reference 字段 |
基本 | |
其他规则详细信息字段 | 元数据 | |
instance | InstanceDetails 虚拟机实例详细信息。在共享 VPC 配置中, project_id 与服务项目的此内容相对应。 |
元数据 |
vpc | VpcDetails VPC 网络详细信息。在共享 VPC 配置中, project_id 与宿主项目的相应参数相对应。 |
元数据 |
remote_instance | InstanceDetails 如果连接的远程端点是位于 Google Compute Engine 中的虚拟机,则此字段会填充虚拟机实例详细信息。 |
元数据 |
remote_vpc | VpcDetails 如果连接的远程端点是位于 VPC 网络中的虚拟机,则此字段会填充网络详细信息。 |
元数据 |
remote_location | GeographicDetails 如果连接的远程端点在 VPC 网络的外部,则此字段会填充可用位置元数据。 |
元数据 |
IpConnection
字段 | 类型 | 说明 |
---|---|---|
src_ip | 字符串 | 来源 IP 地址。如果来源是 Compute Engine 虚拟机,则 src_ip 是主要内部 IP 地址或虚拟机网络接口的别名 IP 范围内的地址。系统不显示外部 IP 地址。如果虚拟机在数据包标头上发现虚拟机的 IP 地址,则 Logging 将显示此地址,这与您在虚拟机上运行 TCP 转储一样。 |
src_port | 整数 | 来源端口 |
dest_ip | 字符串 | 目的地 IP 地址。如果目的地是 Trusted Cloud 虚拟机,则 dest_ip 是主要内部 IP 地址或虚拟机网络接口的别名 IP 范围内的地址。即使使用外部 IP 地址进行连接,系统也不会显示此地址。 |
dest_port | 整数 | 目标端口 |
协议 | 整数 | 连接的 IP 协议 |
RuleDetails
字段 | 类型 | 说明 |
---|---|---|
引用 | 字符串 | 对防火墙规则的引用;格式:"network:{network name}/firewall:{firewall_name}" |
priority | 整数 | 防火墙规则的优先级。 |
action | 字符串 | ALLOW 或 DENY |
source_range[ ] | 字符串 | 防火墙规则适用的源范围列表。 |
destination_range[ ] | 字符串 | 防火墙规则适用的目的地范围列表。 |
ip_port_info[ ] | IpPortDetails | 规则的 IP 协议和适用端口范围列表。 |
direction | 字符串 | 防火墙规则适用的方向(入站或出站)。 |
source_tag[ ] | 字符串 | 防火墙规则适用的所有源标记的列表。 |
target_tag[ ] | 字符串 | 防火墙规则适用的所有目标标记的列表。 |
source_service_account[ ] | 字符串 | 防火墙规则适用的所有源服务账号的列表。 |
target_service_account[ ] | 字符串 | 防火墙规则适用的所有目标服务账号的列表。 |
source_region_code[ ] | 字符串 | 防火墙规则适用的所有源国家/地区代码。 |
destination_region_code[ ] | 字符串 | 防火墙规则适用的所有目标国家/地区代码列表。 |
source_fqdn[ ] | 字符串 | 防火墙规则适用的所有源域名的列表。 |
destination_fqdn[ ] | 字符串 | 防火墙规则适用的所有目标域名的列表。 |
source_address_groups[ ] | 字符串 | 防火墙规则适用的所有源地址组的列表。 |
destination_address_groups[ ] | 字符串 | 防火墙规则适用的所有目标地址组的列表。 |
IpPortDetails
字段 | 类型 | 说明 |
---|---|---|
ip_protocol | 字符串 | 防火墙规则所应用的 IP 协议。如果应用到所有协议,则为“All”。 |
port_range[ ] | 字符串 | 规则的适用端口范围列表;例如,8080-9090 。 |
InstanceDetails
字段 | 类型 | 说明 |
---|---|---|
project_id | 字符串 | 包含此虚拟机的项目的 ID |
vm_name | 字符串 | 虚拟机的实例名称 |
区域 | 字符串 | 虚拟机的区域 |
可用区 | 字符串 | 虚拟机的地区 |
VpcDetails
字段 | 类型 | 说明 |
---|---|---|
project_id | 字符串 | 包含此网络的项目的 ID |
vpc_name | 字符串 | 运行虚拟机的网络 |
subnetwork_name | 字符串 | 运行虚拟机的子网 |
GeographicDetails
字段 | 类型 | 说明 |
---|---|---|
continent | 字符串 | 外部端点所在的大洲 |
国家/地区 | 字符串 | 外部端点所在的国家/地区 |
区域 | 字符串 | 外部端点所在的区域 |
城市 | 字符串 | 外部端点所在的城市 |
后续步骤
- 如需设置日志记录和查看日志,请参阅使用防火墙规则日志记录。
- 如需深入了解如何使用防火墙规则,请参阅防火墙数据分析。
- 如需存储、搜索、分析、监控日志数据和事件并相应地发出提醒,请参阅 Cloud Logging。
- 如需路由日志条目,请参阅配置和管理接收器。