Class: RDSInstanceBackupRetentionPeriodRule

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

Instance Method Summary collapse

Methods inherited from BaseRule

#audit, #violation

Instance Method Details

#audit_impl(cfn_model) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/cfn-nag/custom_rules/RDSInstanceBackupRetentionPeriodRule.rb', line 19

def audit_impl(cfn_model)
  rds_dbinstances = cfn_model.resources_by_type('AWS::RDS::DBInstance')

  violating_rdsinstances = rds_dbinstances.select do |instance|
    violating_period(instance.backupRetentionPeriod)
  end

  violating_rdsinstances.map(&:logical_resource_id)
end

#rule_idObject



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

def rule_id
  'W75'
end

#rule_textObject



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

def rule_text
  'RDS instance should have backup retention period greater than 0'
end

#rule_typeObject



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

def rule_type
  Violation::WARNING
end

#violating_period(backup_retention_period) ⇒ Object



29
30
31
32
33
# File 'lib/cfn-nag/custom_rules/RDSInstanceBackupRetentionPeriodRule.rb', line 29

def violating_period(backup_retention_period)
  return false if backup_retention_period.nil?

  backup_retention_period.to_s == '0'
end