Check ID:
Provider: AWS
Service:
Severity: LOW
Categories:
Resource type:
cloudtrail_s3_dataevents_read_enabledProvider: AWS
Service:
cloudtrailSeverity: LOW
Categories:
logging, forensics-readyResource type:
AwsCloudTrailTrailWhat this check verifies
CloudTrail trails log S3 object-level read data events for all buckets, capturing object access (for exampleGetObject) via selectors targeting AWS::S3::Object
Risk
Without object-level read logging, S3 access is opaque. Attackers or insiders can exfiltrate data viaGetObject without audit trails, eroding confidentiality and hindering forensics, anomaly detection, and incident response.
Recommendation
Enable CloudTrail data events for S3 objects withReadOnly (or All) across all current and future buckets. Use a multi-Region trail, centralize logs in an encrypted bucket with lifecycle retention, and integrate monitoring/alerts to support defense in depth and accountable access.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
References
- https://awswala.medium.com/enable-cloudtrail-data-events-logging-for-objects-in-an-s3-bucket-33cade51ae2b
- https://docs.aws.amazon.com/securityhub/latest/userguide/s3-controls.html#s3-23
- https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-cloudtrail-logging-for-s3.html
- https://www.plerion.com/cloud-knowledge-base/ensure-object-level-logging-for-read-events-enabled-for-s3-bucket
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_s3_dataevents_read_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