cfn-nag 0.6.23 → 0.7.4

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: 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: []