Skip to main content
compliance · aws

Config rules that have never evaluated a single resource

resource types
1
rule IDs covered
1
severity
low

What does ZopNight detect here?

A Config rule whose FirstEvaluationStarted flag is still false has evaluated 0 resources since creation, usually because its scope matches nothing in the account. ZopNight surfaces these as compliance findings with no dollar value attached, since AWS bills per evaluation and a rule with zero evaluations has cost almost nothing.

Signal and threshold

How ZopNight evaluates Config rules that have never evaluated a single resource.
Field Value
Rule IDsRC-199
Categorycompliance
Severitylow
Metricnone — pure configuration read
Sourceconfig_rules_unused.go

A rule that never ran is a control that never existed

Config rules are how compliance intent becomes an automated check. One that has never evaluated anything is worse than missing: it appears on the dashboard as a control, someone believes the account is covered, and nothing has ever actually been inspected. The usual cause is a scope filter pointing at a resource type the account simply does not contain: a DynamoDB encryption rule in an account with no tables, or a rule copied from another account’s conformance pack wholesale.

How ZopNight decides

The discoverer joins the rule list with each rule’s evaluation status and stamps evaluations_unused=true when AWS reports FirstEvaluationStarted=false, the service’s own record that the rule has never begun a single evaluation. The recommendation fires only on that confirmed flag. A rule whose status could not be read abstains; an unknown rule is never reported as unused.

Why the finding is deliberately worth nothing

AWS Config’s published rate is $0.001 per rule evaluation. A rule with zero evaluations has therefore accrued roughly zero evaluation spend, and deleting it recovers roughly zero. Framing this as a cost recommendation would mean fabricating a saving or shipping a $0 card into a list sorted by dollars, so it ships as compliance instead, where the payload is the broken control, not the invoice line.

Find yours in one command

Terminal window
aws configservice describe-config-rule-evaluation-status \
--query 'ConfigRulesEvaluationStatus[?FirstEvaluationStarted==`false`].ConfigRuleName' \
--output table

Fix the scope or delete the rule

Two legitimate outcomes exist. If the control matters, fix the reason it never fired: correct the resource-type filter, confirm the target type exists in this account and region, and watch the first evaluation land. If the rule guards a resource type this account will never use, delete it. A permanently-idle rule is dashboard noise that trains people to stop reading the compliance list. What you should not do is leave it as-is, because every quarter it sits there it reinforces a coverage claim that has never been true. Check the rule again a day after any scope change; FirstEvaluationStarted flips permanently once the first evaluation begins.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

417 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

417 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·