class ResourceWithExplicitNameRule

Constants

RESOURCE_NAME_MAPPING

The values of this hash are camel-cased, due to cfn-model returning camel cased values. E.g. GroupName in CloudFormation is returned by cfn-model as groupName, RoleName is returned as roleName, etc.

Public Instance Methods

audit_impl(cfn_model) click to toggle source
# File lib/cfn-nag/custom_rules/ResourceWithExplicitNameRule.rb, line 40
def audit_impl(cfn_model)
  violating_resources = []

  RESOURCE_NAME_MAPPING.each do |cfn_resource, key_name|
    resources = cfn_model.resources_by_type(cfn_resource)
                         .select do |resource|
      explicitly_set_resource_name?(resource, key_name)
    end

    violating_resources << resources.map(&:logical_resource_id)
  end

  violating_resources.flatten
end
rule_id() click to toggle source
# File lib/cfn-nag/custom_rules/ResourceWithExplicitNameRule.rb, line 36
def rule_id
  'W28'
end
rule_text() click to toggle source
# File lib/cfn-nag/custom_rules/ResourceWithExplicitNameRule.rb, line 27
def rule_text
  'Resource found with an explicit name, this disallows updates that ' \
  'require replacement of this resource'
end
rule_type() click to toggle source
# File lib/cfn-nag/custom_rules/ResourceWithExplicitNameRule.rb, line 32
def rule_type
  Violation::WARNING
end

Private Instance Methods

explicitly_set_resource_name?(resource, key_name) click to toggle source
# File lib/cfn-nag/custom_rules/ResourceWithExplicitNameRule.rb, line 57
def explicitly_set_resource_name?(resource, key_name)
  !resource.send(key_name).nil?
end