cfn-guardian 0.6.7 → 0.6.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53722b34244bb95ed843872058e736248af2c62c0ca574542cf92fffa19ac851
4
- data.tar.gz: 82761250e49f3246c115b89a60d2e6c2bceb62b1e555f69fc1d3d2aff523d92c
3
+ metadata.gz: 6086513d45028d39a8fd14045920fd86bb24d1567e7d583d7849aa8608a0fc30
4
+ data.tar.gz: 611bec25f666dc95e14b800cc94a7c81bbe4c329229b32cb4354f68aa8419683
5
5
  SHA512:
6
- metadata.gz: f9c9a209b886d4988c7b8174000b9513212d173e51ccb35e29dd1ea859c3f666c74fef108457483ba0af9a96cf2c636e79858c92c69801f01d53a512d4361bc9
7
- data.tar.gz: 22b7fd68e38bdb54cfe6a28f936182a4aa79c895e283a17afe31746f55ee2c4c6a149914d5870ac378a69147f53381da3e589b261d581036197bb9fcf03bd46e
6
+ metadata.gz: 75bf1a7ce2e42f7fb253d1be1e9c7ba09ecf4af6839820685587d2f8949d00027af462e25d454b68b1df9a5c7e7376605f3e8e50119db374c92cfc7d8df80d0d
7
+ data.tar.gz: 983989310f60014fe6197ae5b94310ffa8568aa84b7287a1533844e59ae2994fc7b7b364e4fed7ea125723f17eff93d4a693a8fc96c7707d5f3857aede5398fa
data/Dockerfile CHANGED
@@ -1,6 +1,6 @@
1
1
  FROM ruby:2.7-alpine
2
2
 
3
- ARG GUARDIAN_VERSION="0.6.6"
3
+ ARG GUARDIAN_VERSION="0.6.9"
4
4
 
5
5
  COPY . /src
6
6
 
data/README.md CHANGED
@@ -41,3 +41,4 @@ CfnGuardian is a AWS monitoring tool with a few capabilities:
41
41
  - Redshift Cluster
42
42
  - SQS Queues
43
43
  - LogGroup Metric Filters
44
+ - ElasticSearch
@@ -0,0 +1,18 @@
1
+ # ECS Container Instance Check
2
+
3
+ Source: https://github.com/base2Services/aws-lambda-ecs-container-instance-check
4
+
5
+ Checks the agent status of a ECS container instance for a ECS cluster.
6
+ This check and alarms are created by default when a ECS cluster resource is specified in the config.
7
+
8
+ ```yaml
9
+ Resources:
10
+ ECSCluster:
11
+ - Id: my-cluster
12
+
13
+ Templates:
14
+ ECSCluster:
15
+ # override the alarm defaults
16
+ ECSContianerInstancesDisconnected:
17
+ ...
18
+ ```
data/docs/overview.md CHANGED
@@ -14,6 +14,7 @@
14
14
  7. [SQL](custom_checks/sql.md)
15
15
  8. [TLS](custom_checks/tls.md)
16
16
  9. [Azure File Check](custom_checks/azure_file_check.md)
17
+ 10. [ECS Container Instance Check](custom_checks/ecs_container_instance_check.md)
17
18
  5. [Event Subscriptions](event_subscriptions.md)
18
19
  6. [Notifiers](notifiers.md)
19
20
  7. [Maintenance Mode](maintenance_mode.md)
data/docs/resources.md CHANGED
@@ -54,6 +54,7 @@ Resources:
54
54
  | Lambda | Id |
55
55
  | CloudFrontDistribution | Id |
56
56
  | SQSQueue | Id |
57
+ | ElasticSearch | Id, Domain |
57
58
 
58
59
 
59
60
  ## Custom Resource Groups
@@ -16,6 +16,7 @@ require 'cfnguardian/resources/dynamodb_table'
16
16
  require 'cfnguardian/resources/ec2_instance'
17
17
  require 'cfnguardian/resources/ecs_cluster'
18
18
  require 'cfnguardian/resources/ecs_service'
19
+ require 'cfnguardian/resources/eks_container_insights'
19
20
  require 'cfnguardian/resources/elastic_file_system'
20
21
  require 'cfnguardian/resources/elasticache_replication_group'
21
22
  require 'cfnguardian/resources/elastic_loadbalancer'
@@ -40,9 +41,13 @@ require 'cfnguardian/resources/amazonmq_rabbitmq'
40
41
  require 'cfnguardian/resources/batch'
