Build1 distinct publisher3 min readUpdated
Hit counts give firewall teams proof that a control actually fires. The catch is that pass rules stay invisible unless you edit them, so a zero is not the same as unused.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
Hit counts give firewall teams proof that a control actually fires. The catch is that pass rules stay invisible unless you edit them, so a zero is not the same as unused.
AWS has added rule hit count to Network Firewall, tracking how often each stateful rule matches traffic across both custom and managed rule groups [1]. The capability is enabled by default [2], which matters because the question it answers - did this control actually fire - was previously answered by hand, through manual log analysis [3].
AWS is explicit about the gaps it is closing. Organizations with governance policies that require removing dormant rules after a defined period had no mechanism to identify them [4]. Teams working to PCI 4.0 and DORA could not produce evidence that specific controls were actively functioning [5]. Central teams running firewalls for multiple business units could not tell which rules were unused or needed updating [6]. AWS says the hit data lets you remove unused rules, accelerate incident response, and validate control effectiveness for compliance [7].
The mechanism is worth reading closely, because it defines what the number means. The counter increments only when a rule match results in an alert log being created [8]. Rules with an alert, drop, or reject action therefore increment, since all three generate alert logs [9]. Rules with a pass action do not generate alert logs by default and will not appear in the metric at all [10]. AWS's workaround is to add the alert keyword inside the pass rule, which writes an alert log while still permitting the traffic [11].
That asymmetry is the operational trap. A zero next to a rule is two different statements collapsed into one: nothing matched, or the rule is a pass rule that was never instrumented to log [12]. Any policy built around explicit allow-listing will read as largely dormant on first inspection, and pruning on that basis would delete working rules. Instrumenting those pass rules fixes the visibility, but each one then writes an alert log on every match, into CloudWatch Logs or S3 [13].
The plumbing is unusually light. Network Firewall attaches an aws_metadata block containing the rule group's resource_arn to each alert log, by default and with no additional configuration [14]. The combination of sid and resource_arn identifies the specific rule that fired [15]. The firewall monitoring dashboard consumes those two fields to produce per-rule hit counts, so routine review does not require writing a query [16], and the same logs can be queried directly with CloudWatch Logs Insights or Amazon Athena [17].
"Enabled by default" needs a qualifier. The walkthrough requires an existing firewall inspecting VPC traffic, and alert log delivery must be configured [18]. The dashboard widget additionally requires detailed monitoring, enabled through the logging configuration or the Monitoring tab in the console [19]. The metadata itself is captured regardless of log destination and regardless of whether detailed monitoring is on, so custom dashboards can be built from the raw logs [20]. What is on by default is the metadata, not the reporting: a firewall with alert logging switched off produces no hit counts [21].
For an attestation file, this is a genuine change in kind. A hit count is a positive artifact that a control matched traffic and logged it [8][15], which is a stronger statement than a screenshot of a rule's existence. It does not work in reverse. A control with zero hits may simply have had nothing to catch [8].
What to watch: whether teams begin adding the alert keyword to pass rules at scale, and what that does to log volume and query cost [11][13]; and whether hit counts on managed rule groups [1] get used to argue for trimming vendor-supplied rules, which is a different risk conversation from cleaning up your own.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
AWS Network Firewall's new rule hit count capability provides traffic match data for stateful rules across both custom and managed rule groups, tracking how often each stateful rule matches network traffic.
Network Firewall rule hit count is enabled by default and requires no additional configuration to start tracking rule hits on firewall policies.
As firewall rule sets grow in complexity, manual log analysis is used to determine which rules are actively matching traffic and which consume capacity without being triggered.
Organizations with governance policies that require removal of dormant rules after a defined period have no mechanism to identify them.
Teams responsible for compliance frameworks such as PCI 4.0 and DORA cannot provide evidence that specific controls are actively functioning.
Central teams managing firewalls on behalf of multiple business units have no way to determine which rules are unused or need updating.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Detailed vendor primary documentation, no external corroboration
The single source is the vendor's own launch post and it is unusually specific about mechanism: counters increment only on alert log creation, the aws_metadata/resource_arn payload is shown, the sid plus resource_arn lookup is named, and the pass-rule limitation and monitoring prerequisites are stated explicitly. That specificity is verifiable in principle by any AWS customer, which raises evidence quality above marketing-only. It is capped by the absence of any independent test, third-party write-up, or customer report in the cluster.
No usage or deployment evidence beyond the announcement
The cluster contains only a launch announcement. Default-on availability is a distribution statement, not evidence that customers are using hit counts; there are no usage disclosures, customer deployments, telemetry figures, or third-party reports of the feature in production. Rather than infer adoption from availability, this dimension is left unmeasured.
Mildly overstated: 'identify and remove unused rules' outruns a metric with a pass-rule blind spot
The headline benefit framing, that customers can identify and remove unused rules and validate control effectiveness for compliance, is broader than the mechanism supports: any pass rule without the alert keyword shows no hits regardless of traffic, and a firewall without alert logging shows no hits at all despite the feature being on by default. The gap is small and positive rather than large because the same post discloses both constraints in its prerequisites instead of hiding them.
Vendor announcing its own feature, sole voice in the cluster
The only publisher is AWS writing about an AWS service on its own security blog, so the framing of the prior-state problem and the value of the fix both serve the vendor's product narrative, including compliance-driven demand signals such as PCI 4.0 and DORA. Incentive pressure is high but not maximal because the post volunteers limitations and gives customers query paths that do not depend on the vendor's own dashboard.
Mechanism well specified, corroboration and adoption absent
Confidence is moderate: the technical claims are internally consistent and specific, and the operational caveats are derivable directly from the vendor's own statements, so the 'what it does' layer is reliable. It is held down by single-source coverage, no independent verification, and a completely unmeasured adoption picture, so any judgment about real-world impact rests on one interested publisher.
build
S3 annotations move the label without moving the bytes, and checksums cannot see it1 distinct publisher
build
Backblaze B2's $6.95/TB is cheapest under about 7TB. The API gaps decide it sooner.1 distinct publisher
build
Jumio's sub-100ms feature store is mostly a consistency build, not a speed build1 distinct publisher
build
Once the question needs a cube, you own the parser1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
1 article · August 20, 2026