All checks
High RedshiftServerless · regional

Redshift Serverless workgroups should prohibit public access

Flags Amazon Redshift Serverless workgroups whose publiclyAccessible setting is true. Public workgroups receive a public IP address and are reachable from the internet, expanding the attack surface for credential and SQL-injection attacks.

service
RedshiftServerless
severity
High
scope
evaluated in every region

How to fix it

Have publiclyAccessible set to false on the Redshift Serverless workgroup the finding names by ARN, so it is reachable only from inside the VPC. Public access is what gave the workgroup its elastic IP address, so turning it off withdraws that address: every client connecting over it stops reaching the workgroup unless it can arrive inside the VPC instead, through a VPN, Direct Connect, VPC peering or a Redshift-managed VPC endpoint. Check what connects from outside the VPC before making the change. UpdateWorkgroup accepts one parameter per request, so this goes in a call of its own rather than alongside a capacity or subnet change. A workgroup whose collected configuration carries no publiclyAccessible field is treated as public and fails, because GetWorkgroup always returns that field and its absence means the reading is wrong; a workgroup that could not be read at all keeps whatever verdict the last successful scan recorded, rather than flipping on a permissions problem with the scanning role.

In the console

Redshift Serverless → Workgroup configuration → the workgroup → Data access → Network and security → Edit → Publicly accessible

With the AWS CLI

aws redshift-serverless update-workgroup --workgroup-name <workgroup-name> --no-publicly-accessible --region <region>

With Terraform

resource "aws_redshiftserverless_workgroup" "this" {
  namespace_name      = var.namespace_name
  workgroup_name      = var.workgroup_name
  publicly_accessible = false
}

See which of your accounts this check is failing on.

Book a demo