aws_recon 0.2.28 → 0.2.33

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: 8df2a508259a0c930a5bfa6c9c01965eeb1fe9955fb6dc48e812303a79062d85
4
- data.tar.gz: 4118ae4e81b0361d8e6c5193eb4adeb69f7c6c0e37e2e8c13ed6e4357c4b377b
3
+ metadata.gz: '049b5ee7040e057fade76bdfaa07078ad216d95b134049ca5d0575bb540f5547'
4
+ data.tar.gz: f4e8d67b732aa5b15252bf2acbf1a2f31aa7cc2341d058c9ad9ffe51290d532e
5
5
  SHA512:
6
- metadata.gz: 633d6e44f13ffb2d1cb34aad13cb0139db582e62fe195564f476d41ac267762d28a5f2c9baacc5fee97344d960fff19ef95fc21d72f2bdbf96f701c107107b4a
7
- data.tar.gz: e61afaa923d73cf1d48708f8eff4ca5462cc24fd59a3227178356451cb31a1553a7ad9f5818d52da597171bfa49ef58b8259ff4e5a49ae89c1c3bd8f8a3feb4a
6
+ metadata.gz: 9ee4a95c41437dc33a6b9e7089ab76be8caf0055b06a50f60347258bbc1f487ddae10574c6b1b5f744a58ad91776af4555c3e67e8753cda7b59e6a27a4757665
7
+ data.tar.gz: 7bff1e16da379ec100973e0928c56b861c8c0fbf48705add34fe00e52e30da37655b93133516df78ac4c6b9fbcae3612ceb86c7baa5fa0ce5a2448e474d5cff3
@@ -24,7 +24,7 @@ class CloudTrail < Mapper
24
24
  end
25
25
 
26
26
  struct = OpenStruct.new(trail.to_h)
27
- struct.tags = client.list_tags({ resource_id_list: [trail.trail_arn] }).resource_tag_list.first.tags_list
27
+ struct.tags = client.list_tags({ resource_id_list: [trail.trail_arn] }).resource_tag_list.first.tags_list.map(&:to_h)
28
28
  struct.type = 'cloud_trail'
29
29
  struct.event_selectors = client.get_event_selectors({ trail_name: trail.name }).to_h
30
30
  struct.status = client.get_trail_status({ name: trail.name }).to_h
@@ -28,6 +28,7 @@ class CloudWatch < Mapper
28
28
  struct = OpenStruct.new(alarm.to_h)
29
29
  struct.type = 'metric_alarm'
30
30
  struct.arn = alarm.alarm_arn
31
+ struct.state_reason_data = alarm.state_reason_data&.parse_policy
31
32
 
32
33
  resources.push(struct.to_h)
33
34
  end
@@ -43,7 +43,7 @@ class ConfigService < Mapper
43
43
  response.configuration_recorders.each do |recorder|
44
44
  struct = OpenStruct.new(recorder.to_h)
45
45
  struct.type = 'configuration_recorder'
46
- struct.arn = "arn:aws:config:#{@region}:configuration_recorder/#{recorder.name}"
46
+ struct.arn = "arn:aws:config:#{@region}:#{@account}:configuration_recorder/#{recorder.name}"
47
47
 
48
48
  # describe_configuration_recorder_status (only accepts one recorder)
49
49
  @client.describe_configuration_recorder_status({ configuration_recorder_names: [recorder.name] }).each do |response|
@@ -55,8 +55,8 @@ class EC2 < Mapper
55
55
  log(response.context.operation_name, page)
56
56
 
57
57
  # reservations
58
- response.reservations.each_with_index do |reservation, page|
59
- log(response.context.operation_name, 'reservations', page)
58
+ response.reservations.each_with_index do |reservation, rpage|
59
+ log(response.context.operation_name, 'reservations', rpage)
60
60
 
61
61
  # instances
62
62
  reservation.instances.each do |instance|
@@ -20,6 +20,7 @@ class ElasticLoadBalancing < Mapper
20
20
  struct = OpenStruct.new(elb.to_h)
21
21
  struct.type = 'load_balancer'
22
22
  struct.arn = elb.dns_name
23
+ struct.load_balancer_version = 'v1'
23
24
 
24
25
  # describe_load_balancer_policies
25
26
  struct.policies = @client
@@ -20,6 +20,8 @@ class ElasticLoadBalancingV2 < Mapper
20
20
  struct = OpenStruct.new(elb.to_h)
21
21
  struct.type = 'load_balancer'
22
22
  struct.arn = elb.load_balancer_arn
23
+ struct.load_balancer_version = 'v2'
24
+ struct.load_balancer_type = elb.type
23
25
  struct.listeners = []
24
26
  struct.target_groups = []
25
27
 
@@ -22,6 +22,7 @@ class ElasticsearchService < Mapper
22
22
  # describe_elasticsearch_domains
23
23
  struct = OpenStruct.new(@client.describe_elasticsearch_domain({ domain_name: domain.domain_name }).domain_status.to_h)
24
24
  struct.type = 'domain'
25
+ struct.access_policies = struct.access_policies&.parse_policy
25
26
 
26
27
  resources.push(struct.to_h)
27
28
  end
@@ -85,7 +85,7 @@ class IAM < Mapper
85
85
  create_date: p.create_date
86
86
  }
87
87
  end
88
- end
88
+ end
89
89
 
90
90
  resources.push(struct.to_h)
91
91
  end
@@ -51,7 +51,7 @@ class KMS < Mapper
51
51
  log(response.context.operation_name, 'get_key_policy')
52
52
  struct.policy = @client
53
53
  .get_key_policy({ key_id: key.key_id, policy_name: 'default' })
54
- .policy
54
+ .policy.parse_policy
55
55
 
56
56
  # list_aliases
57
57
  log(response.context.operation_name, 'list_aliases')
@@ -67,6 +67,24 @@ class RDS < Mapper
67
67
  end
68
68
  end
69
69
 
70
+ #
71
+ # describe_db_cluster_snapshots
72
+ #
73
+ @client.describe_db_cluster_snapshots.each_with_index do |response, page|
74
+ log(response.context.operation_name, page)
75
+
76
+ response.db_cluster_snapshots.each do |snapshot|
77
+ log(response.context.operation_name, snapshot.db_cluster_snapshot_identifier)
78
+
79
+ struct = OpenStruct.new(snapshot.to_h)
80
+ struct.type = 'db_cluster_snapshot'
81
+ struct.arn = snapshot.db_cluster_snapshot_arn
82
+ struct.parent_id = snapshot.db_cluster_identifier
83
+
84
+ resources.push(struct.to_h)
85
+ end
86
+ end
87
+
70
88
  #
71
89
  # describe_db_engine_versions
72
90
  #
@@ -32,7 +32,7 @@ class Shield < Mapper
32
32
  struct = OpenStruct.new
33
33
  struct.type = 'contact_list'
34
34
  struct.arn = "arn:aws:shield:#{@region}:#{@account}:contact_list"
35
- struct.contacts = response.emergency_contact_list.map(&:to_h)
35
+ struct.contacts = response&.emergency_contact_list&.map(&:to_h)
36
36
 
37
37
  resources.push(struct.to_h)
38
38
  end
@@ -1,3 +1,3 @@
1
1
  module AwsRecon
2
- VERSION = "0.2.28"
2
+ VERSION = "0.2.33"
3
3
  end
data/readme.md CHANGED
@@ -54,13 +54,13 @@ To run locally, first install the gem:
54
54
 
55
55
  ```
56
56
  $ gem install aws_recon
57
- Fetching aws_recon-0.2.26.gem
57
+ Fetching aws_recon-0.2.28.gem
58
58
  Fetching aws-sdk-3.0.1.gem
59
59
  Fetching parallel-1.20.1.gem
60
60
  ...
61
61
  Successfully installed aws-sdk-3.0.1
62
62
  Successfully installed parallel-1.20.1
63
- Successfully installed aws_recon-0.2.26
63
+ Successfully installed aws_recon-0.2.28
64
64
  ```
65
65
 
66
66
  Or add it to your Gemfile using `bundle`:
@@ -72,7 +72,7 @@ Resolving dependencies...
72
72
  ...
73
73
  Using aws-sdk 3.0.1
74
74
  Using parallel-1.20.1
75
- Using aws_recon 0.2.26
75
+ Using aws_recon 0.2.28
76
76
  ```
77
77
 
78
78
  ## Usage
@@ -165,10 +165,13 @@ $ AWS_PROFILE=<profile> aws_recon -s S3,EC2 -r global,us-east-1,us-east-2
165
165
  $ AWS_PROFILE=<profile> aws_recon --services S3,EC2 --regions global,us-east-1,us-east-2
166
166
  ```
167
167
 
168
- Example [OpenCSPM](https://github.com/OpenCSPM/opencspm) formatted output.
168
+ Example [OpenCSPM](https://github.com/OpenCSPM/opencspm) formatted (NDJSON) output.
169
169
 
170
170
  ```
171
- $ AWS_PROFILE=<profile> aws_recon -s S3,EC2 -r global,us-east-1,us-east-2 -f custom > output.json
171
+ $ AWS_PROFILE=<profile> aws_recon -j \
172
+ -s S3,EC2 \
173
+ -r global,us-east-1,us-east-2 \
174
+ -f custom > output.json
172
175
  ```
173
176
 
174
177
  #### Errors
@@ -222,7 +225,7 @@ Most users will want to limit collection to relevant services and regions. Runni
222
225
  ```
223
226
  $ aws_recon -h
224
227
 
225
- AWS Recon - AWS Inventory Collector (0.2.26)
228
+ AWS Recon - AWS Inventory Collector (0.2.28)
226
229
 
227
230
  Usage: aws_recon [options]
228
231
  -r, --regions [REGIONS] Regions to scan, separated by comma (default: all)
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.2.28
4
+ version: 0.2.33
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: 2021-01-05 00:00:00.000000000 Z
12
+ date: 2021-01-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk