Check ID:
Provider: AWS
Service:
Severity: LOW
Categories:
Resource type:
cloudtrail_cloudwatch_logging_enabledProvider: AWS
Service:
cloudtrailSeverity: LOW
Categories:
logging, forensics-readyResource type:
AwsCloudTrailTrailWhat this check verifies
CloudTrail trails are configured to send events to CloudWatch Logs, and show recent delivery within the last24h. Trails without integration or without recent CloudWatch delivery are identified, across single-Region and multi-Region trails.
Risk
Missing or stale CloudWatch delivery weakens visibility and delays detection, impacting confidentiality and integrity. Adversaries can:- Hide privilege escalation
- Perform unauthorized resource changes
- Exfiltrate data via API misuse
Recommendation
Integrate every trail with CloudWatch Logs and maintain continuous, near-real-time delivery. Enforce least privilege on the delivery role, prefer multi-Region coverage, and implement metric filters and alerts for sensitive actions. Centralize retention to support defense in depth.Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws cloudtrail update-trail —name <trail_name> —cloud-watch-logs-log-group-arn <cloudwatch_log_group_arn> —cloud-watch-logs-role-arn <cloudwatch_logs_role_arn>
References
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = cloudtrail_cloudwatch_logging_enabled. 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