Back to Checks
Redshift cluster has Enhanced VPC Routing enabled
redshift_cluster_enhanced_vpc_routing
Service: redshiftSeverity: medium
OfficialBuilt-inVerified
Categories:trust-boundariesinternet-exposed
Resource Type:AwsRedshiftCluster
Amazon Redshift clusters are assessed for the EnhancedVpcRouting setting, which routes all COPY and UNLOAD traffic between the cluster and data repositories through the VPC, enabling use of VPC security controls and logging.
Risk
Without enhanced VPC routing, COPY/UNLOAD transfers can leave VPC oversight, reducing control and visibility.
- VPC egress filtering and endpoint policies can be bypassed (confidentiality)
- Limited flow-log telemetry (visibility)
- Higher risk of unauthorized exfiltration or tampering (confidentiality, integrity)
Run this check with Prowler
Run in Prowler CloudRun
prowler aws --checks redshift_cluster_enhanced_vpc_routingRecommendation
Enable EnhancedVpcRouting and enforce least privilege egress:
- Prefer private access with VPC endpoints and restrictive policies
- Constrain outbound paths via security groups, NACLs, and routing
- Monitor transfers with VPC Flow Logs
This strengthens defense in depth and zero trust for data movement.
Remediation
CLI
aws redshift modify-cluster --cluster-identifier <cluster-id> --enhanced-vpc-routingTerraform
# Terraform: Enable Enhanced VPC Routing on a Redshift cluster
resource "aws_redshift_cluster" "<example_resource_name>" {
cluster_identifier = "<example_resource_name>"
cluster_type = "single-node"
node_type = "ra3.xlplus"
master_username = "<USERNAME>"
master_password = "<PASSWORD>"
enhanced_vpc_routing = true # Critical: routes COPY/UNLOAD via VPC
}NativeIaC
# CloudFormation: Enable Enhanced VPC Routing on a Redshift cluster
Resources:
<example_resource_name>:
Type: AWS::Redshift::Cluster
Properties:
ClusterIdentifier: <example_resource_name>
ClusterType: single-node
NodeType: ra3.xlplus
DBName: dev
MasterUsername: <USERNAME>
MasterUserPassword: <PASSWORD>
EnhancedVpcRouting: true # Critical: forces COPY/UNLOAD traffic through the VPCOther
1Open the AWS Console and go to Amazon Redshift
2Choose Provisioned clusters, select your cluster
3Click Actions > Modify
4In Network and security, turn on Enhanced VPC routing
5Click Save changes (apply immediately if prompted)
Check Code
from prowler.lib.check.models import Check, Check_Report_AWS
from prowler.providers.aws.services.redshift.redshift_client import redshift_client
class redshift_cluster_enhanced_vpc_routing(Check):
def execute(self):
findings = []
for cluster in redshift_client.clusters:
report = Check_Report_AWS(metadata=self.metadata(), resource=cluster)
report.status = "FAIL"
report.status_extended = f"Redshift Cluster {cluster.id} does not have Enhanced VPC Routing security feature enabled."
if cluster.enhanced_vpc_routing:
report.status = "PASS"
report.status_extended = f"Redshift Cluster {cluster.id} has Enhanced VPC Routing security feature enabled."
findings.append(report)
return findings