| name | cis-aws-foundations-4.9 |
| description | Ensure that object-level logging for read events is enabled for S3 buckets |
| category | cis-logging |
| version | 7.0.0 |
| author | cyberstrike-official |
| tags | ["cis","aws","logging","s3","object-level","cloudtrail","data-events","read"] |
| cis_id | 4.9 |
| cis_benchmark | CIS AWS Foundations Benchmark v7.0.0 |
| tech_stack | ["aws"] |
| cwe_ids | [] |
| chains_with | ["cis-aws-foundations-4.1","cis-aws-foundations-4.8"] |
| prerequisites | [] |
| severity_boost | {} |
Ensure that object-level logging for read events is enabled for S3 buckets
Description
S3 object-level API operations, such as GetObject, DeleteObject, and PutObject, are referred to as data events. By default, CloudTrail trails do not log data events, so it is recommended to enable object-level logging for S3 buckets.
Rationale
Enabling object-level logging will help you meet data compliance requirements within your organization, perform comprehensive security analyses, monitor specific patterns of user behavior in your AWS account, or take immediate actions on any object-level API activity within your S3 buckets using Amazon CloudWatch Events.
Impact
Enabling logging for these object-level events may significantly increase the number of events logged and may incur additional costs.
Audit Procedure
Using AWS Console
- Login to the AWS Management Console and navigate to the CloudTrail dashboard at
https://console.aws.amazon.com/cloudtrail/.
- In the left panel, click
Trails, and then click the name of the trail that you want to examine.
- Review
General details.
- Confirm that
Multi-region trail is set to Yes.
- Scroll down to
Data events.
- Scroll down to
Data events and confirm the configuration:
- If
advanced event selectors is being used, it should read:
Data Events: S3
Log selector template
Log all events
- If
basic event selectors is being used, it should read:
Data events: S3
Bucket Name: All current and future S3 buckets
Read: Enabled
- Repeat steps 2-5 to verify that each trail has multi-region enabled and is configured to log data events. If a trail does not have multi-region enabled and data event logging configured, refer to the remediation steps.
Using AWS CLI
- Run the
describe-trails command to list all trail names:
aws cloudtrail describe-trails --region <region-name> --output table --query trailList[*].Name
-
The command output will be table of the trail names.
-
For each trail, run the get-trail command to verify it is a multi-regional trail: