cfn-nag 0.6.1 → 0.6.6
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/cfn_nag.rb +5 -0
- data/lib/cfn-nag/cfn_nag_config.rb +3 -0
- data/lib/cfn-nag/cfn_nag_executor.rb +1 -0
- data/lib/cfn-nag/cli_options.rb +11 -0
- data/lib/cfn-nag/custom_rules/ApiGatewayV2AccessLoggingRule.rb +1 -1
- data/lib/cfn-nag/custom_rules/SPCMRule.rb +4 -1
- data/lib/cfn-nag/iam_complexity_metric/condition_metric.rb +0 -2
- data/lib/cfn-nag/result_view/colored_stdout_results.rb +0 -2
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e529710ae1e5a122268d2a85e271e70ba5983833af5d3f14ac56a2178f6d62cb
|
4
|
+
data.tar.gz: 9fcf608bcb2208cea25fcbef7b92de0c9ba8df2a57588c3e230f129d3e2e0f27
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 037bf3ac61698c91b18fff5f53444f734190f862b4b9db7d1e390c66463ded7e6554a7a38d74876f1b442e5fd06cb1d8f30377bc97b60749d7bcf8a98a93c747
|
7
|
+
data.tar.gz: 3af9293f005c8c6f147e9c8a85aa256f0d8193b77ebbfcef7b416a8b52f0459f88f60f35e5f17d38b6d722da43ca9f1b3762d7de36d162602fe6782f8abedf2e
|
data/lib/cfn-nag/cfn_nag.rb
CHANGED
@@ -102,9 +102,14 @@ class CfnNag
|
|
102
102
|
violations << fatal_violation(error)
|
103
103
|
end
|
104
104
|
|
105
|
+
violations = prune_fatal_violations(violations) if @config.ignore_fatal
|
105
106
|
audit_result(violations)
|
106
107
|
end
|
107
108
|
|
109
|
+
def prune_fatal_violations(violations)
|
110
|
+
violations.reject { |violation| violation.type == Violation::FAILING_VIOLATION }
|
111
|
+
end
|
112
|
+
|
108
113
|
def render_results(aggregate_results:,
|
109
114
|
output_format:)
|
110
115
|
results_renderer(output_format).new.render(aggregate_results)
|
@@ -9,6 +9,7 @@ class CfnNagConfig
|
|
9
9
|
print_suppression: false,
|
10
10
|
isolate_custom_rule_exceptions: false,
|
11
11
|
fail_on_warnings: false,
|
12
|
+
ignore_fatal: false,
|
12
13
|
rule_repository_definitions: [],
|
13
14
|
rule_arguments: {})
|
14
15
|
@rule_directory = rule_directory
|
@@ -24,6 +25,7 @@ class CfnNagConfig
|
|
24
25
|
@fail_on_warnings = fail_on_warnings
|
25
26
|
@rule_repositories = rule_repositories
|
26
27
|
@rule_arguments = rule_arguments
|
28
|
+
@ignore_fatal = ignore_fatal
|
27
29
|
end
|
28
30
|
# rubocop:enable Metrics/ParameterLists
|
29
31
|
|
@@ -34,4 +36,5 @@ class CfnNagConfig
|
|
34
36
|
attr_reader :blacklist_definition
|
35
37
|
attr_reader :fail_on_warnings
|
36
38
|
attr_reader :rule_repositories
|
39
|
+
attr_reader :ignore_fatal
|
37
40
|
end
|
@@ -129,6 +129,7 @@ class CfnNagExecutor
|
|
129
129
|
isolate_custom_rule_exceptions: opts[:isolate_custom_rule_exceptions],
|
130
130
|
fail_on_warnings: opts[:fail_on_warnings],
|
131
131
|
rule_repository_definitions: @rule_repository_definitions,
|
132
|
+
ignore_fatal: opts[:ignore_fatal],
|
132
133
|
rule_arguments: merge_rule_arguments(opts)
|
133
134
|
)
|
134
135
|
end
|
data/lib/cfn-nag/cli_options.rb
CHANGED
@@ -100,6 +100,11 @@ class Options
|
|
100
100
|
type: :string,
|
101
101
|
required: false,
|
102
102
|
default: nil
|
103
|
+
opt :ignore_fatal,
|
104
|
+
'Ignore files with fatal violations. Useful for ignoring non-Cloudformation yaml/yml/json in a path',
|
105
|
+
type: :boolean,
|
106
|
+
required: false,
|
107
|
+
default: false
|
103
108
|
end
|
104
109
|
end
|
105
110
|
|
@@ -193,6 +198,12 @@ class Options
|
|
193
198
|
type: :string,
|
194
199
|
required: false,
|
195
200
|
default: nil
|
201
|
+
opt :ignore_fatal,
|
202
|
+
'Ignore files with fatal violations. Useful for ignoring non-Cloudformation yaml/yml/json in a path',
|
203
|
+
short: 'g',
|
204
|
+
type: :boolean,
|
205
|
+
required: false,
|
206
|
+
default: false
|
196
207
|
end
|
197
208
|
end
|
198
209
|
# rubocop:enable Metrics/BlockLength
|
@@ -18,7 +18,7 @@ class ApiGatewayV2AccessLoggingRule < BaseRule
|
|
18
18
|
|
19
19
|
def audit_impl(cfn_model)
|
20
20
|
violating_deployments = cfn_model.resources_by_type('AWS::ApiGatewayV2::Stage').select do |deployment|
|
21
|
-
deployment.
|
21
|
+
deployment.accessLogSettings.nil?
|
22
22
|
end
|
23
23
|
|
24
24
|
violating_deployments.map(&:logical_resource_id)
|
@@ -26,7 +26,10 @@ class SPCMRule < BaseRule
|
|
26
26
|
policy_documents = SPCM.new.metric_impl(cfn_model)
|
27
27
|
rescue StandardError => catch_all_exception
|
28
28
|
puts "Experimental SPCM rule is failing. Please report #{catch_all_exception} with the violating template"
|
29
|
-
policy_documents = {
|
29
|
+
policy_documents = {
|
30
|
+
'AWS::IAM::Policy' => {},
|
31
|
+
'AWS::IAM::Role' => {}
|
32
|
+
}
|
30
33
|
end
|
31
34
|
|
32
35
|
threshold = spcm_threshold.nil? ? DEFAULT_THRESHOLD : spcm_threshold.to_i
|
@@ -6,7 +6,6 @@ require 'set'
|
|
6
6
|
class ConditionMetric
|
7
7
|
include Weights
|
8
8
|
|
9
|
-
# rubocop:disable Metrics/AbcSize
|
10
9
|
def metric(statement)
|
11
10
|
return 0 if statement.condition.nil?
|
12
11
|
|
@@ -18,7 +17,6 @@ class ConditionMetric
|
|
18
17
|
aggregate += values_with_policy_tags(statement.condition)
|
19
18
|
aggregate
|
20
19
|
end
|
21
|
-
# rubocop:enable Metrics/AbcSize
|
22
20
|
|
23
21
|
private
|
24
22
|
|
@@ -6,7 +6,6 @@ require 'cfn-nag/violation'
|
|
6
6
|
class ColoredStdoutResults < StdoutResults
|
7
7
|
private
|
8
8
|
|
9
|
-
# rubocop:disable Metrics/AbcSize
|
10
9
|
def message(message_type:,
|
11
10
|
color:,
|
12
11
|
message:,
|
@@ -24,7 +23,6 @@ class ColoredStdoutResults < StdoutResults
|
|
24
23
|
puts colorize(color, '|') unless line_numbers.empty? && logical_resource_ids.nil?
|
25
24
|
puts colorize(color, "| #{message}")
|
26
25
|
end
|
27
|
-
# rubocop:enable Metrics/AbcSize
|
28
26
|
|
29
27
|
def color_code(color_symbol)
|
30
28
|
case color_symbol
|
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.
|
4
|
+
version: 0.6.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Kascic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - '='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.5.
|
75
|
+
version: 0.5.1
|
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.
|
82
|
+
version: 0.5.1
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: logging
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -381,7 +381,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
381
381
|
- !ruby/object:Gem::Version
|
382
382
|
version: '0'
|
383
383
|
requirements: []
|
384
|
-
rubygems_version: 3.1.
|
384
|
+
rubygems_version: 3.1.4
|
385
385
|
signing_key:
|
386
386
|
specification_version: 4
|
387
387
|
summary: cfn-nag
|