41
42
  require 'cfnguardian/resources/glue'
42
43
  require 'cfnguardian/resources/step_functions'
44
+ require 'cfnguardian/resources/vpn_tunnel'
45
+ require 'cfnguardian/resources/vpn_connection'
46
+ require 'cfnguardian/resources/elastic_search'
43
47
  require 'cfnguardian/version'
44
48
  require 'cfnguardian/error'
45
49
 
50
+
46
51
  module CfnGuardian
47
52
  class Compile
48
53
  include Logging
@@ -8,7 +8,7 @@ Resources:
8
8
  Node: Default
9
9
  AmazonMQRabbitMQQueue:
10
10
  - Id: Default
11
- Queue: Default
11
+ Broker: Default
12
12
  Vhost: Default
13
13
  ApiGateway:
14
14
  - Id: Default
@@ -28,12 +28,20 @@ Resources:
28
28
  ECSCluster:
29
29
  - Id: Default
30
30
  ECSService:
31
+ - Id: Default
32
+ Cluster: Default
33
+ EKSContainerInsightsCluster:
34
+ - Id: Default
35
+ EKSContainerInsightsNamespace:
31
36
  - Id: Default
32
37
  Cluster: Default
33
38
  ElasticFileSystem:
34
39
  - Id: Default
35
40
  ElasticLoadBalancer:
36
41
  - Id: Default
42
+ ElasticSearch:
43
+ - Id: Default
44
+ Domain: Default
37
45
  ElastiCacheReplicationGroup:
38
46
  - Id: Default
39
47
  Http:
@@ -100,4 +108,8 @@ Resources:
100
108
  Query: Default
101
109
  SQSQueue:
102
110
  - Id: Default
111
+ VPNTunnel:
112
+ - Id: Default
113
+ VPNConnection:
114
+ - Id: Default
103
115
 
@@ -122,8 +122,8 @@ module CfnGuardian
122
122
  @group = 'AmazonMQRabbitMQQueue'
123
123
  @namespace = 'AWS/AmazonMQ'
124
124
  @dimensions = {
125
- Broker: resource['Id'],
126
- Queue: resource['Queue'],
125
+ Broker: resource['Broker'],
126
+ Queue: resource['Id'],
127
127
  VirtualHost: resource['Vhost']
128
128
  }
129
129
  end
@@ -203,7 +203,28 @@ module CfnGuardian
203
203
  }
204
204
  end
205
205
  end
206
+
207
+ class EKSContainerInsightsClusterAlarm < BaseAlarm
208
+ def initialize(resource)
209
+ super(resource)
210
+ @group = 'EKSContainerInsightsCluster'
211
+ @namespace = 'ContainerInsights'
212
+ @dimensions = { ClusterName: resource['Id'] }
213
+ end
214
+ end
206
215
 
216
+ class EKSContainerInsightsNamespaceAlarm < BaseAlarm
217
+ def initialize(resource)
218
+ super(resource)
219
+ @group = 'EKSContainerInsightsNamespace'
220
+ @namespace = 'ContainerInsights'
221
+ @dimensions = {
222
+ ClusterName: resource['Cluster'],
223
+ Namespace: resource['Id']
224
+ }
225
+ end
226
+ end
227
+
207
228
  class ElastiCacheReplicationGroupAlarm < BaseAlarm
208
229
  def initialize(resource)
209
230
  super(resource)
@@ -212,6 +233,24 @@ module CfnGuardian
212
233
  @dimensions = { CacheClusterId: resource['Id'] }
213
234
  end
214
235
  end
236
+
237
+ class ElasticSearchAlarm < BaseAlarm
238
+ def initialize(resource)
239
+ super(resource)
240
+ @group = 'ElasticSearch'
241
+ @namespace = 'AWS/ElasticSearch'
242
+ @dimensions = {
243
+ DomainName: resource['Domain'],
244
+ ClientId: resource['Id']
245
+ }
246
+ @comparison_operator = 'GreaterThanOrEqualToThreshold'
247
+ @threshold = 1
248
+ @evaluation_periods = 5
249
+ @treat_missing_data = 'breaching'
250
+ @period = 60
251
+ @data_points_to_alarm = 1
252
+ end
253
+ end
215
254
 
216
255
  class ElasticLoadBalancerAlarm < BaseAlarm
217
256
  def initialize(resource)
