Class: UserMissingGroupRule

Inherits:
Object
  • Object
show all
Includes:
Rule
Defined in:
lib/custom_rules/user_missing_group.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/user_missing_group.rb', line 6

def audit(cfn_model)
  violation_count = 0

  logical_resource_ids = []
  violating_iam_users = []
  cfn_model.iam_users.each do |iam_user|
    if iam_user.groups.size == 0
      logical_resource_ids << iam_user.logical_resource_id
      violating_iam_users << iam_user
      violation_count += 1
    end
  end

  if violation_count > 0
    message message_type: 'violation',
            message: 'User is not assigned to a group',
            logical_resource_ids: logical_resource_ids
  end
  violation_count
end