Information
Server access logging generates a log that contains access records for each request made to your S3 bucket. An access log record contains details about the request, such as the request type, the resources specified in the request worked, and the time and date the request was processed. It is recommended that server access logging be enabled on the CloudTrail S3 bucket.
By enabling server access logging on target S3 buckets, it is possible to capture all events that may affect objects within any target bucket. Configuring the logs to be placed in a separate bucket allows access to log information that can be useful in security and incident response workflows. In some environments (e.g., AWS Control Tower), logs may be delivered to the same bucket with appropriate prefixes, which is also an acceptable configuration.
NOTE: Nessus has provided the target output to assist in reviewing the benchmark to ensure target compliance.
Solution
Perform the following to enable server access logging:
From Console:
- Sign in to the AWS Management Console and open the S3 console at https://console.aws.amazon.com/s3.
- Under All Buckets click on the target S3 bucket.
- Click on Properties in the top right of the console.
- Under Server access logging, click Edit.
- Configure bucket logging:
- Check the Enabled box.
- Select a Target Bucket from the list.
- Enter a Target Prefix.
- Click Save.
From Command Line:
- Get the name of the S3 bucket that CloudTrail is logging to:
aws cloudtrail describe-trails --region <region-name> --query trailList[*].S3BucketName
- Create a logging configuration file and populate the following values:
{
"LoggingEnabled": {
"TargetBucket": "<TargetBucket>",
"TargetPrefix": "<TargetPrefix>",
"TargetGrants": [
{
"Grantee": {
"Type": "AmazonCustomerByEmail",
"EmailAddress": ""
},
"Permission": "FULL_CONTROL"
}
]
}
}
- Save the file as <file>.json
- Apply the logging configuration:
aws s3api put-bucket-logging --bucket <bucket-name> --bucket-logging-status file://<file>.json