@@ -445,6 +484,28 @@ module CfnGuardian
445
484
  @dimensions = { StorageAccount: resource['Id'], StorageContainer: resource['Container'] }
446
485
  end
447
486
  end
448
-
487
+
488
+ class VPNTunnelAlarm < BaseAlarm
489
+ def initialize(resource)
490
+ super(resource)
491
+ @group = 'VPNTunnel'
492
+ @namespace = 'AWS/VPN'
493
+ @dimensions = {
494
+ TunnelIpAddress: resource['Id']
495
+ }
496
+ end
497
+ end
498
+
499
+ class VPNConnectionAlarm < BaseAlarm
500
+ def initialize(resource)
501
+ super(resource)
502
+ @group = 'VPNConnection'
503
+ @namespace = 'AWS/VPN'
504
+ @dimensions = {
505
+ VpnId: resource['Id']
506
+ }
507
+ end
508
+ end
509
+
449
510
  end
450
511
  end
@@ -107,5 +107,7 @@ module CfnGuardian
107
107
  class NetworkTargetGroupEventSubscription < BaseEventSubscription; end
108
108
  class RedshiftClusterEventSubscription < BaseEventSubscription; end
109
109
  class StepFunctionsSubscription < BaseEventSubscription; end
110
+ class VPNTunnelEventSubscription < BaseEventSubscription; end
111
+ class VPNConnectionEventSubscription < BaseEventSubscription; end
110
112
  end
111
113
  end
@@ -17,6 +17,17 @@ module CfnGuardian
17
17
  alarm.threshold = 90
18
18
  alarm.evaluation_periods = 10
19
19
  @alarms.push(alarm)
20
+
21
+ alarm = CfnGuardian::Models::Ec2InstanceAlarm.new(@resource)
22
+ alarm.name = 'CPUCreditBalanceLow'
23
+ alarm.metric_name = 'CPUCreditBalance'
24
+ alarm.comparison_operator = 'LessThanThreshold'
25
+ alarm.statistic = 'Minimum'
26
+ alarm.threshold = 100
27
+ alarm.evaluation_periods = 5
28
+ alarm.treat_missing_data = 'notBreaching'
29
+ alarm.datapoints_to_alarm = 5
30
+ @alarms.push(alarm)
20
31
  end
21
32
 
22
33
  def default_event_subscriptions()
