diff --git a/services/asg.py b/services/asg.py index 987cfbc..7177c14 100644 --- a/services/asg.py +++ b/services/asg.py @@ -2,16 +2,40 @@ from models import RuleCheckResult import boto3 -# client = boto3.client("") +client = boto3.client("autoscaling") def autoscaling_group_elb_healthcheck_required(): + compliant_resources = [] + non_compliant_resources = [] + asgs = client.describe_auto_scaling_groups()["AutoScalingGroups"] + + for asg in asgs: + if asg.get("HealthCheckType", {}) == "ELB": + compliant_resources.append(asg["AutoScalingGroupARN"]) + else: + non_compliant_resources.append(asg["AutoScalingGroupARN"]) + return RuleCheckResult( - passed=False, compliant_resources=[], non_compliant_resources=[] + passed=not non_compliant_resources, + compliant_resources=compliant_resources, + non_compliant_resources=non_compliant_resources, ) def autoscaling_multiple_az(): + compliant_resources = [] + non_compliant_resources = [] + asgs = client.describe_auto_scaling_groups()["AutoScalingGroups"] + + for asg in asgs: + if len(asg.get("AvailabilityZones", 0)) > 1: + compliant_resources.append(asg["AutoScalingGroupARN"]) + else: + non_compliant_resources.append(asg["AutoScalingGroupARN"]) + return RuleCheckResult( - passed=False, compliant_resources=[], non_compliant_resources=[] + passed=not non_compliant_resources, + compliant_resources=compliant_resources, + non_compliant_resources=non_compliant_resources, )