Skip to main content
emnode / learn
Compliance Critical severity

AWS Security Hub · Redshift

Redshift.1: A Redshift cluster is publicly accessible

Written and reviewed by Emnode · Last reviewed

What does AWS Security Hub Redshift.1 check?

Redshift.1 evaluates the PubliclyAccessible attribute on every Redshift cluster and fails any cluster where it is set to true. A public cluster gets an internet-routable endpoint; the control is change-triggered, so it re-evaluates the moment a cluster is created or modified.

Why does Redshift.1 matter?

A Redshift warehouse is where an organisation's most concentrated data lands — consolidated customer records, financials, joined-up analytics. Making it publicly reachable removes network isolation, the single biggest barrier, leaving only the database credential between an attacker and the whole dataset. Public endpoints are found by credential-stuffing bots and scanners within hours of exposure.

How do I fix Redshift.1?

  1. Set PubliclyAccessible to false with modify-cluster, or recreate the cluster as private.
  2. Place the cluster in private subnets and reach it through a VPN, Direct Connect, or bastion.
  3. Restrict the cluster's security group to known internal CIDRs and application sources.
  4. Add a Config rule or SCP so no future cluster can be launched publicly.

Remediation script · bash

# Close the highest-impact public exposure first: databases.
for db in $(aws rds describe-db-instances \
    --query 'DBInstances[?PubliclyAccessible==`true`].DBInstanceIdentifier' --output text); do
  aws rds modify-db-instance --db-instance-identifier "$db" \
    --no-publicly-accessible --apply-immediately
  echo "$db: public access removed"
done

# Ratchet S3 shut at the account level so no bucket can be made public again.
aws s3control put-public-access-block --account-id 123456789012 \
  --public-access-block-configuration \
    'BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true'

Full walkthrough (console steps, edge cases and verification) in the lesson Block public access to AWS resources.

Is Redshift.1 a false positive?

Genuine need for a public Redshift endpoint is rare. If a BI tool or partner needs access, front it with a private connection or a proxy rather than flipping the cluster public.

Part of the learning path Trim your network spend
  • Redshift.2 Connections to Redshift should be encrypted in transit
  • Redshift.3 Redshift clusters should have automatic snapshots
  • Redshift.4 Redshift clusters should have audit logging
  • Redshift.6 Redshift should auto-upgrade major versions
  • Redshift.7 Redshift clusters should use enhanced VPC routing
  • Redshift.8 Redshift should not use the default admin username
  • Redshift.10 Redshift clusters should be encrypted at rest
  • Redshift.15 Redshift accepts cluster-port traffic from anywhere
  • Redshift.16 Redshift subnet groups should span multiple AZs
  • Redshift.18 Redshift clusters should have Multi-AZ enabled