cfn-nag 0.6.23 → 0.7.4

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: 1c7606c36a3090b30bf520802dccc6b333605881e56618a60b12422517ad0068
4
- data.tar.gz: bf80d7471ee01f6fb11f3439eea3f9dbbc7a35069b849dab0ad4c5ad3fab2b48
3
+ metadata.gz: 838ad5d1c9bd172785dd5009c33aedca7d5acf973c39a56d815663214aaf7010
4
+ data.tar.gz: 5d7047c7ad6a828b37ba3c68fc45417849b4bc5e7d939e26e4c575839c39e567
5
5
  SHA512:
6
- metadata.gz: d4d3ac0f7e8f1196a98af8a0b366146f66bda4080a224cb0ca3130108b849a23ded6d3febbbf81807bee854ef4ca002b1b02c98f7376ed244066d9509aaf34e6
7
- data.tar.gz: 7b33bd7abb7d9d37ed50ad5912fa7e718f5401c60781c5ab0ac4e878d7c5830ac8325fe73fcccf4dd8d1e772838d2bcee77cad140d2e90cfd5a32b3b9042da38
6
+ metadata.gz: e7c12a2a58f6044defc9f2ab4373dce38702df5bafbe7ed08517d83ad6373a276958d5cb4fb0f3b48ef8e04e612cbeb40261f46607e9e95261a2b916003632bf
7
+ data.tar.gz: 4f04233ab6e21028579e78f8ab0b0bb372506ab17d920b528dcbded27568973775650a0314e382a983767c0e6a8683a7ee827b21cf7dd3edfca543c47c6c09e5
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'cfn-nag/violation'
4
+ require_relative 'base'
5
+
6
+ class ApiGatewayCacheEncryptedRule < BaseRule
7
+ def rule_text
8
+ 'ApiGateway Deployment should have cache data encryption enabled when caching is enabled' \
9
+ ' in StageDescription properties'
10
+ end
11
+
12
+ def rule_type
13
+ Violation::WARNING
14
+ end
15
+
16
+ def rule_id
17
+ 'W87'
18
+ end
19
+
20
+ def audit_impl(cfn_model)
21
+ violating_deployments = cfn_model.resources_by_type('AWS::ApiGateway::Deployment').select do |deployment|
22
+ violating_deployment?(deployment)
23
+ end
24
+
25
+ violating_deployments.map(&:logical_resource_id)
26
+ end
27
+
28
+ private
29
+
30
+ def violating_deployment?(deployment)
31
+ !deployment.stageDescription.nil? && truthy?(deployment.stageDescription['CachingEnabled']) \
32
+ && !truthy?(deployment.stageDescription['CacheDataEncrypted'])
33
+ end
34
+ end
@@ -6,7 +6,7 @@ require_relative 'base'
6
6
 
7
7
  class ECRRepositoryScanOnPushRule < BaseRule
8
8
  def rule_text
9
- 'ECR Repository should have scanOnPush enabled'
9
+ 'ECR Repository should have ScanOnPush enabled'
10
10
  end
11
11
 
12
12
  def rule_type
@@ -20,7 +20,7 @@ class ECRRepositoryScanOnPushRule < BaseRule
20
20
  def audit_impl(cfn_model)
21
21
  violating_ecr_registries = cfn_model.resources_by_type('AWS::ECR::Repository').select do |registry|
22
22
  registry.imageScanningConfiguration.nil? ||
23
- !truthy?(registry.imageScanningConfiguration['scanOnPush'].to_s)
23
+ !truthy?(registry.imageScanningConfiguration['ScanOnPush'].to_s)
24
24
  end
25
25
 
