Class: IamRoleElevatedManagedPolicyRule

Inherits:
BaseRule show all
Defined in:
lib/cfn-nag/custom_rules/IamRoleElevatedManagedPolicyRule.rb

Instance Method Summary collapse

Methods inherited from BaseRule

#audit

Instance Method Details

#audit_impl(cfn_model) ⇒ Object


26
27
28
29
30
31
# File 'lib/cfn-nag/custom_rules/IamRoleElevatedManagedPolicyRule.rb', line 26

def audit_impl(cfn_model)
  violating_roles = cfn_model.resources_by_type('AWS::IAM::Role').select do |role|
    includes_elevated_policy(role)
  end
  violating_roles.map(&:logical_resource_id)
end

#includes_elevated_policy(role) ⇒ Object


19
20
21
22
23
24
# File 'lib/cfn-nag/custom_rules/IamRoleElevatedManagedPolicyRule.rb', line 19

def includes_elevated_policy(role)
  role.managedPolicyArns.find do |policy|
    policy.include?('arn:aws:iam::aws:policy/PowerUserAccess') ||
      policy.include?('arn:aws:iam::aws:policy/IAMFullAccess')
  end
end

#rule_idObject


15
16
17
# File 'lib/cfn-nag/custom_rules/IamRoleElevatedManagedPolicyRule.rb', line 15

def rule_id
  'W44'
end

#rule_textObject


7
8
9
# File 'lib/cfn-nag/custom_rules/IamRoleElevatedManagedPolicyRule.rb', line 7

def rule_text
  'IAM role should not have Elevated Managed policy'
end

#rule_typeObject


11
12
13
# File 'lib/cfn-nag/custom_rules/IamRoleElevatedManagedPolicyRule.rb', line 11

def rule_type
  Violation::WARNING
end