Class: SecurityGroupMissingEgressRule

Inherits:
Object
  • Object
show all
Includes:
Rule
Defined in:
lib/custom_rules/security_group_missing_egress.rb

Instance Attribute Summary

Attributes included from Rule

#failure_count, #input_json_path

Instance Method Summary collapse

Methods included from Rule

#assertion, #fatal_assertion, #fatal_violation, #message, #raw_fatal_assertion, #raw_fatal_violation, #resources, #resources_by_type, #violation, #warning

Instance Method Details

#audit(cfn_model) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/custom_rules/security_group_missing_egress.rb', line 6

def audit(cfn_model)
  violation_count = 0

  logical_resource_ids = []
  violating_security_groups = []
  cfn_model.security_groups.each do |security_group|
    if security_group.egress_rules.size == 0
      logical_resource_ids << security_group.logical_resource_id
      violating_security_groups << security_group
      violation_count += 1
    end
  end

  if violation_count > 0
    message message_type: 'violation',
            message: 'Missing egress rule means all traffic is allowed outbound.  Make this explicit if it is desired configuration',
            logical_resource_ids: logical_resource_ids
  end
  violation_count
end