26
26
  violating_ecr_registries.map(&:logical_resource_id)
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'cfn-nag/violation'
4
+ require_relative 'base'
5
+
6
+ class KinesisFirehoseDeliveryStreamEncryptionRule < BaseRule
7
+ def rule_text
8
+ 'Kinesis Firehose DeliveryStream of type DirectPut should specify SSE.'
9
+ end
10
+
11
+ def rule_type
12
+ Violation::WARNING
13
+ end
14
+
15
+ def rule_id
16
+ 'W88'
17
+ end
18
+
19
+ def audit_impl(cfn_model)
20
+ violating_delivery_streams =
21
+ cfn_model.resources_by_type('AWS::KinesisFirehose::DeliveryStream').select do |delivery_stream|
22
+ violating_delivery_stream?(delivery_stream)
23
+ end
24
+
25
+ violating_delivery_streams.map(&:logical_resource_id)
26
+ end
27
+
28
+ private
29
+
30
+ def violating_delivery_stream?(delivery_stream)
31
+ if delivery_stream.deliveryStreamType == 'KinesisStreamAsSource'
32
+ false
33
+ elsif delivery_stream.deliveryStreamEncryptionConfigurationInput.nil?
34
+ true
35
+ else
36
+ delivery_stream.deliveryStreamEncryptionConfigurationInput['KeyType'].nil?
37
+ end
38
+ end
39
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfn-nag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.23
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Kascic
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-19 00:00:00.000000000 Z
11
+ date: 2021-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -58,28 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.11'
61
+ version: '0.21'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0.11'
68
+ version: '0.21'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: cfn-model
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 0.5.4
75
+ version: 0.6.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 0.5.4
82
+ version: 0.6.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: logging
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -150,8 +150,22 @@ dependencies:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: 0.3.2
153
+ - !ruby/object:Gem::Dependency
154
+ name: rexml
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
153
167
  description: Auditing tool for CloudFormation templates
154
- email:
168
+ email:
155
169
  executables:
156
170
  - cfn_nag
157
171
  - cfn_nag_rules
@@ -183,6 +197,7 @@ files:
183
197
  - lib/cfn-nag/custom_rules/AmplifyAppOauthTokenRule.rb
184
198
  - lib/cfn-nag/custom_rules/AmplifyBranchBasicAuthConfigPasswordRule.rb
185
199
  - lib/cfn-nag/custom_rules/ApiGatewayAccessLoggingRule.rb
200
+ - lib/cfn-nag/custom_rules/ApiGatewayCacheEncryptedRule.rb
186
201
  - lib/cfn-nag/custom_rules/ApiGatewayDeploymentUsagePlanRule.rb
187
202
  - lib/cfn-nag/custom_rules/ApiGatewayMethodAuthorizationTypeRule.rb
188
203
  - lib/cfn-nag/custom_rules/ApiGatewaySecurityPolicyRule.rb
@@ -261,6 +276,7 @@ files:
261
276
  - lib/cfn-nag/custom_rules/KMSKeyRotationRule.rb
262
277
  - lib/cfn-nag/custom_rules/KMSKeyWildcardPrincipalRule.rb
263
278
  - lib/cfn-nag/custom_rules/KendraIndexServerSideEncryptionConfigurationKmsKeyIdRule.rb
279
+ - lib/cfn-nag/custom_rules/KinesisFirehoseDeliveryStreamEncryptionRule.rb
264
280
  - lib/cfn-nag/custom_rules/KinesisFirehoseDeliveryStreamRedshiftDestinationConfigurationPasswordRule.rb
265
281
  - lib/cfn-nag/custom_rules/KinesisFirehoseDeliveryStreamSplunkDestinationConfigurationHECTokenRule.rb
266
282
  - lib/cfn-nag/custom_rules/KinesisStreamStreamEncryptionRule.rb
@@ -374,7 +390,7 @@ homepage: https://github.com/stelligent/cfn_nag
374
390
  licenses:
375
391
  - MIT
376
392
  metadata: {}
377
- post_install_message:
393
+ post_install_message:
378
394
  rdoc_options: []
379
395
  require_paths:
380
396
  - lib
@@ -383,16 +399,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
383
399
  requirements:
384
400
  - - ">="
385
401
  - !ruby/object:Gem::Version
386
- version: '2.2'
402
+ version: '2.5'
387
403
  required_rubygems_version: !ruby/object:Gem::Requirement
388
404
  requirements:
389
405
  - - ">="
390
406
  - !ruby/object:Gem::Version
391
407
  version: '0'
392
408
  requirements: []
393
- rubyforge_project:
394
- rubygems_version: 2.7.6
395
- signing_key:
409
+ rubygems_version: 3.1.2
410
+ signing_key:
396
411
  specification_version: 4
397
412
  summary: cfn-nag
398
413
  test_files: []