awful 0.0.180 → 0.0.181
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/lib/awful/certs.rb +15 -1
- data/lib/awful/iam.rb +64 -0
- data/lib/awful/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57375515263da3b59aa6be96f3b22961cf462f08
|
4
|
+
data.tar.gz: aa3fe03470511d3127f15ade33a1497bbc2ae75a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec4213f8ce0ca3006ea5c372054dfa087fbfbcb72f895312b8b39825eb88c759b2e0738364d7f5b6f49ead1cf859d18a0a36f7babee15d59fed38d7f2cf41cd0
|
7
|
+
data.tar.gz: c088cc2c848eda7b20c737c8088b27a4f6cb1e11d30f04171c05c5c884b6f402e635f070859c64b6958264b36d381c107ccd0756983983f060b247bf5ca113c7
|
data/lib/awful/certs.rb
CHANGED
@@ -10,6 +10,20 @@ module Awful
|
|
10
10
|
def iam
|
11
11
|
@iam ||= Aws::IAM::Client.new
|
12
12
|
end
|
13
|
+
|
14
|
+
def color_date(date)
|
15
|
+
diff = date - Time.now
|
16
|
+
set_color(
|
17
|
+
date,
|
18
|
+
if diff < 0
|
19
|
+
:red
|
20
|
+
elsif diff < (60*60*24*30)
|
21
|
+
:yellow
|
22
|
+
else
|
23
|
+
:green
|
24
|
+
end
|
25
|
+
)
|
26
|
+
end
|
13
27
|
end
|
14
28
|
|
15
29
|
desc 'ls [PATH_PREFIX]', 'list server certificates'
|
@@ -32,7 +46,7 @@ module Awful
|
|
32
46
|
c.path,
|
33
47
|
c.server_certificate_id,
|
34
48
|
c.upload_date,
|
35
|
-
c.expiration,
|
49
|
+
color_date(c.expiration),
|
36
50
|
]
|
37
51
|
}.sort
|
38
52
|
elsif options[:arns]
|
data/lib/awful/iam.rb
CHANGED
@@ -2,11 +2,19 @@ require 'json'
|
|
2
2
|
|
3
3
|
module Awful
|
4
4
|
class IAM < Cli
|
5
|
+
COLORS = {
|
6
|
+
Active: :green,
|
7
|
+
Inactive: :red,
|
8
|
+
}
|
5
9
|
|
6
10
|
no_commands do
|
7
11
|
def iam
|
8
12
|
@iam ||= Aws::IAM::Client.new
|
9
13
|
end
|
14
|
+
|
15
|
+
def color(string)
|
16
|
+
set_color(string, COLORS.fetch(string.to_sym, :yellow))
|
17
|
+
end
|
10
18
|
end
|
11
19
|
|
12
20
|
desc 'users', 'list users'
|
@@ -93,6 +101,62 @@ module Awful
|
|
93
101
|
end
|
94
102
|
end
|
95
103
|
|
104
|
+
desc 'keys', 'list access keys'
|
105
|
+
method_option :long, aliases: '-l', type: :boolean, default: false, desc: 'long listing'
|
106
|
+
method_option :user, aliases: '-u', type: :string, default: nil, desc: 'show different user'
|
107
|
+
method_option :delete, type: :string, default: nil, desc: 'delete named key'
|
108
|
+
def keys
|
109
|
+
if options[:delete]
|
110
|
+
if yes?("Really delete key #{options[:delete]}?", :yellow)
|
111
|
+
iam.delete_access_key(access_key_id: options[:delete])
|
112
|
+
end
|
113
|
+
return
|
114
|
+
end
|
115
|
+
|
116
|
+
## list keys
|
117
|
+
iam.list_access_keys(user_name: options[:user]).access_key_metadata.output do |keys|
|
118
|
+
if options[:long]
|
119
|
+
print_table keys.map{ |k|
|
120
|
+
[k.user_name, k.access_key_id, k.create_date, color(k.status)]
|
121
|
+
}
|
122
|
+
else
|
123
|
+
puts keys.map(&:access_key_id)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
desc 'old', 'report on old access keys'
|
129
|
+
method_option :days, aliases: '-d', type: :numeric, default: 90, desc: 'age in days to treat as old'
|
130
|
+
method_option :all, aliases: '-a', type: :boolean, default: false, desc: 'list all users'
|
131
|
+
def old
|
132
|
+
iam.list_users.users.map do |u|
|
133
|
+
iam.list_access_keys(user_name: u.user_name).access_key_metadata.map do |k|
|
134
|
+
age = ((Time.now - k.create_date)/(60*60*24)).to_i
|
135
|
+
too_old = age > options[:days]
|
136
|
+
if options[:all] || too_old
|
137
|
+
[k.user_name, k.create_date, set_color("#{age} days", too_old ? :red : :green)]
|
138
|
+
else
|
139
|
+
nil
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end.flatten(1).reject(&:nil?).output do |list|
|
143
|
+
print_table list
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
desc 'rotate', 'rotate access key for user'
|
148
|
+
method_option :user, aliases: '-u', type: :string, default: nil, desc: 'show different user'
|
149
|
+
def rotate
|
150
|
+
key = iam.create_access_key(user_name: options[:user]).access_key
|
151
|
+
puts(
|
152
|
+
"Your new credentials:",
|
153
|
+
"AWS_ACCESS_KEY_ID=#{key.access_key_id}",
|
154
|
+
"AWS_SECRET_ACCESS_KEY=#{key.secret_access_key}",
|
155
|
+
)
|
156
|
+
rescue Aws::IAM::Errors::LimitExceeded
|
157
|
+
warn 'You have two access keys: please delete one and run this command again.'
|
158
|
+
end
|
159
|
+
|
96
160
|
end
|
97
161
|
|
98
162
|
end
|
data/lib/awful/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awful
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.181
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ric Lister
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|