cfn-nag 0.7.0 → 0.7.5
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 +4 -4
- data/lib/cfn-nag/custom_rules/ApiGatewayCacheEncryptedRule.rb +34 -0
- data/lib/cfn-nag/custom_rules/CloudfrontMinimumProtocolVersionRule.rb +4 -3
- data/lib/cfn-nag/custom_rules/ECRRepositoryScanOnPushRule.rb +2 -2
- data/lib/cfn-nag/custom_rules/KinesisFirehoseDeliveryStreamEncryptionRule.rb +39 -0
- metadata +23 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5366924d809c99ac47a2bcdfe2d2188dc6956069c80646d3ebd65ca938a0096
|
4
|
+
data.tar.gz: 9c6c6a9f5b149351db5ceb54002c7556ebfff9625a40f4e3ca0abee490f5717d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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?(
|
35
|
-
|
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
|
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['
|
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.
|
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-
|
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
|
-
|
394
|
-
|
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: []
|