cfn-guardian 0.11.5 → 0.11.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f723e435275fc1a6e2b27f9af51fe3ca405f19621c761aa26fdcf1db6567258c
4
- data.tar.gz: d84f42b73498a82d831b7ccccaaa42d379df99c73d719e75ca3262b544de35c9
3
+ metadata.gz: 9d2c40c9c770002c29f5944836df58ce457d497b8f650c4502f18fcf4e79cd71
4
+ data.tar.gz: c8d2396742afaeecc84ffcb30aab78a6be53af64292cd362581a75275f4332cb
5
5
  SHA512:
6
- metadata.gz: 4b843af3e2e6a131853d472575eb71edd22d529e93e4203cf4c726b231101f4644426acd69e1b21ad4c03ec675620b4836d7f3dc2c1a8ec864c6769ea564bde3
7
- data.tar.gz: 765da898a28024041595acdcd7e46de3e34c172861f0b4df7aeb82e434de4c8ec99abf659370e4fc58615ddf32abbb885224c7ee13e48e02dd3c2d29a1fd170f
6
+ metadata.gz: b8e74696940031d2e2010eb005172bd98eb6478b9c0feccdb7a5c413c70d6a9db36b7ab6d51022d7f2ea761a7fd170f166b3892b06e7627da2a9b7b04d2a6222
7
+ data.tar.gz: 39c24609796c7019a2cbe12ff6cef57e53a8532c89bd143eeb356813798c3fd354a24c9d61d94ff1fb981da030bdf0e42183fa2504cd7fad1a6b2155053c811c
data/README.md CHANGED
@@ -22,7 +22,7 @@ CfnGuardian is a AWS monitoring tool with a few capabilities:
22
22
  - tls version checking
23
23
 
24
24
  **Supported AWS Resources**
25
-
25
+ - ACM Certificates
26
26
  - AmazonMq(RabbitMQ and ActiveMQ)
27
27
  - ApiGateway
28
28
  - Application Targetgroups
data/docs/resources.md CHANGED
@@ -36,6 +36,7 @@ Resources:
36
36
 
37
37
  | Resource Group | Require Keys |
38
38
  | --------------------------- | ---------------- |
39
+ | Acm | Id |
39
40
  | ApiGateway | Id |
40
41
  | AmazonMQBroker | Id |
41
42
  | AutoScalingGroup | Id |
@@ -5,6 +5,7 @@ require 'cfnguardian/stacks/resources'
5
5
  require 'cfnguardian/stacks/main'
6
6
  require 'cfnguardian/models/composite'
7
7
  require 'cfnguardian/resources/base'
8
+ require 'cfnguardian/resources/acm'
8
9
  require 'cfnguardian/resources/apigateway'
9
10
  require 'cfnguardian/resources/application_targetgroup'
10
11
  require 'cfnguardian/resources/amazonmq_broker'
@@ -139,6 +140,9 @@ module CfnGuardian
139
140
  @cost += resource_class.get_cost
140
141
  end
141
142
  end
143
+
144
+ # Add default event subscriptions
145
+ @resources.concat generate_default_event_subscriptions()
142
146
 
143
147
  @maintenance_groups.each do |maintenance_group,resource_groups|
144
148
  resource_groups.each do |group, alarms|
@@ -251,6 +255,19 @@ module CfnGuardian
251
255
 
252
256
  File.write("out/template-config.guardian.json", template.to_json)
253
257
  end
254
-
258
+
259
+ def generate_default_event_subscriptions()
260
+ # List of Classes which default events should be deployed
261
+ default_resource_classes = ['CfnGuardian::Resource::Acm']
262
+ default_event_subscriptions = []
263
+
264
+ default_resource_classes.each do |resource_class|
265
+ resource_instance = Kernel.const_get(resource_class).new({"Id"=>resource_class}) # Dummy ID
266
+ default_event_subscriptions.concat(resource_instance.default_event_subscriptions())
267
+ end
268
+
269
+ return default_event_subscriptions
270
+ end
271
+
255
272
  end
