No CloudWatch alarm for unauthorized API calls

Severity
Medium
Service
Monitoring and alarms
Check ID
CLOUDWATCH_ALARM_UNAUTHORIZED_API

What this check finds

No CloudWatch Logs metric filter and alarm detect unauthorized API call events (errorCode=*UnauthorizedAccess or AccessDenied). Real-time alerting on these events catches enumeration attempts and access-key misuse. CIS v1.4 §4.1.

Passing looks like: CloudWatch alarm for unauthorized API calls configured.

How to fix it

Create a metric filter on the CloudTrail log group with pattern: {($.errorCode = "*UnauthorizedAccess") || ($.errorCode = "AccessDenied")} then create a CloudWatch alarm on the metric.

Compliance controls it is evidence for

A failing result counts against these controls in KloudLytics; a passing one is evidence towards them. How compliance mapping works

Compliance controls mapped to No CloudWatch alarm for unauthorized API calls
FrameworkControls
CIS AWS Foundations Benchmark v5.0.0
  • 4.1 Ensure unauthorized API calls are monitored
NIST SP 800-53 Rev5 (Moderate)
  • AU-6 Audit Record Review, Analysis, and Reporting
  • SI-4 System Monitoring
NIST Cybersecurity Framework 2.0
  • DE.AE-02 Adverse events are analyzed
  • DE.CM-01 Networks are monitored
ISO/IEC 27001:2022 Annex A
  • A.8.16 Monitoring activities

Checked on every scan

KloudLytics runs this check each time it scans a connected AWS account, through a read-only role, and lists every affected resource with its region. On Pro and Business a fix is written for the specific resource rather than the general case above. The exact access it needs

More Monitoring and alarms checks

All Monitoring and alarms checks

Find out what is actually exposed in your AWS environment.

Connect one AWS account and run your first security assessment.

No credit card · Agentless · Read-only