Amazon Redshift clusters should have audit logging enabled
Checks that Redshift clusters have audit logging turned on, to CloudWatch Logs or Amazon S3, so connection attempts and changes to database users are recorded outside the database for security audits and investigations. It reads only whether logging is on, not which logs are exported.
- service
- Redshift
- severity
- Medium
- scope
- evaluated in every region
How to fix it
- Interrupts service: The user activity log stays empty until enable_user_activity_logging is set and the cluster reboots, so schedule that reboot for a quiet period.
In the console
Redshift → Clusters → the cluster → Properties → Database configurations → Edit → Edit audit logging
- Edit audit logging
- Turn on, with CloudWatch (AWS's recommendation) or S3 bucket as the destination; either passes
- Logs to export
- Connection log and user log at least, which record sign-ins and changes to database users
- enable_user_activity_logging
- true in a custom parameter group, only if you also export the user activity log
With the AWS CLI
aws redshift enable-logging --cluster-identifier <cluster-id> --log-destination-type cloudwatch --log-exports connectionlog userlog useractivitylog --region <region>With Terraform
resource "aws_redshift_logging" "this" {
cluster_identifier = var.cluster_identifier
log_destination_type = "cloudwatch"
log_exports = ["connectionlog", "userlog", "useractivitylog"]
}
See which of your accounts this check is failing on.
Book a live scan