256
273
  end
@@ -66,6 +66,15 @@ module CfnGuardian
66
66
  end
67
67
  end
68
68
 
69
+ class AcmAlarm < BaseAlarm
70
+ def initialize(resource)
71
+ super(resource)
72
+ @group = 'Acm'
73
+ @namespace = 'AWS/CertificateManager'
74
+ @dimensions = { CertificateArn: { "Fn::Sub" => "arn:aws:acm:${AWS::Region}:${AWS::AccountId}:certificate/#{resource['Id']}"}}
75
+ end
76
+ end
77
+
69
78
  class ApiGatewayAlarm < BaseAlarm
70
79
  def initialize(resource)
71
80
  super(resource)
@@ -95,6 +95,7 @@ module CfnGuardian
95
95
  end
96
96
  end
97
97
 
98
+ class AcmEventSubscription < BaseEventSubscription; end
98
99
  class ApiGatewayEventSubscription < BaseEventSubscription; end
99
100
  class ApplicationTargetGroupEventSubscription < BaseEventSubscription; end
100
101
  class AmazonMQBrokerEventSubscription < BaseEventSubscription; end
@@ -0,0 +1,39 @@
1
+ module CfnGuardian::Resource
2
+ class Acm < Base
3
+
4
+ def default_alarms
5
+ alarm = CfnGuardian::Models::AcmAlarm.new(@resource)
6
+ alarm.name = 'CertificateExpiry'
7
+ alarm.metric_name = 'DaysToExpiry'
8
+ alarm.statistic = 'Average'
9
+ alarm.threshold = 30
10
+ alarm.comparison_operator = 'LessThanThreshold'
11
+ alarm.evaluation_periods = 1
12
+ alarm.period = 86400
13
+ @alarms.push(alarm)
14
+ end
15
+
16
+ def default_event_subscriptions()
17
+ event_subscription = CfnGuardian::Models::AcmEventSubscription.new(@resource)
18
+ event_subscription.name = 'AcmCertificateNearExpiry'
19
+ event_subscription.detail_type = 'ACM Certificate Approaching Expiration'
20
+ event_subscription.source = 'aws.acm'
21
+ event_subscription.detail = {
22
+ 'DaysToExpiry' => [31]
23
+ }
24
+ @event_subscriptions.push(event_subscription)
25
+
26
+ event_subscription = CfnGuardian::Models::AcmEventSubscription.new(@resource)
27
+ event_subscription.name = 'AcmCertificateExpired'
28
+ event_subscription.detail_type = 'ACM Certificate Expired'
29
+ event_subscription.source = 'aws.acm'
30
+ @event_subscriptions.push(event_subscription)
31
+
32
+ event_subscription = CfnGuardian::Models::AcmEventSubscription.new(@resource)
33
+ event_subscription.name = 'AcmRenewalActionRequired'
34
+ event_subscription.detail_type = 'ACM Certificate Renewal Action Required'
35
+ event_subscription.source = 'aws.acm'
36
+ @event_subscriptions.push(event_subscription)
37
+ end
38
+ end
39
+ end
@@ -1,4 +1,4 @@
1
1
  module CfnGuardian
2
- VERSION = "0.11.5"
2
+ VERSION = "0.11.6"
3
3
  CHANGE_SET_VERSION = VERSION.gsub('.', '-').freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfn-guardian
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.5
4
+ version: 0.11.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guslington
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-14 00:00:00.000000000 Z
11
+ date: 2023-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -328,6 +328,7 @@ files:
328
328
  - lib/cfnguardian/models/event.rb
329
329
  - lib/cfnguardian/models/event_subscription.rb
330
330
  - lib/cfnguardian/models/metric_filter.rb
331
+ - lib/cfnguardian/resources/acm.rb
331
332
  - lib/cfnguardian/resources/amazonmq_broker.rb
332
333
  - lib/cfnguardian/resources/amazonmq_rabbitmq.rb
333
334
  - lib/cfnguardian/resources/apigateway.rb