CIS AWS Foundations v1.2 3.9: Ensure a log metric filter and alarm exist for AWS Config configuration changes
To meet cis aws foundations v1.2 3.9: ensure a log metric filter and alarm exist for aws config configuration changes requirement, you must detect AWS Config configuration-change events in CloudTrail logs using a CloudWatch Logs metric filter, then trigger an alarm (and notification path) so security operators know quickly when Config is altered. This aligns to the AWS Security Hub CIS mapping for this control. (AWS Security Hub CIS AWS Foundations mapping table)
Key takeaways:
- Create a CloudWatch Logs metric filter on the CloudTrail log group for AWS Config change events. (AWS Security Hub CIS AWS Foundations mapping table)
- Create a CloudWatch alarm on that metric, routed to an owned response channel (SNS, ticketing, or SIEM). (AWS Security Hub CIS AWS Foundations mapping table)
- Retain evidence that the filter, alarm, and notification routing are deployed across in-scope accounts and monitored over time. (CIS AWS Foundations Benchmark)
This control is about detectability and response: AWS Config is a foundational control-plane service for recording resource configuration, evaluating drift, and supporting audit narratives. If AWS Config is disabled, its recorder is modified, delivery channels are changed, or rules are altered, you can lose the very telemetry and guardrails you rely on for security assurance.
CIS AWS Foundations v1.2 3.9 requires you to set up log-based detection for those changes and pair it with an alarm so the change does not sit unnoticed. The implementation is straightforward, but audits often fail on gaps in scope (not all accounts/regions), missing ownership of notifications, or weak evidence (screenshots without identifiers, no proof alarms fire, or no proof CloudTrail is feeding the log group).
This page translates the requirement into an operator-ready build checklist: what it applies to, what to implement, how to validate it works, and what evidence to retain to satisfy internal audit, external assessors, and cloud security reviews. Source mapping is provided through the CIS benchmark and AWS Security Hub’s CIS control mapping. (CIS AWS Foundations Benchmark; AWS Security Hub CIS AWS Foundations mapping table)
Regulatory text
Excerpt (provided): “Implement CIS AWS Foundations Benchmark v1.2 requirement 3.9 as mapped in AWS Security Hub.” (CIS AWS Foundations Benchmark; AWS Security Hub CIS AWS Foundations mapping table)
Operator meaning: implement the CIS v1.2 control that ensures a CloudWatch Logs metric filter and an alarm exist to detect AWS Config configuration changes captured in CloudTrail logs, as reflected in AWS Security Hub’s CIS mapping. (AWS Security Hub CIS AWS Foundations mapping table)
Plain-English interpretation (what the requirement is really asking)
You need an automated alert when someone changes AWS Config settings. That includes actions like stopping the configuration recorder, deleting or changing delivery channels, or altering Config rules in ways that reduce monitoring coverage.
The simplest pattern CIS expects:
- CloudTrail logs are delivered into a CloudWatch Logs log group.
- A CloudWatch Logs metric filter matches AWS Config change events in those logs.
- A CloudWatch alarm fires on that metric and notifies an owned channel. (CIS AWS Foundations Benchmark; AWS Security Hub CIS AWS Foundations mapping table)
Who it applies to (entity and operational context)
Applies to:
- Any organization operating workloads in AWS accounts where AWS Config is enabled or expected to be enabled as part of the security baseline. (CIS AWS Foundations Benchmark)
Operational context:
- Multi-account AWS Organizations environments (central security account plus workload accounts).
- Teams using AWS Security Hub to track CIS AWS Foundations findings, especially where this control maps to the relevant Security Hub check. (AWS Security Hub CIS AWS Foundations mapping table)
- Regulated environments where configuration evidence and change detection are part of audit readiness (for example, SOC 2 narratives, ISO 27001 control operation evidence, internal controls programs). This page does not add new regulatory requirements; it operationalizes the CIS requirement. (CIS AWS Foundations Benchmark)
Ownership to assign:
- Cloud platform team (build/rollout via IaC).
- SecOps (alarm routing, triage runbook).
- GRC (evidence collection, control description, periodic verification).
What you actually need to do (step-by-step)
Step 1: Confirm prerequisites (don’t skip this)
This control depends on CloudTrail logs being present in CloudWatch Logs.
- Confirm an Organization trail (preferred) or account trails exist and capture management events.
- Confirm CloudTrail is configured to deliver to a CloudWatch Logs log group in each in-scope account, or centrally with cross-account log aggregation.
- Identify the log group name(s) that contain CloudTrail events you will filter.
Audit note: A metric filter that points at an empty/nonexistent log group will “exist” but won’t detect anything. Your validation steps must show real ingestion.
Step 2: Define the detection scope for “AWS Config configuration changes”
CIS intent is alerting on changes to AWS Config itself. In CloudTrail, these appear as events from config.amazonaws.com (the event source) with action names that modify recorders, delivery channels, rules, or related Config settings.
Your filter should match AWS Config change events. Common event names to include in your matching logic:
StopConfigurationRecorder,StartConfigurationRecorderPutConfigurationRecorder,DeleteConfigurationRecorderPutDeliveryChannel,DeleteDeliveryChannelPutConfigRule,DeleteConfigRulePutConfigurationAggregator,DeleteConfigurationAggregator
You do not need to capture read-only actions. Focus on write/modify/delete actions that change the service’s behavior.
Step 3: Create the CloudWatch Logs metric filter
Create a metric filter on the CloudTrail log group to match the AWS Config change events you defined.
Implementation guidance (operator-grade):
- Use a single metric filter that matches the set of event names above, or separate filters if your operations team prefers per-action granularity.
- Set the metric namespace and name with a stable convention (example:
SecurityBaseline/AWSConfigandConfigConfigurationChanges). - Use a metric value of
1so each matching log event increments the metric.
Controls to apply:
- Manage the filter via infrastructure-as-code (CloudFormation/Terraform) for repeatability across accounts.
- Tag the metric filter resources where tags are supported, and document ownership in a control register so alerts have a clear responder.
This “filter + metric” is the “detection sensor” CIS expects. (CIS AWS Foundations Benchmark; AWS Security Hub CIS AWS Foundations mapping table)
Step 4: Create a CloudWatch alarm on the metric
Create an alarm that triggers when the metric indicates AWS Config has been changed.
Operational settings to decide:
- Threshold: common pattern is “>= 1” within your chosen evaluation window, because any change to Config is worth reviewing.
- Alarm actions: route to SNS at minimum; from SNS you can integrate to email, chat, paging, ticketing, or a SIEM/SOAR pipeline.
- Treat missing data: decide whether “missing” should be “not breaching” (typical) to prevent noisy alarms if logs stop briefly; pair that with separate monitoring for log ingestion health.
Ownership requirement: The notification target must be owned, monitored, and tested. Auditors often ask, “Who receives this, and what do they do next?”
This “metric + alarm + notification” is the “response trigger” CIS expects. (AWS Security Hub CIS AWS Foundations mapping table)
Step 5: Build the triage runbook (minimal but real)
Write a short runbook that answers:
- What constitutes an expected change (approved change window, change ticket reference)?
- What constitutes suspicious change (unplanned stop of recorder, deletion of delivery channel, changes by unusual principal)?
- Immediate checks: who made the change (CloudTrail principal), from where, and whether AWS Config is still running and delivering.
- Containment: revert recorder/channel changes, restrict IAM if needed, and open an incident if unauthorized.
GRC should store the runbook with the control evidence and link it to incident response procedures.
Step 6: Validate end-to-end (prove it works)
Validation should include:
- Generate a safe test event in a non-production account (or during a change window): e.g., update a Config rule description or create a benign rule, then revert if needed.
- Confirm the CloudTrail event appears in the target log group.
- Confirm the metric increments.
- Confirm the alarm state changes and notification is received in the target channel.
- Capture evidence artifacts (see below).
Step 7: Roll out across accounts and regions (control completeness)
CIS-aligned implementation should cover all in-scope accounts where AWS Config could be changed. In practice:
- Use AWS Organizations deployment (StackSets, Terraform pipelines) to standardize.
- Confirm coverage in regions where you run workloads and where AWS Config is enabled.
- Keep a simple inventory: account, region, log group, metric filter name, alarm name, notification target.
Security Hub can help you track drift against the CIS mapping and flag missing controls at scale. (AWS Security Hub CIS AWS Foundations mapping table)
Required evidence and artifacts to retain
Keep evidence that demonstrates design, deployment, and operation:
Design evidence
- Control narrative: purpose, scope, roles, and how alerting works (1–2 pages).
- Runbook with triage steps and escalation path.
Deployment evidence
- IaC templates or modules (preferred) showing:
- CloudWatch Logs metric filter definition (pattern, metric namespace/name).
- CloudWatch alarm definition (threshold, period, actions).
- If not using IaC, export the JSON/YAML or configuration snapshots from AWS.
Operational evidence
- Screenshot or export showing metric filter exists on the correct log group (include account ID/region context).
- Screenshot or export showing the alarm configuration and SNS topic.
- A test record (ticket/Change ID) showing an alert was received and acknowledged.
- A periodic verification record (for example, a monthly control check log) showing the alarm still exists and is enabled.
GRC tip: Avoid “orphan evidence.” Each artifact should identify the account, region, resource names, and the date captured.
Common exam/audit questions and hangups
-
“How do you know it alerts on AWS Config changes specifically?”
Expect to show the metric filter pattern, plus a sample CloudTrail event that matches it. -
“Is this deployed everywhere?”
Auditors will sample accounts. Bring an account/region coverage matrix and Security Hub control status exports. (AWS Security Hub CIS AWS Foundations mapping table) -
“Who receives the alert and what happens next?”
They will look for ownership (on-call/team queue) and a runbook with real steps. -
“How do you prevent alert fatigue?”
Explain expected-change handling: change tickets, maintenance windows, and correlation with IAM change approvals.
Frequent implementation mistakes (and how to avoid them)
| Mistake | Why it fails | How to avoid |
|---|---|---|
| Metric filter points to the wrong log group | No events match, so no alerts | Standardize CloudTrail log group naming and reference it via IaC variables |
| Filter pattern matches only one event name | You miss other Config changes | Match the full set of write actions that change recorders, channels, and rules |
| Alarm exists but has no action | It “passes” a checkbox but nobody knows | Require an SNS action and validate notification delivery |
| Single-account deployment | Gaps in multi-account estates | Deploy via Organizations tooling and keep a coverage inventory |
| No proof of operation | Audits fail on operating effectiveness | Run a test and retain evidence of the alert lifecycle |
Enforcement context and risk implications
No public enforcement cases were provided in the supplied source catalog for this specific CIS AWS Foundations control, so this page does not cite enforcement outcomes.
Risk still matters operationally: if AWS Config is changed without detection, you can lose configuration history and compliance signals used for investigations, audit support, and drift monitoring. This control reduces the time between a control-plane change and your awareness of it. (CIS AWS Foundations Benchmark)
A practical 30/60/90-day execution plan
First 30 days (baseline implementation)
- Confirm CloudTrail to CloudWatch Logs is in place for in-scope accounts.
- Implement the metric filter and alarm in a pilot account.
- Route notifications to an owned SNS topic and downstream channel.
- Write the runbook and assign alert ownership.
By 60 days (scale and standardize)
- Roll out via IaC across accounts and relevant regions.
- Add naming standards and tagging/ownership conventions.
- Build a lightweight evidence pack template: screenshots/exports, IaC links, and a validation record.
By 90 days (operational maturity)
- Add periodic verification (scheduled control check, Security Hub review, or automated config compliance check).
- Test alerting as part of change management for AWS Config-related changes.
- Tune patterns and routing (reduce noise, ensure after-hours coverage, integrate with SIEM if applicable). (AWS Security Hub CIS AWS Foundations mapping table)
Where Daydream fits: Daydream helps you turn this requirement into a repeatable control by tracking the required evidence set (filter, alarm, test records, and periodic verification) and keeping it audit-ready without rebuilding the same packet each review cycle.
Frequently Asked Questions
Do I need AWS Security Hub enabled to satisfy CIS AWS Foundations v1.2 3.9?
No. Security Hub is an implementation mapping and monitoring layer, not the requirement itself. It helps you track whether the metric filter and alarm are present through the mapped control. (AWS Security Hub CIS AWS Foundations mapping table)
What if we centralize CloudTrail logs in a single security account?
Centralization can work if the metric filter and alarm run where the CloudTrail logs land, and they still detect changes across member accounts. Document the architecture and show that Config change events from member accounts appear in the centralized log group.
Should the alarm page someone after hours?
Decide based on your risk model and change practices. At minimum, route to a monitored queue with clear escalation rules for unauthorized or high-risk Config changes.
Which AWS Config events should the filter match?
Match write actions that modify recorders, delivery channels, aggregators, and rules. Keep the list in your control narrative and update it when AWS adds relevant APIs. (CIS AWS Foundations Benchmark)
How do we prove operating effectiveness to an auditor?
Keep a test record that shows a Config change produced a CloudTrail event, incremented the metric, and triggered the alarm notification. Pair it with a runbook and an acknowledgment/ticket trail.
What’s the cleanest way to deploy this across many accounts?
Use IaC plus an AWS Organizations rollout method (for example, StackSets or a CI/CD pipeline). Then track coverage with Security Hub’s CIS mapping status and an internal inventory. (AWS Security Hub CIS AWS Foundations mapping table)
Frequently Asked Questions
Do I need AWS Security Hub enabled to satisfy CIS AWS Foundations v1.2 3.9?
No. Security Hub is an implementation mapping and monitoring layer, not the requirement itself. It helps you track whether the metric filter and alarm are present through the mapped control. (AWS Security Hub CIS AWS Foundations mapping table)
What if we centralize CloudTrail logs in a single security account?
Centralization can work if the metric filter and alarm run where the CloudTrail logs land, and they still detect changes across member accounts. Document the architecture and show that Config change events from member accounts appear in the centralized log group.
Should the alarm page someone after hours?
Decide based on your risk model and change practices. At minimum, route to a monitored queue with clear escalation rules for unauthorized or high-risk Config changes.
Which AWS Config events should the filter match?
Match write actions that modify recorders, delivery channels, aggregators, and rules. Keep the list in your control narrative and update it when AWS adds relevant APIs. (CIS AWS Foundations Benchmark)
How do we prove operating effectiveness to an auditor?
Keep a test record that shows a Config change produced a CloudTrail event, incremented the metric, and triggered the alarm notification. Pair it with a runbook and an acknowledgment/ticket trail.
What’s the cleanest way to deploy this across many accounts?
Use IaC plus an AWS Organizations rollout method (for example, StackSets or a CI/CD pipeline). Then track coverage with Security Hub’s CIS mapping status and an internal inventory. (AWS Security Hub CIS AWS Foundations mapping table)
Operationalize this requirement
Map requirement text to controls, owners, evidence, and review workflows inside Daydream.
See Daydream