aws_recon 0.5.25 → 0.5.28

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: 26c0212e326609dc91f25d039e7d527447c9f4a7883918a4175a7f906d580993
4
- data.tar.gz: dcbb90f2240d483a9f96b6d786f44d4e82daae007b3ba81ef3de8f7c98d1ef13
3
+ metadata.gz: c8229a3057964333c58233cb39472a5fb27adadc6098660464018cd16645b5c9
4
+ data.tar.gz: 222eff40d76d1eeb68a6638a59ef369d53b8ef2994a43b0b765803096933b645
5
5
  SHA512:
6
- metadata.gz: ae1f07d98a57c38d110b30bfda20f3d6ecc85a06d48f5d996b76a8720acb1dd795fb6cc0dadbf5320ee6623fd2a2ec0cea16cd67139d4008d1b58c4787f382f3
7
- data.tar.gz: 2b844d1118bb8a4880e86ec466e068589fea42c8ea27a4496d32f05db83c1455e5f367e29764ac175353f34df5603a23e46295f64e2ec84259e9ab2b9e889ccc
6
+ metadata.gz: 7f2248fcc733f9f42ae109f5cb96ab0c6e82562182b9e3dbc4404dca72599e224a38c8be7a9fa967d846957427dd6e9edd5387441afcecc2c4de8f55ad001244
7
+ data.tar.gz: 62f854284d474f8376ac15cae45bae67bd111ed064bdd4fae1c0e6d5ee4a942d905aebee4ac3f12c297c9a5635fe56c58f774f69fa70896974ac211be23a6efb
@@ -23,6 +23,25 @@ class ECR < Mapper
23
23
  struct.policy = @client
24
24
  .get_repository_policy({ repository_name: repo.repository_name }).policy_text.parse_policy
25
25
 
26
+ struct.images = []
27
+ #
28
+ # describe images
29
+ #
30
+ @client.list_images( {repository_name: repo.repository_name}).image_ids.each_with_index do | image, page |
31
+ log(response.context.operation_name, 'list_images', page)
32
+ image_hash = image.to_h
33
+ #
34
+ # describe image scan results
35
+ #
36
+ result = @client.describe_image_scan_findings({ repository_name: repo.repository_name, image_id: { image_digest: image.image_digest, image_tag: image.image_tag } })
37
+ image_hash["image_scan_status"] = result.image_scan_status.to_h
38
+ image_hash["image_scan_findings"] = result.image_scan_findings.to_h
39
+
40
+ rescue Aws::ECR::Errors::ScanNotFoundException => e
41
+ # No scan result for this image. No action needed
42
+ ensure
43
+ struct.images << image_hash
44
+ end
26
45
  rescue Aws::ECR::Errors::ServiceError => e
27
46
  log_error(e.code)
28
47
 
@@ -40,7 +59,8 @@ class ECR < Mapper
40
59
  # not an error
41
60
  def suppressed_errors
42
61
  %w[
43
- RepositoryPolicyNotFoundException
44
- ]
62
+ RepositoryPolicyNotFoundException,
63
+ ScanNotFoundException
64
+ ]
45
65
  end
46
66
  end
