vaws 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +33 -33
- data/README.md +51 -0
- data/lib/vaws/aws/route53_describer.rb +15 -14
- data/lib/vaws/aws/security_group_describer.rb +14 -9
- data/lib/vaws/handlers/describer.rb +7 -5
- data/lib/vaws/version.rb +1 -1
- data/vaws.gemspec +2 -2
- metadata +7 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e328b98c6962547a8b484d493fbb7d253fdef2eaadcd5bcb233817dc04c9b273
|
4
|
+
data.tar.gz: b8b9af474656884071c3f4dac7269f718b31a4cb58fe1f0b3778de3c7c72d3bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed5d07e00d623e6a69e6336a202658055b8075ff4f9294c8baa446a208b6eff649257afbc76933cc757970df3e215c7d36f0371776a37ba8d3bdbb228f4ef36a
|
7
|
+
data.tar.gz: d2abaaf9d009bbeb35ca2293bf42acf3fbcb1176d871da8d9031552e5e0b2505d3d1e9daedfd1b59bb76e1784d0c10c7fb571b17d965c63303326be1b8086c87
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
vaws (0.
|
4
|
+
vaws (0.6.0)
|
5
5
|
aws-sdk-acm
|
6
6
|
aws-sdk-ec2
|
7
7
|
aws-sdk-ecs
|
@@ -15,61 +15,61 @@ GEM
|
|
15
15
|
remote: https://rubygems.org/
|
16
16
|
specs:
|
17
17
|
aws-eventstream (1.0.3)
|
18
|
-
aws-partitions (1.
|
19
|
-
aws-sdk-acm (1.
|
20
|
-
aws-sdk-core (~> 3, >= 3.
|
18
|
+
aws-partitions (1.281.0)
|
19
|
+
aws-sdk-acm (1.27.0)
|
20
|
+
aws-sdk-core (~> 3, >= 3.71.0)
|
21
21
|
aws-sigv4 (~> 1.1)
|
22
|
-
aws-sdk-core (3.
|
22
|
+
aws-sdk-core (3.90.1)
|
23
23
|
aws-eventstream (~> 1.0, >= 1.0.2)
|
24
|
-
aws-partitions (~> 1.0)
|
24
|
+
aws-partitions (~> 1, >= 1.239.0)
|
25
25
|
aws-sigv4 (~> 1.1)
|
26
26
|
jmespath (~> 1.0)
|
27
|
-
aws-sdk-ec2 (1.
|
28
|
-
aws-sdk-core (~> 3, >= 3.
|
27
|
+
aws-sdk-ec2 (1.148.0)
|
28
|
+
aws-sdk-core (~> 3, >= 3.71.0)
|
29
29
|
aws-sigv4 (~> 1.1)
|
30
|
-
aws-sdk-ecs (1.
|
31
|
-
aws-sdk-core (~> 3, >= 3.
|
30
|
+
aws-sdk-ecs (1.57.0)
|
31
|
+
aws-sdk-core (~> 3, >= 3.71.0)
|
32
32
|
aws-sigv4 (~> 1.1)
|
33
|
-
aws-sdk-elasticloadbalancingv2 (1.
|
34
|
-
aws-sdk-core (~> 3, >= 3.
|
33
|
+
aws-sdk-elasticloadbalancingv2 (1.40.1)
|
34
|
+
aws-sdk-core (~> 3, >= 3.71.0)
|
35
35
|
aws-sigv4 (~> 1.1)
|
36
|
-
aws-sdk-route53 (1.
|
37
|
-
aws-sdk-core (~> 3, >= 3.
|
36
|
+
aws-sdk-route53 (1.30.0)
|
37
|
+
aws-sdk-core (~> 3, >= 3.71.0)
|
38
38
|
aws-sigv4 (~> 1.1)
|
39
|
-
aws-sdk-ssm (1.
|
40
|
-
aws-sdk-core (~> 3, >= 3.
|
39
|
+
aws-sdk-ssm (1.71.0)
|
40
|
+
aws-sdk-core (~> 3, >= 3.71.0)
|
41
41
|
aws-sigv4 (~> 1.1)
|
42
|
-
aws-sigv4 (1.1.
|
42
|
+
aws-sigv4 (1.1.1)
|
43
43
|
aws-eventstream (~> 1.0, >= 1.0.2)
|
44
44
|
diff-lcs (1.3)
|
45
45
|
jmespath (1.4.0)
|
46
|
-
rake (
|
47
|
-
rspec (3.
|
48
|
-
rspec-core (~> 3.
|
49
|
-
rspec-expectations (~> 3.
|
50
|
-
rspec-mocks (~> 3.
|
51
|
-
rspec-core (3.
|
52
|
-
rspec-support (~> 3.
|
53
|
-
rspec-expectations (3.
|
46
|
+
rake (13.0.1)
|
47
|
+
rspec (3.9.0)
|
48
|
+
rspec-core (~> 3.9.0)
|
49
|
+
rspec-expectations (~> 3.9.0)
|
50
|
+
rspec-mocks (~> 3.9.0)
|
51
|
+
rspec-core (3.9.1)
|
52
|
+
rspec-support (~> 3.9.1)
|
53
|
+
rspec-expectations (3.9.0)
|
54
54
|
diff-lcs (>= 1.2.0, < 2.0)
|
55
|
-
rspec-support (~> 3.
|
56
|
-
rspec-mocks (3.
|
55
|
+
rspec-support (~> 3.9.0)
|
56
|
+
rspec-mocks (3.9.1)
|
57
57
|
diff-lcs (>= 1.2.0, < 2.0)
|
58
|
-
rspec-support (~> 3.
|
59
|
-
rspec-support (3.
|
58
|
+
rspec-support (~> 3.9.0)
|
59
|
+
rspec-support (3.9.2)
|
60
60
|
terminal-table (1.8.0)
|
61
61
|
unicode-display_width (~> 1.1, >= 1.1.1)
|
62
62
|
thor (0.20.3)
|
63
|
-
unicode-display_width (1.6.
|
63
|
+
unicode-display_width (1.6.1)
|
64
64
|
|
65
65
|
PLATFORMS
|
66
66
|
ruby
|
67
67
|
|
68
68
|
DEPENDENCIES
|
69
|
-
bundler (~>
|
70
|
-
rake (~>
|
69
|
+
bundler (~> 2.0)
|
70
|
+
rake (~> 13.0)
|
71
71
|
rspec (~> 3.0)
|
72
72
|
vaws!
|
73
73
|
|
74
74
|
BUNDLED WITH
|
75
|
-
1.
|
75
|
+
2.1.2
|
data/README.md
CHANGED
@@ -38,6 +38,21 @@ $ vaws ec2
|
|
38
38
|
$
|
39
39
|
```
|
40
40
|
|
41
|
+
### View Security Group
|
42
|
+
|
43
|
+
```bash
|
44
|
+
s$ bundle exec ruby exe/vaws sg
|
45
|
+
+----------------+----------------------+----------------------------------+----------+
|
46
|
+
| Name | Id | Inbound(Cidr|Securitygroup:Port) | Protocol |
|
47
|
+
+----------------+----------------------+----------------------------------+----------+
|
48
|
+
| allow_all | sg-00bc9e3b5b628e40a | sg-00bc9e3b5b628e40a:all | all |
|
49
|
+
| | | 1.2.3.4/32:all | all |
|
50
|
+
| global-lb | sg-09f5aede801b4ab4a | 0.0.0.0/0:80 | tcp |
|
51
|
+
| | | 0.0.0.0/0:443 | tcp |
|
52
|
+
+----------------+----------------------+----------------------------------+----------+
|
53
|
+
$
|
54
|
+
```
|
55
|
+
|
41
56
|
### View ALB
|
42
57
|
|
43
58
|
```bash
|
@@ -74,6 +89,42 @@ $ vaws vpc
|
|
74
89
|
+-----------------------+------------------+-------------------------+
|
75
90
|
```
|
76
91
|
|
92
|
+
### View Route53
|
93
|
+
|
94
|
+
```bash
|
95
|
+
$ vaws route53
|
96
|
+
+----------------------------------------------------------+-------+---------------------------------------------------------------------------------+--------+
|
97
|
+
| Fqdn | Type | Value | Ttl |
|
98
|
+
+----------------------------------------------------------+-------+---------------------------------------------------------------------------------+--------+
|
99
|
+
| st1t.com. | MX | 1 ASPMX.L.GOOGLE.COM | 60 |
|
100
|
+
| | | 5 ALT1.ASPMX.L.GOOGLE.COM | |
|
101
|
+
| | | 5 ALT2.ASPMX.L.GOOGLE.COM | |
|
102
|
+
| | | 10 ALT3.ASPMX.L.GOOGLE.COM | |
|
103
|
+
| | | 10 ALT4.ASPMX.L.GOOGLE.COM | |
|
104
|
+
| st1t.com. | NS | ns-468.awsdns-58.com. | 172800 |
|
105
|
+
| | | ns-599.awsdns-10.net. | |
|
106
|
+
| | | ns-2009.awsdns-59.co.uk. | |
|
107
|
+
| | | ns-1527.awsdns-62.org. | |
|
108
|
+
| st1t.com. | SOA | ns-468.awsdns-58.com. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400 | 900 |
|
109
|
+
| st1t.com. | TXT | "google-site-verification=hdXQC-HCpJ9nvG64sSLOADsnj-IDCmKu7uu83jyKbS8" | 60 |
|
110
|
+
| www.st1t.com. | CNAME | hatenablog.com. | 300 |
|
111
|
+
+----------------------------------------------------------+-------+---------------------------------------------------------------------------------+--------+
|
112
|
+
$
|
113
|
+
```
|
114
|
+
|
115
|
+
### SSM Parameter Store
|
116
|
+
|
117
|
+
```bash
|
118
|
+
$ vaws ssm
|
119
|
+
+-----------------------------------------------+--------------+---------+---------------------------+
|
120
|
+
| Path | Type | Version | LastModifyDate |
|
121
|
+
+-----------------------------------------------+--------------+---------+---------------------------+
|
122
|
+
| /st1t/hoge | String | 26 | 2020-03-01 12:49:54 +0900 |
|
123
|
+
| /st1t/fuga | String | 26 | 2020-03-01 12:49:54 +0900 |
|
124
|
+
+-----------------------------------------------+--------------+---------+---------------------------+
|
125
|
+
$
|
126
|
+
```
|
127
|
+
|
77
128
|
## License
|
78
129
|
|
79
130
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
@@ -17,29 +17,30 @@ module Vaws
|
|
17
17
|
get_hosted_zone
|
18
18
|
|
19
19
|
@r53_hosted_zone_ids.each do |zone_id|
|
20
|
-
|
21
|
-
|
22
|
-
records = @r53_client.list_resource_record_sets({ hosted_zone_id: "#{zone_id}", max_items: 1000 })
|
20
|
+
record_values = ''
|
21
|
+
records = @r53_client.list_resource_record_sets({ hosted_zone_id: "#{zone_id}", max_items: 1000 })
|
23
22
|
records.resource_record_sets.each do |record_sets|
|
24
|
-
record_name
|
25
|
-
record_type
|
26
|
-
record_ttl
|
27
|
-
|
28
|
-
|
29
|
-
|
23
|
+
record_name = record_sets.name
|
24
|
+
record_type = record_sets.type
|
25
|
+
record_ttl = record_sets.ttl
|
26
|
+
if record_sets.alias_target.nil?
|
27
|
+
record_sets.resource_records.each do |record|
|
28
|
+
record_values << "#{record.value.to_s}\n"
|
29
|
+
end
|
30
|
+
else
|
31
|
+
record_values = record_sets.alias_target.dns_name
|
30
32
|
end
|
31
|
-
rows << [record_name, record_type,
|
32
|
-
|
33
|
-
record_alias = ''
|
33
|
+
rows << [record_name, record_type, record_values, record_ttl]
|
34
|
+
record_values = ''
|
34
35
|
end
|
35
36
|
end
|
36
|
-
@term_table = Terminal::Table.new :headings => ['Fqdn', 'Type', 'Value', 'Ttl'
|
37
|
+
@term_table = Terminal::Table.new :headings => ['Fqdn', 'Type', 'Value', 'Ttl'], :rows => rows.sort
|
37
38
|
end
|
38
39
|
|
39
40
|
private
|
40
41
|
|
41
42
|
def get_hosted_zone
|
42
|
-
@r53_client.list_hosted_zones({ max_items:
|
43
|
+
@r53_client.list_hosted_zones({ max_items: 100 }).hosted_zones.each do |zone|
|
43
44
|
@r53_hosted_zone_ids << zone.id
|
44
45
|
end
|
45
46
|
end
|
@@ -1,41 +1,46 @@
|
|
1
1
|
require 'aws-sdk-ec2'
|
2
2
|
require 'vaws/aws/describer'
|
3
|
+
require 'json'
|
3
4
|
|
4
5
|
module Vaws
|
5
6
|
module Aws
|
6
7
|
class SecurityGroupDescriber < Describer
|
7
8
|
attr_reader :term_table
|
8
9
|
|
9
|
-
def initialize
|
10
|
+
def initialize
|
10
11
|
@ec2_client = ::Aws::EC2::Client.new
|
11
12
|
@term_table = ''
|
12
|
-
@is_in = is_in
|
13
|
-
@is_out = is_out
|
14
13
|
end
|
15
14
|
|
16
15
|
def set_basic_info
|
17
16
|
rows = []
|
18
17
|
resp_sg = @ec2_client.describe_security_groups
|
19
|
-
|
20
18
|
resp_sg.security_groups.each do |security_group|
|
21
19
|
group_name = security_group.group_name
|
22
20
|
group_id = security_group.group_id
|
23
21
|
|
22
|
+
# Inboundルール
|
24
23
|
security_group.ip_permissions.each do |ip_permission|
|
25
|
-
ip_permission.from_port.nil? ? from_port = "
|
26
|
-
ip_permission.ip_protocol == "-1" ? ip_protocol = "
|
24
|
+
ip_permission.from_port.nil? ? from_port = "all" : from_port = ip_permission.from_port.to_s
|
25
|
+
ip_permission.ip_protocol == "-1" ? ip_protocol = "all" : ip_protocol = ip_permission.ip_protocol
|
27
26
|
|
27
|
+
# セキュリティグループによるルール
|
28
28
|
ip_permission.user_id_group_pairs.each do |user_id_group_pair|
|
29
29
|
cidr_ip = user_id_group_pair.group_id
|
30
|
-
rows << [group_name, group_id, from_port,
|
30
|
+
rows << [group_name, group_id, "#{cidr_ip}:#{from_port}", ip_protocol]
|
31
|
+
group_name = ''
|
32
|
+
group_id = ''
|
31
33
|
end
|
34
|
+
# IPアドレスによるルール
|
32
35
|
ip_permission.ip_ranges.each do |ip_range|
|
33
36
|
cidr_ip = ip_range.cidr_ip
|
34
|
-
rows << [group_name, group_id, from_port,
|
37
|
+
rows << [group_name, group_id, "#{cidr_ip}:#{from_port}", ip_protocol]
|
38
|
+
group_name = ''
|
39
|
+
group_id = ''
|
35
40
|
end
|
36
41
|
end
|
37
42
|
end
|
38
|
-
@term_table = Terminal::Table.new :headings => ['Name', 'Id', '
|
43
|
+
@term_table = Terminal::Table.new :headings => ['Name', 'Id', 'Inbound(Cidr|Securitygroup:Port)', 'Protocol'], :rows => rows
|
39
44
|
end
|
40
45
|
end
|
41
46
|
end
|
@@ -62,13 +62,9 @@ module Vaws
|
|
62
62
|
end
|
63
63
|
|
64
64
|
desc 'sg', 'View Security Group'
|
65
|
-
option :in, :aliases => 'i', :type => :boolean, banner: "Inbound security group"
|
66
|
-
option :out, :aliases => 'o', :type => :boolean, banner: "Outbound security group"
|
67
65
|
|
68
66
|
def sg
|
69
|
-
|
70
|
-
is_out = options[:out] if options[:out]
|
71
|
-
sg_desc = Vaws::Aws::SecurityGroupDescriber.new(is_in, is_out)
|
67
|
+
sg_desc = Vaws::Aws::SecurityGroupDescriber.new
|
72
68
|
sg_desc.set_basic_info
|
73
69
|
puts sg_desc.term_table
|
74
70
|
end
|
@@ -88,6 +84,12 @@ module Vaws
|
|
88
84
|
ssm_desc.set_basic_info
|
89
85
|
puts ssm_desc.term_table
|
90
86
|
end
|
87
|
+
|
88
|
+
desc 'version', 'View vaws version'
|
89
|
+
|
90
|
+
def version
|
91
|
+
puts VERSION
|
92
|
+
end
|
91
93
|
end
|
92
94
|
end
|
93
95
|
end
|
data/lib/vaws/version.rb
CHANGED
data/vaws.gemspec
CHANGED
@@ -25,8 +25,8 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
26
|
spec.require_paths = ["lib"]
|
27
27
|
|
28
|
-
spec.add_development_dependency "bundler", "~>
|
29
|
-
spec.add_development_dependency "rake", "~>
|
28
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
29
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
30
30
|
spec.add_development_dependency "rspec", "~> 3.0"
|
31
31
|
spec.add_runtime_dependency "thor", "~> 0.20.3"
|
32
32
|
spec.add_runtime_dependency "aws-sdk-ec2"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vaws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shota Ito
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '13.0'
|
34
34
|
type: :development
|
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: '13.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -220,8 +220,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
220
220
|
- !ruby/object:Gem::Version
|
221
221
|
version: '0'
|
222
222
|
requirements: []
|
223
|
-
|
224
|
-
rubygems_version: 2.7.6.2
|
223
|
+
rubygems_version: 3.1.2
|
225
224
|
signing_key:
|
226
225
|
specification_version: 4
|
227
226
|
summary: The vaws command simplifies the display of AWS resources.
|