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
| Framework | Controls |
|---|---|
| CIS AWS Foundations Benchmark v5.0.0 |
|
| NIST SP 800-53 Rev5 (Moderate) |
|
| NIST Cybersecurity Framework 2.0 |
|
| ISO/IEC 27001:2022 Annex A |
|
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
- HighNo CloudWatch alarm for CloudTrail configuration changes
- HighNo CloudWatch alarm for console sign-in without MFA
- HighNo CloudWatch alarm for KMS CMK disable or scheduled deletion
- HighNo CloudWatch alarm for root account usage
- MediumNo CloudWatch alarm for AWS Config configuration changes
- MediumNo CloudWatch alarm for AWS Management Console authentication failures
- MediumNo CloudWatch alarm for IAM policy changes
- MediumNo CloudWatch alarm for Network ACL changes