@@ -0,0 +1,99 @@
1
+ module CfnGuardian::Resource
2
+ class EKSContainerInsightsCluster < Base
3
+
4
+ def default_alarms
5
+
6
+ alarm = CfnGuardian::Models::EKSContainerInsightsClusterAlarm.new(@resource)
7
+ alarm.name = 'NodeCpuUtilisationBase'
8
+ alarm.metric_name = 'node_cpu_utilization'
9
+ alarm.comparison_operator = 'GreaterThanThreshold'
10
+ alarm.statistic = 'Maximum'
11
+ alarm.threshold = 75
12
+ alarm.evaluation_periods = 60
13
+ alarm.alarm_action = 'Warning'
14
+ @alarms.push(alarm)
15
+
16
+ alarm = CfnGuardian::Models::EKSContainerInsightsClusterAlarm.new(@resource)
17
+ alarm.name = 'NodeCpuUtilisationSpike'
18
+ alarm.metric_name = 'node_cpu_utilization'
19
+ alarm.comparison_operator = 'GreaterThanThreshold'
20
+ alarm.statistic = 'Maximum'
21
+ alarm.threshold = 95
22
+ alarm.evaluation_periods = 5
23
+ @alarms.push(alarm)
24
+
25
+ alarm = CfnGuardian::Models::EKSContainerInsightsClusterAlarm.new(@resource)
26
+ alarm.name = 'NodeFileSystemUtilisationCrit'
27
+ alarm.metric_name = 'node_filesystem_utilization'
28
+ alarm.comparison_operator = 'GreaterThanThreshold'
29
+ alarm.statistic = 'Maximum'
30
+ alarm.threshold = 90
31
+ alarm.evaluation_periods = 1
32
+ @alarms.push(alarm)
33
+
34
+ alarm = CfnGuardian::Models::EKSContainerInsightsClusterAlarm.new(@resource)
35
+ alarm.name = 'NodeFileSystemUtilisationWarning'
36
+ alarm.metric_name = 'node_filesystem_utilization'
37
+ alarm.comparison_operator = 'GreaterThanThreshold'
38
+ alarm.statistic = 'Maximum'
39
+ alarm.threshold = 75
40
+ alarm.evaluation_periods = 1
41
+ alarm.alarm_action = 'Warning'
42
+ @alarms.push(alarm)
43
+
44
+ alarm = CfnGuardian::Models::EKSContainerInsightsClusterAlarm.new(@resource)
45
+ alarm.name = 'NodeMemoryUtilisationBase'
46
+ alarm.metric_name = 'node_memory_utilization'
47
+ alarm.comparison_operator = 'GreaterThanThreshold'
48
+ alarm.statistic = 'Maximum'
49
+ alarm.threshold = 80
50
+ alarm.evaluation_periods = 60
51
+ alarm.alarm_action = 'Warning'
52
+ @alarms.push(alarm)
53
+
54
+ alarm = CfnGuardian::Models::EKSContainerInsightsClusterAlarm.new(@resource)
55
+ alarm.name = 'NodeMemoryUtilisationSpike'
56
+ alarm.metric_name = 'node_memory_utilization'
57
+ alarm.comparison_operator = 'GreaterThanThreshold'
58
+ alarm.statistic = 'Maximum'
59
+ alarm.threshold = 90
60
+ alarm.evaluation_periods = 5
61
+ @alarms.push(alarm)
62
+
63
+ alarm = CfnGuardian::Models::EKSContainerInsightsClusterAlarm.new(@resource)
64
+ alarm.name = 'ClusterFailedNodeCount'
65
+ alarm.metric_name = 'cluster_failed_node_count'
66
+ alarm.comparison_operator = 'GreaterThanThreshold'
67
+ alarm.statistic = 'Minimum'
68
+ alarm.threshold = 0
69
+ alarm.evaluation_periods = 1
70
+ @alarms.push(alarm)
71
+
72
+ end
73
+ end
74
+
75
+ class EKSContainerInsightsNamespace < Base
76
+
77
+ def default_alarms
78
+
79
+ alarm = CfnGuardian::Models::EKSContainerInsightsNamespaceAlarm.new(@resource)
80
+ alarm.name = 'PodCpuUtilisation'
81
+ alarm.metric_name = 'pod_cpu_utilization'
82
+ alarm.comparison_operator = 'GreaterThanThreshold'
83
+ alarm.statistic = 'Maximum'
84
+ alarm.threshold = 90
85
+ alarm.evaluation_periods = 5
86
+ @alarms.push(alarm)
87
+
88
+ alarm = CfnGuardian::Models::EKSContainerInsightsNamespaceAlarm.new(@resource)
89
+ alarm.name = 'PodMemoryUtilisation'
90
+ alarm.metric_name = 'pod_memory_utilization'
91
+ alarm.comparison_operator = 'GreaterThanThreshold'
92
+ alarm.statistic = 'Maximum'
93
+ alarm.threshold = 90
94
+ alarm.evaluation_periods = 5
95
+ @alarms.push(alarm)
96
+
97
+ end
98
+ end
99
+ end
@@ -11,6 +11,17 @@ module CfnGuardian
11
11
  alarm.evaluation_periods = 5
12
12
  alarm.statistic = 'Minimum'
13
13
  @alarms.push(alarm)
14
+
15
+ alarm = CfnGuardian::Models::ElasticFileSystemAlarm.new(@resource)
16
+ alarm.name = 'BurstCreditBalanceLow'
17
+ alarm.metric_name = 'BurstCreditBalance'
18
+ alarm.comparison_operator = 'LessThanThreshold'
19
+ alarm.statistic = 'Minimum'
20
+ alarm.threshold = 1000000000000
21
+ alarm.evaluation_periods = 5
22
+ alarm.treat_missing_data = 'notBreaching'
23
+ alarm.datapoints_to_alarm = 5
24
+ @alarms.push(alarm)
14
25
  end
15
26
  end
16
27
  end
