Back to Checks
Elastic Beanstalk environment has enhanced health reporting enabled
elasticbeanstalk_environment_enhanced_health_reporting
Service: elasticbeanstalkSeverity: low
OfficialBuilt-inVerified
Categories:logging
Resource Type:AwsElasticBeanstalkEnvironment
Elastic Beanstalk environments have health reporting set to enhanced instead of basic.
Risk
Without enhanced health, issues are detected late, raising MTTR and enabling service outages. Hidden instance failures or bad deployments can create uneven fleets, degrading availability and potentially integrity (serving stale versions), while error spikes and thrash increase operational cost.
Run this check with Prowler
Run in Prowler CloudRun
prowler aws --checks elasticbeanstalk_environment_enhanced_health_reportingRecommendation
Set health reporting to enhanced for all environments and make it a security baseline. Connect health signals to alerts for rapid response. Apply least privilege to required roles and use defense in depth with auto-healing, alarms, and runbooks to prevent prolonged degradation.
Remediation
CLI
aws elasticbeanstalk update-environment --environment-name <environment-name> --option-settings Namespace=aws:elasticbeanstalk:healthreporting:system,OptionName=SystemType,Value=enhancedTerraform
# Terraform: enable enhanced health reporting for an Elastic Beanstalk environment
resource "aws_elastic_beanstalk_environment" "<example_resource_name>" {
name = "<example_resource_name>"
application = "<example_resource_name>"
solution_stack_name = "<example_solution_stack>"
setting {
namespace = "aws:elasticbeanstalk:healthreporting:system"
name = "SystemType" # Critical: selects the enhanced health reporting system
value = "enhanced" # Critical: sets health reporting to enhanced
}
}NativeIaC
# CloudFormation: enable enhanced health reporting for an Elastic Beanstalk environment
Resources:
<example_resource_name>:
Type: AWS::ElasticBeanstalk::Environment
Properties:
ApplicationName: <example_resource_name>
EnvironmentName: <example_resource_name>
SolutionStackName: <example_solution_stack>
OptionSettings:
- Namespace: aws:elasticbeanstalk:healthreporting:system
OptionName: SystemType # Critical: selects the enhanced health reporting system
Value: enhanced # Critical: sets health reporting to enhancedOther
1Open the AWS Elastic Beanstalk console and select your Region
2Go to Environments and choose your environment
3Select Configuration > Monitoring > Edit
4Under Health reporting, set System to Enhanced
5Click Apply to save the change
Check Code
from prowler.lib.check.models import Check, Check_Report_AWS
from prowler.providers.aws.services.elasticbeanstalk.elasticbeanstalk_client import (
elasticbeanstalk_client,
)
class elasticbeanstalk_environment_enhanced_health_reporting(Check):
def execute(self):
findings = []
for environment in elasticbeanstalk_client.environments.values():
report = Check_Report_AWS(metadata=self.metadata(), resource=environment)
report.status = "PASS"
report.status_extended = f"Elastic Beanstalk environment {environment.name} has enhanced health reporting enabled."
if environment.health_reporting != "enhanced":
report.status = "FAIL"
report.status_extended = f"Elastic Beanstalk environment {environment.name} does not have enhanced health reporting enabled."
findings.append(report)
return findings