@@ -0,0 +1,116 @@
1
+ # frozen_string_literal: true
2
+
3
+ #
4
+ # Collect Glue resources
5
+ #
6
+ class Glue < Mapper
7
+ #
8
+ # Returns an array of resources.
9
+ #
10
+ def collect
11
+ resources = []
12
+ #
13
+ # get_data_catalog_encryption_settings
14
+ #
15
+ @client.get_data_catalog_encryption_settings.each_with_index do |response, page|
16
+ log(response.context.operation_name, page)
17
+
18
+ struct = OpenStruct.new(response.to_h)
19
+ struct.type = 'catalog_encryption_settings'
20
+ struct.arn = "arn:aws:glue:#{@region}:#{@account}:data-catalog-encryption-settings" # no true ARN
21
+ resources.push(struct.to_h)
22
+ end
23
+
24
+ #
25
+ # get_security_configurations
26
+ #
27
+ @client.get_security_configurations.each_with_index do |response, page|
28
+ log(response.context.operation_name, page)
29
+
30
+ response.security_configurations.each do |security_configuration|
31
+ struct = OpenStruct.new(security_configuration.to_h)
32
+ struct.type = 'security_configuration'
33
+ struct.arn = "arn:aws:glue:#{@region}:#{@account}:security-configuration/#{security_configuration.name}" # no true ARN
34
+ resources.push(struct.to_h)
35
+ end
36
+ end
37
+
38
+ #
39
+ # get_databases
40
+ #
41
+ @client.get_databases.each_with_index do |response, page|
42
+ log(response.context.operation_name, page)
43
+
44
+ response.database_list.each do |database|
45
+ struct = OpenStruct.new(database.to_h)
46
+ struct.type = 'database'
47
+ struct.arn = "arn:aws:glue:#{@region}:#{@account}:database/#{database.name}"
48
+
49
+ #
50
+ # get_tables
51
+ #
52
+ tables = @client.get_tables({ database_name: database.name })
53
+ struct.tables = tables.to_h
54
+
55
+ resources.push(struct.to_h)
56
+ end
57
+ end
58
+
59
+ #
60
+ # get_jobs
61
+ #
62
+ @client.get_jobs.each_with_index do |response, page|
63
+ log(response.context.operation_name, page)
64
+
65
+ response.jobs.each do |job|
66
+ struct = OpenStruct.new(job.to_h)
67
+ struct.type = 'job'
68
+ struct.arn = "arn:aws:glue:#{@region}:#{@account}:job/#{job.name}"
69
+ resources.push(struct.to_h)
70
+ end
71
+ end
72
+
73
+ #
74
+ # get_dev_endpoints
75
+ #
76
+ @client.get_dev_endpoints.each_with_index do |response, page|
77
+ log(response.context.operation_name, page)
78
+
79
+ response.dev_endpoints.each do |dev_endpoint|
80
+ struct = OpenStruct.new(dev_endpoint.to_h)
81
+ struct.type = 'dev_endpoint'
82
+ struct.arn = "arn:aws:glue:#{@region}:#{@account}:devEndpoint/#{dev_endpoint.endpoint_name}"
83
+ resources.push(struct.to_h)
84
+ end
85
+ end
86
+
87
+ #
88
+ # get_crawlers
89
+ #
90
+ @client.get_crawlers.each_with_index do |response, page|
91
+ log(response.context.operation_name, page)
92
+
93
+ response.crawlers.each do |crawler|
94
+ struct = OpenStruct.new(crawler.to_h)
95
+ struct.type = 'crawler'
96
+ struct.arn = "arn:aws:glue:#{@region}:#{@account}:crawler/#{crawler.name}"
97
+ resources.push(struct.to_h)
98
+ end
99
+ end
100
+
101
+ #
102
+ # get_connections
103
+ #
104
+ @client.get_connections.each_with_index do |response, page|
105
+ log(response.context.operation_name, page)
106
+
107
+ response.connection_list.each do |connection|
108
+ struct = OpenStruct.new(connection.to_h)
109
+ struct.type = 'connection'
110
+ struct.arn = "arn:aws:glue:#{@region}:#{@account}:connection/#{connection.name}"
111
+ resources.push(struct.to_h)
112
+ end
113
+ end
114
+ resources
115
+ end
116
+ end
@@ -41,6 +41,8 @@
41
41
  alias: elasticache
42
42
  - name: EMR
43
43
  alias: emr
44
+ - name: Glue
45
+ alias: glue
44
46
  - name: IAM
45
47
  global: true
46
48
  alias: iam
@@ -1,3 +1,3 @@
1
1
  module AwsRecon
2
- VERSION = "0.5.25"
2
+ VERSION = "0.5.28"
3
3
  end
data/readme.md CHANGED
@@ -368,6 +368,7 @@ AWS Recon aims to collect all resources and metadata that are relevant in determ
368
368
  - [x] Firehose
369
369
  - [ ] FMS
370
370
  - [ ] Glacier
371
+ - [x] Glue
371
372
  - [x] IAM
372
373
  - [x] KMS
373
374
  - [x] Kafka
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws_recon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.25
4
+ version: 0.5.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Larsen
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-03-02 00:00:00.000000000 Z
12
+ date: 2022-03-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk
@@ -212,6 +212,7 @@ files:
212
212
  - lib/aws_recon/collectors/elasticsearch.rb
213
213
  - lib/aws_recon/collectors/emr.rb
214
214
  - lib/aws_recon/collectors/firehose.rb
215
+ - lib/aws_recon/collectors/glue.rb
215
216
  - lib/aws_recon/collectors/guardduty.rb
216
217
  - lib/aws_recon/collectors/iam.rb
217
218
  - lib/aws_recon/collectors/kafka.rb