sensu-plugins-aws 11.0.0 → 11.1.0
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/CHANGELOG.md +10 -1
- data/bin/check-s3-bucket-visibility.rb +48 -4
- data/lib/sensu-plugins-aws/version.rb +1 -1
- 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: 52c7355c7f130cafcc95d18c1156cac80d9792cb241098c61f9068443c3a11fd
|
4
|
+
data.tar.gz: b6e0d9e624ccf1e0069df968c1a75d6a328f7f92e3163957c92f01189124e7c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 580a14d2aa95d515887acff5bd11bd22db1b5af2aa26afcd335cfb04509e48fd3c83c5596f83b718319370a56f2ef39f9f314f811a7d58a6d8c81a9e1f3a6a58
|
7
|
+
data.tar.gz: e680f5379849fcba56dd0864bb8bac02f0c29d6eae2723315cbb246ee4e4fc8553162c5d86916cb9bf5d2d29c7a2a971a88e5326a56d714c16e25acec0522ed6
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,14 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [11.0.0] - 2018-11-21
|
9
|
+
### Added
|
10
|
+
- check-s3-bucket-visibility.rb: added option `--all-buckets` to check for all buckets in the region specified for insecure buckets (@majormoses)
|
11
|
+
- check-s3-bucket-visibility.rb: added option `--excluded-buckets` to ignore specific buckets that are expected to be loose such as s3 buckets for static website hosting (@majormoses)
|
12
|
+
|
13
|
+
### Changed
|
14
|
+
- check-s3-bucket-visibility.rb: now uses `aws-sdk-s3` while keeping other plugins locked at their respective versions (@majormoses)
|
15
|
+
|
8
16
|
## [11.0.0] - 2018-02-09
|
9
17
|
### Breaking Changes
|
10
18
|
- metrics-elb-full.rb: removed in favor of metrics-elb.rb, which is slightly more configurable and uses the AWS-SDK v2 already. Compared to metrics-elb-full.rb, metrics-elb.rb no longer takes --aws-access-key, --aws-secret-access-key flags, Authentication should be configured per [here](https://github.com/sensu-plugins/sensu-plugins-aws/blob/master/README.md#authentication). --scheme has a default value of `elb` now (@multani)
|
@@ -436,7 +444,8 @@ WARNING: This release contains major breaking changes that will impact all user
|
|
436
444
|
### Added
|
437
445
|
- initial release
|
438
446
|
|
439
|
-
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/11.
|
447
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/11.1.0...HEAD
|
448
|
+
[11.1.0]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/11.0.0...11.1.0
|
440
449
|
[11.0.0]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/10.2.0...11.0.0
|
441
450
|
[10.2.0]:https://github.com/sensu-plugins/sensu-plugins-aws/compare/10.1.2...10.2.0
|
442
451
|
[10.1.2]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/10.1.1...10.1.2
|
@@ -29,7 +29,7 @@
|
|
29
29
|
# for details.
|
30
30
|
#
|
31
31
|
|
32
|
-
require 'aws-sdk'
|
32
|
+
require 'aws-sdk-s3'
|
33
33
|
require 'sensu-plugin/check/cli'
|
34
34
|
require 'sensu-plugins-aws'
|
35
35
|
|
@@ -44,7 +44,21 @@ class CheckS3Bucket < Sensu::Plugin::Check::CLI
|
|
44
44
|
option :bucket_names,
|
45
45
|
short: '-b BUCKET_NAMES',
|
46
46
|
long: '--bucket-names',
|
47
|
-
description: 'A comma seperated list of S3 buckets to check'
|
47
|
+
description: 'A comma seperated list of S3 buckets to check',
|
48
|
+
proc: proc { |b| b.split(',') }
|
49
|
+
|
50
|
+
option :all_buckets,
|
51
|
+
short: '-a BOOL',
|
52
|
+
long: '--all-buckets BOOL',
|
53
|
+
description: 'If all buckets are true it will look at any buckets that we have access to in the region',
|
54
|
+
boolean: true,
|
55
|
+
default: false
|
56
|
+
|
57
|
+
option :exclude_buckets,
|
58
|
+
short: '-e EXCLUDED_BUCKETS_COMMA_SEPERATED',
|
59
|
+
long: '--excluded-buckets EXCLUDED_BUCKETS_COMMA_SEPERATED',
|
60
|
+
description: 'A comma seperated list of buckets to ignore that are expected to have loose permissions',
|
61
|
+
proc: proc { |b| b.split(',') }
|
48
62
|
|
49
63
|
option :critical_on_missing,
|
50
64
|
short: '-m ',
|
@@ -60,6 +74,26 @@ class CheckS3Bucket < Sensu::Plugin::Check::CLI
|
|
60
74
|
@s3_client ||= Aws::S3::Client.new
|
61
75
|
end
|
62
76
|
|
77
|
+
def s3_resource
|
78
|
+
@s3_resource || Aws::S3::Resource.new
|
79
|
+
end
|
80
|
+
|
81
|
+
def list_buckets
|
82
|
+
buckets = []
|
83
|
+
s3_resource.buckets.each do |bucket|
|
84
|
+
if s3_resource.client.get_bucket_location(bucket: bucket.name).location_constraint == config[:aws_region]
|
85
|
+
buckets << bucket.name
|
86
|
+
else
|
87
|
+
p "skipping bucket: #{bucket.name} as is not in the region specified: #{config[:aws_region]}"
|
88
|
+
end
|
89
|
+
end
|
90
|
+
buckets
|
91
|
+
end
|
92
|
+
|
93
|
+
def excluded_bucket?(bucket_name)
|
94
|
+
config[:exclude_buckets].include?(bucket_name)
|
95
|
+
end
|
96
|
+
|
63
97
|
def website_configuration?(bucket_name)
|
64
98
|
s3_client.get_bucket_website(bucket: bucket_name)
|
65
99
|
true
|
@@ -88,9 +122,19 @@ class CheckS3Bucket < Sensu::Plugin::Check::CLI
|
|
88
122
|
def run
|
89
123
|
errors = []
|
90
124
|
warnings = []
|
91
|
-
buckets = config[:
|
125
|
+
buckets = if config[:all_buckets]
|
126
|
+
list_buckets
|
127
|
+
elsif config[:bucket_names] && !config[:bucket_names].empty?
|
128
|
+
config[:bucket_names]
|
129
|
+
else
|
130
|
+
unknown 'you must specify either all buckets or provide list of buckets'
|
131
|
+
end
|
92
132
|
|
93
133
|
buckets.each do |bucket_name|
|
134
|
+
if excluded_bucket?(bucket_name)
|
135
|
+
p "bucket_name: #{bucket_name} was ignored as it matched excluded_buckets"
|
136
|
+
next
|
137
|
+
end
|
94
138
|
begin
|
95
139
|
if website_configuration?(bucket_name)
|
96
140
|
errors.push "#{bucket_name}: website configuration found"
|
@@ -98,7 +142,7 @@ class CheckS3Bucket < Sensu::Plugin::Check::CLI
|
|
98
142
|
if policy_too_permissive?(get_bucket_policy(bucket_name))
|
99
143
|
errors.push "#{bucket_name}: bucket policy too permissive"
|
100
144
|
end
|
101
|
-
rescue Aws::S3::Errors::NoSuchBucket
|
145
|
+
rescue Aws::S3::Errors::NoSuchBucket
|
102
146
|
mesg = "Bucket #{bucket_name} not found"
|
103
147
|
true?(config[:critical_on_missing]) ? errors.push(mesg) : warnings.push(mesg)
|
104
148
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 11.
|
4
|
+
version: 11.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sensu-Plugins and contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sensu-plugin
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '3.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '3.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: aws-sdk-v1
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -445,7 +445,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
445
445
|
version: '0'
|
446
446
|
requirements: []
|
447
447
|
rubyforge_project:
|
448
|
-
rubygems_version: 2.7.
|
448
|
+
rubygems_version: 2.7.6
|
449
449
|
signing_key:
|
450
450
|
specification_version: 4
|
451
451
|
summary: Sensu plugins for working with an AWS environment
|