CloudTrail is not logging S3 data events
- Severity
- Medium
- Service
- CloudTrail
- Check ID
- CLOUDTRAIL_S3_DATA_EVENTS_DISABLED
What this check finds
Management events (API calls) are logged by default. S3 data events (GetObject, PutObject, DeleteObject) are not. Without them, data exfiltration from S3 and ransomware deletion attacks are invisible in the audit trail.
Passing looks like: CloudTrail logs S3 data events.
How to fix it
Add a data events selector to a CloudTrail trail that covers S3.
AWS CLI
aws cloudtrail put-event-selectors --trail-name TRAIL_NAME --event-selectors '[{"ReadWriteType":"All","DataResources":[{"Type":"AWS::S3::Object","Values":["arn:aws:s3"]}]}]'
Names in capitals are placeholders for your own resource. Review a command before you run it.
AWS console
CloudTrail → Trails → select trail → Edit → Data events → S3 → Log all S3 buckets.
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 |
|
| PCI-DSS v4.0.1 |
|
| HIPAA Security Rule |
|
| SOC 2 — Trust Services Criteria |
|
| 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 CloudTrail checks
- CriticalS3 bucket used for CloudTrail logs is publicly accessible
- HighCloudTrail trail does not log all management events (Read + Write)
- MediumCloudTrail logs are not encrypted with KMS
- MediumCloudTrail logs are not integrated with CloudWatch Logs
- LowCloudTrail Insights is not enabled on the trail
- LowCloudTrail is not enabled
- LowCloudTrail log file validation is not enabled
- LowCloudTrail S3 bucket does not have server-access logging enabled