Class: CloudFormationAuthenticationRule

Inherits:
BaseRule
  • Object
show all
Defined in:
lib/cfn-nag/custom_rules/CloudFormationAuthenticationRule.rb

Instance Method Summary collapse

Methods inherited from BaseRule

#audit

Instance Method Details

#audit_impl(cfn_model) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/cfn-nag/custom_rules/CloudFormationAuthenticationRule.rb', line 17

def audit_impl(cfn_model)
  logical_resource_ids = []
  cfn_model.raw_model['Resources'].each do |resource_name, resource|
    unless resource['Metadata'].nil?
      unless resource['Metadata']['AWS::CloudFormation::Authentication'].nil?

        resource['Metadata']['AWS::CloudFormation::Authentication'].each do |auth_name, auth|
          if potentially_sensitive_credentials? auth
            logical_resource_ids << resource_name
          end
        end

      end
    end
  end
  logical_resource_ids
end

#potentially_sensitive_credentials?(auth) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/cfn-nag/custom_rules/CloudFormationAuthenticationRule.rb', line 35

def potentially_sensitive_credentials?(auth)
  auth['accessKeyId'] || auth['password'] || auth['secretKey']
end

#rule_idObject



13
14
15
# File 'lib/cfn-nag/custom_rules/CloudFormationAuthenticationRule.rb', line 13

def rule_id
  'W1'
end

#rule_textObject



5
6
7
# File 'lib/cfn-nag/custom_rules/CloudFormationAuthenticationRule.rb', line 5

def rule_text
  'Specifying credentials in the template itself is probably not the safest thing'
end

#rule_typeObject



9
10
11
# File 'lib/cfn-nag/custom_rules/CloudFormationAuthenticationRule.rb', line 9

def rule_type
  Violation::WARNING
end