cfn-nag 0.7.0 → 0.7.5

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: 5bab5df0a11168002cb70199493b3de0efd6255d8344c07f919717dffa3f0e24
4
- data.tar.gz: 6a82a1c29f40b1cbe2be3349ef3f1e0e750e50c3a48b8956a1c1a8781a6f8993
3
+ metadata.gz: f5366924d809c99ac47a2bcdfe2d2188dc6956069c80646d3ebd65ca938a0096
4
+ data.tar.gz: 9c6c6a9f5b149351db5ceb54002c7556ebfff9625a40f4e3ca0abee490f5717d
5
5
  SHA512:
6
- metadata.gz: 2d91b025958b18d897344dd641a7e62271e6d7fdcd3a9dc55dd2111eb06b79f728382767855e9353719956479db3e4ad62e7e020144f729a68d1fc6275517a49
7
- data.tar.gz: 82409f7caf323b64566834e92a50e496514375ca0b5d218cd29ebc74cca13f51b4742820d60b5a7b3ef3e41b08b1c54c573dea79d38bf16fe350959ec9c7d22b
6
+ metadata.gz: bed1dc0021b7f0af96d5b4a76769c29e0e7313f1fceda215dee60bf521434103714961084b14bb4dbdb73b3cf1cadd6381c123dd641f262f7974d0bc9414e379
7
+ data.tar.gz: f9f450d52f0bc51f2691b6497548e00eb0db8aa69c3416c7294bb55988fc005d855272351f154a721e2a4807556c1a34929dea2086da7f2741e4b37872dd8dd5
@@ -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
@@ -28,11 +28,12 @@ class CloudfrontMinimumProtocolVersionRule < BaseRule
28
28
  private
29
29
 
30
30
  def tls_version?(viewer_certificate)
31
- cert_has_bad_tls_version?(viewer_certificate) || override_tls_config?(viewer_certificate)
31
+ cert_has_bad_tls_version?(viewer_certificate['MinimumProtocolVersion']) || override_tls_config?(viewer_certificate)
32
32
  end
33
33
 
34
- def cert_has_bad_tls_version?(viewer_certificate)
35
- viewer_certificate['MinimumProtocolVersion'].nil? || viewer_certificate['MinimumProtocolVersion'] != 'TLSv1.2_2018'
34
+ def cert_has_bad_tls_version?(min_protocol_version)
35
+ min_protocol_version.nil? ||
36
+ (min_protocol_version.is_a?(String) && !min_protocol_version.start_with?('TLSv1.2'))
36
37
  end
37
38
 
38
39
  def override_tls_config?(viewer_certificate)
@@ -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.7.0
4
+ version: 0.7.5
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-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -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
@@ -390,9 +406,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
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: []