Back to Checks
E2E Networks ALB load balancers have backend health checks enabled
loadbalancer_backend_health_check_enabled
Service: loadbalancerSeverity: medium
OfficialBuilt-inVerified
Categories:resilience
Resource Type:NotDefined
E2E Networks application load balancers should have HTTP health checks configured for their backends so traffic is only routed to healthy nodes.
Risk
Load balancers without backend health checks may route traffic to failed or unhealthy nodes, causing outages and masking active compromise on degraded backends.
Run this check with Prowler
Run in Prowler CloudRun
prowler e2enetworks --checks loadbalancer_backend_health_check_enabledRecommendation
Configure HTTP health checks for ALB backends so unhealthy nodes are automatically removed from rotation.
Check Code
from prowler.lib.check.models import Check, CheckReportE2eNetworks
from prowler.providers.e2enetworks.services.loadbalancer.loadbalancer_client import (
loadbalancer_client,
)
class loadbalancer_backend_health_check_enabled(Check):
"""Check that ALB load balancers have backend health checks configured."""
def execute(self) -> list[CheckReportE2eNetworks]:
findings = []
for lb in loadbalancer_client.load_balancers:
if not lb.is_alb:
continue
report = CheckReportE2eNetworks(metadata=self.metadata(), resource=lb)
report.status = "PASS"
report.status_extended = (
f"Load balancer {lb.name} has backend health checks configured."
)
if not lb.has_backend_health_check:
report.status = "FAIL"
report.status_extended = f"Load balancer {lb.name} does not have backend health checks configured."
findings.append(report)
return findings