in scripts/security_group_is_secure.py [0:0]
def evaluate_compliance(configuration_item, rule_parameters):
undesired_port = int(rule_parameters['UndesiredPort'])
configuration = configuration_item['configuration']
for ip_permissions in configuration['ipPermissions']:
if 'fromPort' not in ip_permissions and 'toPort' not in ip_permissions:
return {
'compliance_type': 'NON_COMPLIANT',
'annotation': 'Security Group is open to all traffic so port %s is not blocked' % str(undesired_port)
}
if ip_permissions['fromPort'] <= undesired_port <= ip_permissions['toPort']:
return {
'compliance_type': 'NON_COMPLIANT',
'annotation': 'Security Group port %s is not blocked' % str(undesired_port)
}
return {
'compliance_type': 'COMPLIANT',
'annotation': 'Port %s not open for ingress' % str(undesired_port)
}