Check ID: cloudwatch_alarm_actions_alarm_state_configured
Provider: AWS
Service: cloudwatch
Severity: HIGH
Categories: resilience
Resource type: AwsCloudWatchAlarm

What this check verifies

Amazon CloudWatch metric alarms are evaluated for actions configured for the ALARM state. The finding flags alarms that have no action to execute when their monitored metric crosses its threshold.

Risk

Without an ALARM action, threshold breaches trigger no notification or automated response. This delays detection and containment, risking:
  • Availability: prolonged outages or missed scale-out
  • Integrity/confidentiality: unchecked anomalies enabling tampering or data loss

Recommendation

Assign at least one ALARM-state action per alarm (e.g., notify via SNS or run automated remediation with Lambda/SSM). Keep actions enabled, apply least privilege to targets, and regularly test. For critical metrics, add redundant paths (EventBridge) for defense in depth.

Remediation

aws cloudwatch put-metric-alarm —alarm-name <alarm-name> —metric-name <metric-name> —namespace <namespace> —statistic <statistic> —period <period-seconds> —evaluation-periods <evaluation-periods> —threshold <threshold> —comparison-operator <comparison-operator> —alarm-actions <action-arn>

References

Where this check fires

This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable by Check ID = cloudwatch_alarm_actions_alarm_state_configured. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks