aws_recon 0.2.24 → 0.2.29
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +17 -1
- data/lib/aws_recon/collectors/accessanalyzer.rb +5 -0
- data/lib/aws_recon/collectors/acm.rb +5 -0
- data/lib/aws_recon/collectors/apigateway.rb +5 -0
- data/lib/aws_recon/collectors/apigatewayv2.rb +5 -0
- data/lib/aws_recon/collectors/applicationautoscaling.rb +5 -0
- data/lib/aws_recon/collectors/athena.rb +5 -0
- data/lib/aws_recon/collectors/autoscaling.rb +5 -0
- data/lib/aws_recon/collectors/backup.rb +5 -0
- data/lib/aws_recon/collectors/cloudformation.rb +5 -0
- data/lib/aws_recon/collectors/cloudfront.rb +5 -0
- data/lib/aws_recon/collectors/cloudtrail.rb +5 -0
- data/lib/aws_recon/collectors/cloudwatch.rb +5 -0
- data/lib/aws_recon/collectors/cloudwatchlogs.rb +5 -0
- data/lib/aws_recon/collectors/codebuild.rb +5 -0
- data/lib/aws_recon/collectors/codepipeline.rb +29 -9
- data/lib/aws_recon/collectors/configservice.rb +5 -0
- data/lib/aws_recon/collectors/directconnect.rb +5 -0
- data/lib/aws_recon/collectors/{directyservice.rb → directoryservice.rb} +5 -0
- data/lib/aws_recon/collectors/dms.rb +5 -0
- data/lib/aws_recon/collectors/dynamodb.rb +5 -0
- data/lib/aws_recon/collectors/ec2.rb +6 -3
- data/lib/aws_recon/collectors/ecr.rb +8 -1
- data/lib/aws_recon/collectors/ecs.rb +12 -9
- data/lib/aws_recon/collectors/efs.rb +5 -0
- data/lib/aws_recon/collectors/eks.rb +5 -0
- data/lib/aws_recon/collectors/elasticache.rb +5 -0
- data/lib/aws_recon/collectors/elasticloadbalancing.rb +5 -0
- data/lib/aws_recon/collectors/elasticloadbalancingv2.rb +5 -0
- data/lib/aws_recon/collectors/elasticsearch.rb +5 -0
- data/lib/aws_recon/collectors/emr.rb +5 -0
- data/lib/aws_recon/collectors/firehose.rb +5 -0
- data/lib/aws_recon/collectors/guardduty.rb +5 -2
- data/lib/aws_recon/collectors/iam.rb +9 -2
- data/lib/aws_recon/collectors/kafka.rb +5 -0
- data/lib/aws_recon/collectors/kinesis.rb +5 -0
- data/lib/aws_recon/collectors/kms.rb +7 -1
- data/lib/aws_recon/collectors/lambda.rb +5 -0
- data/lib/aws_recon/collectors/lightsail.rb +5 -0
- data/lib/aws_recon/collectors/organizations.rb +7 -1
- data/lib/aws_recon/collectors/rds.rb +7 -0
- data/lib/aws_recon/collectors/redshift.rb +5 -0
- data/lib/aws_recon/collectors/route53.rb +5 -0
- data/lib/aws_recon/collectors/route53domains.rb +5 -0
- data/lib/aws_recon/collectors/s3.rb +8 -1
- data/lib/aws_recon/collectors/sagemaker.rb +25 -1
- data/lib/aws_recon/collectors/secretsmanager.rb +5 -0
- data/lib/aws_recon/collectors/securityhub.rb +7 -1
- data/lib/aws_recon/collectors/servicequotas.rb +7 -1
- data/lib/aws_recon/collectors/ses.rb +5 -0
- data/lib/aws_recon/collectors/shield.rb +8 -2
- data/lib/aws_recon/collectors/sns.rb +5 -0
- data/lib/aws_recon/collectors/sqs.rb +6 -1
- data/lib/aws_recon/collectors/ssm.rb +5 -0
- data/lib/aws_recon/collectors/support.rb +7 -1
- data/lib/aws_recon/collectors/transfer.rb +5 -0
- data/lib/aws_recon/collectors/wafv2.rb +5 -0
- data/lib/aws_recon/collectors/workspaces.rb +5 -0
- data/lib/aws_recon/collectors/xray.rb +5 -0
- data/lib/aws_recon/lib/mapper.rb +8 -6
- data/lib/aws_recon/lib/patch.rb +2 -0
- data/lib/aws_recon/options.rb +12 -6
- data/lib/aws_recon/services.yaml +23 -0
- data/lib/aws_recon/version.rb +1 -1
- data/readme.md +84 -37
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a607b768fb5220d5db2fb904b74a06669ac5f3b966260bd401cc63eed5fc0c66
|
4
|
+
data.tar.gz: 4798d7b5d6ee9ec3353a2cb0d5a00d284102030b46b2a0a66637d0741a439f9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4846c6ec9026d462b18a9ccecd0efa628d61b06431568c80d11c6b845fba94b964f564fb3ad018cfc2c3786ba57a7faf6080aba6617905d6fb3003b53ad21034
|
7
|
+
data.tar.gz: 4de17a7300f269790a9406788943c8260617022914a3b0c9e84e2f3a1b8557552a7ada8b4f0681442a9cba70784f2309c4a395b4fc4e4e4755dc73fdbaa52cb0
|
data/.rubocop.yml
CHANGED
@@ -9,4 +9,20 @@
|
|
9
9
|
#
|
10
10
|
# See https://docs.rubocop.org/rubocop/configuration
|
11
11
|
Layout/LineLength:
|
12
|
-
Max:
|
12
|
+
Max: 100
|
13
|
+
Style/FrozenStringLiteralComment:
|
14
|
+
EnforcedStyle: always_true
|
15
|
+
Safe: true
|
16
|
+
SafeAutoCorrect: true
|
17
|
+
Style/ClassAndModuleChildren:
|
18
|
+
Enabled: false
|
19
|
+
Metrics/BlockLength:
|
20
|
+
Enabled: false
|
21
|
+
Metrics/MethodLength:
|
22
|
+
Enabled: false
|
23
|
+
Metrics/PerceivedComplexity:
|
24
|
+
Enabled: false
|
25
|
+
Metrics/CyclomaticComplexity:
|
26
|
+
Enabled: false
|
27
|
+
Metrics/AbcSize:
|
28
|
+
Enabled: false
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
#
|
4
|
+
# Collect CodePipeline resources
|
5
|
+
#
|
1
6
|
class CodePipeline < Mapper
|
2
7
|
#
|
3
8
|
# Returns an array of resources.
|
@@ -8,20 +13,35 @@ class CodePipeline < Mapper
|
|
8
13
|
#
|
9
14
|
# list_pipelines
|
10
15
|
#
|
11
|
-
|
12
|
-
|
16
|
+
begin
|
17
|
+
@client.list_pipelines.each_with_index do |response, page|
|
18
|
+
log(response.context.operation_name, page)
|
13
19
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
+
# get_pipeline
|
21
|
+
response.pipelines.each do |pipeline|
|
22
|
+
resp = @client.get_pipeline(name: pipeline.name)
|
23
|
+
struct = OpenStruct.new(resp.pipeline.to_h)
|
24
|
+
struct.type = 'pipeline'
|
25
|
+
struct.arn = resp.metadata.pipeline_arn
|
20
26
|
|
21
|
-
|
27
|
+
resources.push(struct.to_h)
|
28
|
+
end
|
22
29
|
end
|
30
|
+
rescue Aws::CodePipeline::Errors::ServiceError => e
|
31
|
+
log_error(e.code)
|
32
|
+
|
33
|
+
raise e unless suppressed_errors.include?(e.code) && !@options.quit_on_exception
|
23
34
|
end
|
24
35
|
|
25
36
|
resources
|
26
37
|
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
# not an error
|
42
|
+
def suppressed_errors
|
43
|
+
%w[
|
44
|
+
AccessDeniedException
|
45
|
+
]
|
46
|
+
end
|
27
47
|
end
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
#
|
4
|
+
# Collect EC2 resources
|
5
|
+
#
|
1
6
|
class EC2 < Mapper
|
2
7
|
#
|
3
8
|
# Returns an array of resources.
|
@@ -71,9 +76,7 @@ class EC2 < Mapper
|
|
71
76
|
if user_data_raw
|
72
77
|
user_data = Base64.decode64(user_data_raw)
|
73
78
|
|
74
|
-
if user_data.force_encoding('UTF-8').ascii_only?
|
75
|
-
struct.user_data = user_data
|
76
|
-
end
|
79
|
+
struct.user_data = user_data if user_data.force_encoding('UTF-8').ascii_only?
|
77
80
|
end
|
78
81
|
end
|
79
82
|
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
#
|
4
|
+
# Collect ECR resources
|
5
|
+
#
|
1
6
|
class ECR < Mapper
|
2
7
|
#
|
3
8
|
# Returns an array of resources.
|
@@ -19,7 +24,9 @@ class ECR < Mapper
|
|
19
24
|
.get_repository_policy({ repository_name: repo.repository_name }).policy_text.parse_policy
|
20
25
|
|
21
26
|
rescue Aws::ECR::Errors::ServiceError => e
|
22
|
-
|
27
|
+
log_error(e.code)
|
28
|
+
|
29
|
+
raise e unless suppressed_errors.include?(e.code) && !@options.quit_on_exception
|
23
30
|
ensure
|
24
31
|
resources.push(struct.to_h)
|
25
32
|
end
|
@@ -1,31 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
#
|
4
|
+
# Collect ECS resources
|
5
|
+
#
|
1
6
|
class ECS < Mapper
|
2
7
|
#
|
3
8
|
# Returns an array of resources.
|
4
9
|
#
|
5
|
-
# TODO: test live
|
6
|
-
#
|
7
10
|
def collect
|
8
11
|
resources = []
|
9
12
|
|
10
13
|
#
|
11
|
-
#
|
14
|
+
# list_clusters
|
12
15
|
#
|
13
|
-
@client.
|
16
|
+
@client.list_clusters.each_with_index do |response, page|
|
14
17
|
log(response.context.operation_name, page)
|
15
18
|
|
16
|
-
response.
|
17
|
-
struct = OpenStruct.new(cluster.to_h)
|
19
|
+
response.cluster_arns.each do |cluster|
|
20
|
+
struct = OpenStruct.new(@client.describe_clusters({ clusters: [cluster] }).clusters.first.to_h)
|
18
21
|
struct.type = 'cluster'
|
19
|
-
struct.arn = cluster
|
22
|
+
struct.arn = cluster
|
20
23
|
struct.tasks = []
|
21
24
|
|
22
25
|
# list_tasks
|
23
|
-
@client.list_tasks({ cluster: cluster
|
26
|
+
@client.list_tasks({ cluster: cluster }).each_with_index do |response, page|
|
24
27
|
log(response.context.operation_name, 'list_tasks', page)
|
25
28
|
|
26
29
|
# describe_tasks
|
27
30
|
response.task_arns.each do |task_arn|
|
28
|
-
@client.describe_tasks({ cluster: cluster
|
31
|
+
@client.describe_tasks({ cluster: cluster, tasks: [task_arn] }).tasks.each do |task|
|
29
32
|
struct.tasks.push(task)
|
30
33
|
end
|
31
34
|
end
|