@@ -0,0 +1,135 @@
1
+ module CfnGuardian::Resource
2
+ class ElasticSearch < Base
3
+
4
+ def default_alarms
5
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
6
+ alarm.name = 'NodeCount'
7
+ alarm.metric_name = 'Nodes'
8
+ alarm.threshold = 3
9
+ alarm.evaluation_periods = 1440 # 24 hours
10
+ alarm.datapoints_to_alarm = 1
11
+ alarm.comparison_operator = 'LessThanOrEqualToThreshold'
12
+ alarm.alarm_action = 'Critical'
13
+ alarm.enabled = false
14
+ @alarms.push(alarm)
15
+
16
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
17
+ alarm.name = 'JVMMemoryPressureWarning'
18
+ alarm.metric_name = 'JVMMemoryPressure'
19
+ alarm.threshold = 72
20
+ alarm.evaluation_periods = 5
21
+ alarm.datapoints_to_alarm = 3
22
+ alarm.alarm_action = 'Warning'
23
+ @alarms.push(alarm)
24
+
25
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
26
+ alarm.name = 'JVMMemoryPressureCrit'
27
+ alarm.metric_name = 'JVMMemoryPressure'
28
+ alarm.threshold = 92
29
+ alarm.evaluation_periods = 5
30
+ alarm.alarm_action = 'Critical'
31
+ @alarms.push(alarm)
32
+
33
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
34
+ alarm.name = 'ClusterIndexWritesBlocked'
35
+ alarm.metric_name = 'ClusterIndexWritesBlocked'
36
+ alarm.threshold = 1
37
+ alarm.evaluation_periods = 5
38
+ alarm.alarm_action = 'Critical'
39
+ @alarms.push(alarm)
40
+
41
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
42
+ alarm.name = 'MasterNodeCPUUtilisationWarning'
43
+ alarm.metric_name = 'MasterCPUUtilization'
44
+ alarm.threshold = 75
45
+ alarm.evaluation_periods = 60
46
+ alarm.alarm_action = 'Warning'
47
+ @alarms.push(alarm)
48
+
49
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
50
+ alarm.name = 'MasterNodeCPUUtilisationCrit'
51
+ alarm.metric_name = 'MasterCPUUtilization'
52
+ alarm.threshold = 95
53
+ alarm.evaluation_periods = 10
54
+ alarm.alarm_action = 'Critical'
55
+ @alarms.push(alarm)
56
+
57
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
58
+ alarm.name = 'FreeStorageSpaceWarning'
59
+ alarm.metric_name = 'FreeStorageSpace'
60
+ alarm.threshold = 50000
61
+ alarm.evaluation_periods = 1
62
+ alarm.alarm_action = 'Warning'
63
+ alarm.statistic = 'Minimum'
64
+ alarm.comparison_operator = 'LessThanOrEqualToThreshold'
65
+ @alarms.push(alarm)
66
+
67
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
68
+ alarm.name = 'FreeStorageSpaceCrit'
69
+ alarm.metric_name = 'FreeStorageSpace'
70
+ alarm.threshold = 25000
71
+ alarm.evaluation_periods = 1
72
+ alarm.alarm_action = 'Critical'
73
+ alarm.comparison_operator = 'LessThanOrEqualToThreshold'
74
+ @alarms.push(alarm)
75
+
76
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
77
+ alarm.name = 'CPUUtilizationWarning'
78
+ alarm.metric_name = 'CPUUtilization'
79
+ alarm.threshold = 75
80
+ alarm.evaluation_periods = 15
81
+ alarm.datapoints_to_alarm = 3
82
+ alarm.alarm_action = 'Warning'
83
+ alarm.statistic = 'Average'
84
+ @alarms.push(alarm)
85
+
86
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
87
+ alarm.name = 'CPUUtilizationCrit'
88
+ alarm.metric_name = 'CPUUtilization'
89
+ alarm.threshold = 95
90
+ alarm.evaluation_periods = 5
91
+ alarm.datapoints_to_alarm = 3
92
+ alarm.alarm_action = 'Critical'
93
+ alarm.statistic = 'Average'
94
+ @alarms.push(alarm)
95
+
96
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
97
+ alarm.name = 'KMSKeyError'
98
+ alarm.metric_name = 'KMSKeyError'
99
+ alarm.threshold = 1
100
+ alarm.evaluation_periods = 1
101
+ alarm.alarm_action = 'Warning'
102
+ alarm.statistic = 'Minimum'
103
+ @alarms.push(alarm)
104
+
105
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
106
+ alarm.name = 'KMSKeyInaccessible'
107
+ alarm.metric_name = 'KMSKeyInaccessible'
108
+ alarm.threshold = 1
109
+ alarm.evaluation_periods = 1
110
+ alarm.alarm_action = 'Critical'
111
+ alarm.statistic = 'Minimum'
112
+ alarm.enabled = false
113
+ @alarms.push(alarm)
114
+
115
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
116
+ alarm.name = 'ClusterStatusRed'
117
+ alarm.metric_name = 'ClusterStatus.red'
118
+ alarm.threshold = 1
119
+ alarm.evaluation_periods = 1
120
+ alarm.alarm_action = 'Critical'
121
+ alarm.statistic = 'Minimum'
122
+ @alarms.push(alarm)
123
+
124
+ alarm = CfnGuardian::Models::ElasticSearchAlarm.new(@resource)
125
+ alarm.name = 'ClusterStatusYellow'
126
+ alarm.metric_name = 'ClusterStatus.yellow'
127
+ alarm.threshold = 1
128
+ alarm.evaluation_periods = 1
129
+ alarm.alarm_action = 'Warning'
130
+ alarm.statistic = 'Minimum'
131
+ @alarms.push(alarm)
132
+
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,18 @@
1
+ module CfnGuardian::Resource
2
+ class VPNConnection < Base
3
+
4
+ def default_alarms
5
+ alarm = CfnGuardian::Models::VPNConnectionAlarm.new(@resource)
6
+ alarm.name = 'VPNConnectionState'
7
+ alarm.metric_name = 'TunnelState'
8
+ alarm.comparison_operator = 'LessThanThreshold'
9
+ alarm.statistic = 'Average'
10
+ alarm.threshold = 0.5
11
+ alarm.evaluation_periods = 3
12
+ alarm.treat_missing_data = 'breaching'
13
+ alarm.datapoints_to_alarm = 3
14
+ @alarms.push(alarm)
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ module CfnGuardian::Resource
2
+ class VPNTunnel < Base
3
+
4
+ def default_alarms
5
+ alarm = CfnGuardian::Models::VPNTunnelAlarm.new(@resource)
6
+ alarm.name = 'VPNTunnelState'
7
+ alarm.metric_name = 'TunnelState'
8
+ alarm.comparison_operator = 'LessThanThreshold'
9
+ alarm.statistic = 'Minimum'
10
+ alarm.threshold = 1
11
+ alarm.evaluation_periods = 5
12
+ alarm.treat_missing_data = 'breaching'
13
+ alarm.datapoints_to_alarm = 5
14
+ @alarms.push(alarm)
15
+ end
16
+
17
+ end
18
+ end
@@ -1,4 +1,4 @@
1
1
  module CfnGuardian
2
- VERSION = "0.6.7"
2
+ VERSION = "0.6.12"
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.6.7
4
+ version: 0.6.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guslington
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-21 00:00:00.000000000 Z
11
+ date: 2021-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -238,6 +238,7 @@ files:
238
238
  - docs/composite_alarms.md
239
239
  - docs/custom_checks/azure_file_check.md
240
240
  - docs/custom_checks/domain_expiry.md
241
+ - docs/custom_checks/ecs_container_instance_check.md
241
242
  - docs/custom_checks/http.md
242
243
  - docs/custom_checks/log_group_metric_filters.md
243
244
  - docs/custom_checks/nrpe.md
@@ -284,8 +285,10 @@ files:
284
285
  - lib/cfnguardian/resources/ec2_instance.rb
285
286
  - lib/cfnguardian/resources/ecs_cluster.rb
286
287
  - lib/cfnguardian/resources/ecs_service.rb
288
+ - lib/cfnguardian/resources/eks_container_insights.rb
287
289
  - lib/cfnguardian/resources/elastic_file_system.rb
288
290
  - lib/cfnguardian/resources/elastic_loadbalancer.rb
291
+ - lib/cfnguardian/resources/elastic_search.rb
289
292
  - lib/cfnguardian/resources/elasticache_replication_group.rb
290
293
  - lib/cfnguardian/resources/glue.rb
291
294
  - lib/cfnguardian/resources/http.rb
@@ -306,6 +309,8 @@ files:
306
309
  - lib/cfnguardian/resources/sqs_queue.rb
307
310
  - lib/cfnguardian/resources/step_functions.rb
308
311
  - lib/cfnguardian/resources/tls.rb
312
+ - lib/cfnguardian/resources/vpn_connection.rb
313
+ - lib/cfnguardian/resources/vpn_tunnel.rb
309
314
  - lib/cfnguardian/s3.rb
310
315
  - lib/cfnguardian/stacks/main.rb
311
316
  - lib/cfnguardian/stacks/resources.rb