aws-mfa 0.3.0 → 0.3.2
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/bin/aws-mfa +2 -0
- data/lib/aws_mfa.rb +18 -2
- data/lib/aws_mfa/shell_command.rb +14 -0
- data/lib/aws_mfa/shell_command_result.rb +18 -0
- metadata +15 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e529f0ad78a90cfd6692e5a2a73f037701e1212
|
4
|
+
data.tar.gz: 3ef7f95f65837e93ba3c6a2c36e9279f9fd38be9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4922a7081513a55505a136498b8d24ac24d5ca33873eb940e62a047d7a48fbeb92023d932f6904518c04b13cd216206a82940cab79259bf91a74fd04a7ddc70c
|
7
|
+
data.tar.gz: d91fdce8ce9c9ec6560ffa436c5324808ec5c0f5dd4c7a3195f383943878caf74ffeb8097ff3026bf10b0589dd0573e9f648ec2a35a7d517bac3593706231c5a
|
data/bin/aws-mfa
CHANGED
data/lib/aws_mfa.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'aws_mfa/errors'
|
3
|
+
require 'aws_mfa/shell_command'
|
4
|
+
require 'aws_mfa/shell_command_result'
|
3
5
|
|
4
6
|
class AwsMfa
|
5
7
|
attr_reader :aws_config_dir
|
@@ -72,7 +74,15 @@ class AwsMfa
|
|
72
74
|
end
|
73
75
|
|
74
76
|
def mfa_devices(profile='default')
|
75
|
-
@mfa_devices ||=
|
77
|
+
@mfa_devices ||= begin
|
78
|
+
list_mfa_devices_command = "aws --profile #{profile} --output json iam list-mfa-devices"
|
79
|
+
result = AwsMfa::ShellCommand.new(list_mfa_devices_command).call
|
80
|
+
if result.succeeded?
|
81
|
+
JSON.parse(result.output).fetch('MFADevices')
|
82
|
+
else
|
83
|
+
raise Errors::Error, 'There was a problem fetching MFA devices from AWS'
|
84
|
+
end
|
85
|
+
end
|
76
86
|
end
|
77
87
|
|
78
88
|
def write_arn_to_file(arn_file, arn)
|
@@ -104,7 +114,13 @@ class AwsMfa
|
|
104
114
|
def load_credentials_from_aws(arn, profile='default')
|
105
115
|
code = request_code_from_user
|
106
116
|
unset_environment
|
107
|
-
|
117
|
+
credentials_command = "aws --profile #{profile} --output json sts get-session-token --serial-number #{arn} --token-code #{code}"
|
118
|
+
result = AwsMfa::ShellCommand.new(credentials_command).call
|
119
|
+
if result.succeeded?
|
120
|
+
result.output
|
121
|
+
else
|
122
|
+
raise Errors::InvalidCode, 'There was a problem validating the MFA code with AWS'
|
123
|
+
end
|
108
124
|
end
|
109
125
|
|
110
126
|
def write_credentials_to_file(credentials_file, credentials)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class AwsMfa
|
2
|
+
class ShellCommandResult
|
3
|
+
attr_reader :output
|
4
|
+
|
5
|
+
def initialize(command_output, process_status)
|
6
|
+
@output = command_output
|
7
|
+
@process_status = process_status
|
8
|
+
end
|
9
|
+
|
10
|
+
def succeeded?
|
11
|
+
process_status.success?
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
attr_reader :process_status
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-mfa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Pitts
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.1'
|
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
26
|
version: '3.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: fakefs
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0.6'
|
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
40
|
version: '0.6'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: simplecov
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0.9'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.9'
|
55
55
|
description: Run AWS commands with MFA
|
@@ -59,9 +59,11 @@ executables:
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
-
- bin/aws-mfa
|
63
62
|
- lib/aws_mfa.rb
|
64
63
|
- lib/aws_mfa/errors.rb
|
64
|
+
- lib/aws_mfa/shell_command.rb
|
65
|
+
- lib/aws_mfa/shell_command_result.rb
|
66
|
+
- bin/aws-mfa
|
65
67
|
homepage: http://www.github.com/lonelyplanet/aws-mfa
|
66
68
|
licenses:
|
67
69
|
- Apache-2.0
|
@@ -72,19 +74,20 @@ require_paths:
|
|
72
74
|
- lib
|
73
75
|
required_ruby_version: !ruby/object:Gem::Requirement
|
74
76
|
requirements:
|
75
|
-
- -
|
77
|
+
- - '>='
|
76
78
|
- !ruby/object:Gem::Version
|
77
79
|
version: '0'
|
78
80
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
81
|
requirements:
|
80
|
-
- -
|
82
|
+
- - '>='
|
81
83
|
- !ruby/object:Gem::Version
|
82
84
|
version: '0'
|
83
85
|
requirements:
|
84
86
|
- aws-cli
|
85
87
|
rubyforge_project:
|
86
|
-
rubygems_version: 2.
|
88
|
+
rubygems_version: 2.0.14
|
87
89
|
signing_key:
|
88
90
|
specification_version: 4
|
89
91
|
summary: Run AWS commands with MFA
|
90
92
|
test_files: []
|
93
|
+
has_rdoc:
|