aws_runas 0.3.1 → 0.4.0
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.gitignore +2 -0
- data/.travis.yml +3 -2
- data/CHANGELOG.md +11 -0
- data/README.md +5 -0
- data/aws_runas.gemspec +2 -2
- data/certs/vancluever.pem +15 -15
- data/lib/aws_runas/cli.rb +2 -6
- data/lib/aws_runas/config.rb +1 -0
- data/lib/aws_runas/main.rb +1 -1
- data/lib/aws_runas/utils.rb +42 -1
- data/lib/aws_runas/version.rb +1 -1
- data/spec/aws_runas/main_spec.rb +0 -10
- data/spec/aws_runas/utils_spec.rb +65 -0
- data/spec/helpers/files/bashrc +1 -0
- data/spec/helpers/utils_spec.rb +15 -0
- metadata +24 -20
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: af8ca683b13de341202e80a4e5ba6db77eda5903
|
|
4
|
+
data.tar.gz: de6f9fcd9160ffb9ed9bc31ed895f43ef489ea7f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ef6af6dd0f335c650c817b41d87f0d81f113a907d44cacf2cde7080bb5fcbdabf19b99a1a6a844ae0bff7f351d1849b805d6eeafa244c636c934cff4318712c3
|
|
7
|
+
data.tar.gz: d69007d2fedddfaae682f07cc565ad7bb9a226275ba2420a7b20db6662a2f45b684dee8d115b1c2d71ab2b0edfc36342079f0d08dce960636bef5425e0fd17d0
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data.tar.gz.sig
CHANGED
|
Binary file
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
## v0.4.0
|
|
2
|
+
|
|
3
|
+
* Dropping support for Ruby 2.1. You will need at least Ruby 2.2.6 to be using
|
|
4
|
+
this gem now. If you have a version below this, please use a v0.3.x version.
|
|
5
|
+
* MFA entry is no longer hidden from the terminal - you will see the digits you
|
|
6
|
+
enter now.
|
|
7
|
+
* Added a special indicator to `bash` prompts when running interactively. This
|
|
8
|
+
prompt displays your running profile, like so: `(AWS:default)`. When running
|
|
9
|
+
via --no-role, the indicator is just `(AWS)`. This should help to distinguish
|
|
10
|
+
any AWS shells you may be running from regular ones.
|
|
11
|
+
|
|
1
12
|
## v0.3.1
|
|
2
13
|
|
|
3
14
|
This update sets `AWS_SDK_CONFIG_OPT_OUT` before the `aws-sdk` Ruby gem is
|
data/README.md
CHANGED
|
@@ -23,6 +23,11 @@ thing, but there are some differentiators in this gem:
|
|
|
23
23
|
interactive shell sessions (by supplying no commands).
|
|
24
24
|
* MFA will be auto-detected and only prompted for if necessary (allowing one
|
|
25
25
|
to assume a role that does not have a MFA serial supplied).
|
|
26
|
+
* Session tokens can be acquired without assuming a role by adding the
|
|
27
|
+
appropriate `mfa_serial` into the `[default]` profile and running `aws-runas`
|
|
28
|
+
with `--no-role`. Subsequent uses of `aws-runas` after this will not prompt
|
|
29
|
+
you for MFA (useful for tooling that needs to assume multiple roles off the
|
|
30
|
+
same session token).
|
|
26
31
|
|
|
27
32
|
Usage
|
|
28
33
|
------
|
data/aws_runas.gemspec
CHANGED
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
|
24
24
|
spec.description = 'Run a command or shell under an assumed AWS IAM role'
|
|
25
25
|
spec.summary = spec.description
|
|
26
26
|
spec.homepage = 'https://github.com/vancluever/aws-runas'
|
|
27
|
-
spec.license = 'Apache
|
|
27
|
+
spec.license = 'Apache-2.0'
|
|
28
28
|
|
|
29
29
|
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
|
30
30
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
@@ -35,7 +35,7 @@ Gem::Specification.new do |spec|
|
|
|
35
35
|
spec.cert_chain = ['certs/vancluever.pem']
|
|
36
36
|
spec.signing_key = File.expand_path('~/.ssh/gem-private_key.pem') if $PROGRAM_NAME =~ /gem\z/
|
|
37
37
|
|
|
38
|
-
spec.required_ruby_version = ['>= 2.
|
|
38
|
+
spec.required_ruby_version = ['>= 2.2.6']
|
|
39
39
|
|
|
40
40
|
spec.add_dependency 'aws-sdk', '~> 2.6'
|
|
41
41
|
spec.add_dependency 'inifile', '~> 3.0'
|
data/certs/vancluever.pem
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
|
2
2
|
MIIDjjCCAnagAwIBAgIBATANBgkqhkiG9w0BAQUFADBGMQ8wDQYDVQQDDAZjaHJp
|
|
3
3
|
c20xHjAcBgoJkiaJk/IsZAEZFg52YW5jbHVldmVydGVjaDETMBEGCgmSJomT8ixk
|
|
4
|
-
|
|
4
|
+
ARkWA2NvbTAeFw0xNzAzMTYxNjM0MTZaFw0xODAzMTYxNjM0MTZaMEYxDzANBgNV
|
|
5
5
|
BAMMBmNocmlzbTEeMBwGCgmSJomT8ixkARkWDnZhbmNsdWV2ZXJ0ZWNoMRMwEQYK
|
|
6
6
|
CZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
3i76LgHtAqSINqsk+1joj4bx4Mwk2Dgc5HMSe2MUAUzBxCXMDdlSSSJMBB8ZTXbf
|
|
8
|
+
uKreoDESTVLQlPm+RnsTDZpMMurznYGq15RrstD8pkxCre6QiGY1Ujwh/qdQQ65G
|
|
9
|
+
xULqYRSpikriJl8mHyUOxz2A56os/sTIzvfdNdC0y3wMUmPOQZMzsLxcxBT9rvtm
|
|
10
|
+
ME3IS5nR9u35X9O0CtNtvP+9VhJ/8mpSaYh2t0FigWJggvB9pRyT7D2YI0y1NpuW
|
|
11
|
+
w3FQeGwDZkvpI6dQxgQKuwNMIZVs39QSu5ltzlrjkFhm4mJKf5Zf1hVjMfKKWJSM
|
|
12
|
+
BDYULea2Iv+fpGU2SkhrSwIDAQABo4GGMIGDMAkGA1UdEwQCMAAwCwYDVR0PBAQD
|
|
13
|
+
AgSwMB0GA1UdDgQWBBRJbzaO73nDGmYlgYL+7tEDhL6+FjAkBgNVHREEHTAbgRlj
|
|
14
14
|
aHJpc21AdmFuY2x1ZXZlcnRlY2guY29tMCQGA1UdEgQdMBuBGWNocmlzbUB2YW5j
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
bHVldmVydGVjaC5jb20wDQYJKoZIhvcNAQEFBQADggEBALVY07yDy4um9cYp0ku9
|
|
16
|
+
WMZLWUwsxXsqmhnKcKa552NWhrdnjy/jCdc1fWcsyF60X5FZ4OEIHB2WubTa8/Ty
|
|
17
|
+
fWW/FNQMxAYNUzO8XBZGuE/5m8V3dJL8AlUiuiDLfZoeQAVe6zeaeBWYJenxNBRS
|
|
18
|
+
8oLbWQukwSlOP62gMme5mVXM0NKc/MeO2wQSRJXjYoGdDCfqgaIImPg7ExME6Fw+
|
|
19
|
+
g09hCEeualN7su6OZYCUknxeGDmCvfO5fQlGmTzAVewWgGApG7XUvM0gJXV8ks0+
|
|
20
|
+
80WBA6xKwX0zwURD8J7WNieL2iY5AhBg26cHuFLMQGTCyNEeZHZHnJhCwuBcnV1w
|
|
21
|
+
2zQ=
|
|
22
22
|
-----END CERTIFICATE-----
|
data/lib/aws_runas/cli.rb
CHANGED
|
@@ -58,13 +58,9 @@ module AwsRunAs
|
|
|
58
58
|
def read_mfa_if_needed(path: nil, profile: 'default')
|
|
59
59
|
@cfg = AwsRunAs::Config.new(path: path, profile: profile)
|
|
60
60
|
return nil unless @cfg.mfa_required?
|
|
61
|
-
STDOUT.
|
|
61
|
+
STDOUT.print 'Enter MFA code: '
|
|
62
62
|
STDOUT.flush
|
|
63
|
-
|
|
64
|
-
STDIN.noecho(&:gets).chomp
|
|
65
|
-
rescue Errno::EBADF
|
|
66
|
-
STDIN.gets.chomp
|
|
67
|
-
end
|
|
63
|
+
STDIN.gets.chomp
|
|
68
64
|
end
|
|
69
65
|
end
|
|
70
66
|
end
|
data/lib/aws_runas/config.rb
CHANGED
|
@@ -17,6 +17,7 @@ require 'inifile'
|
|
|
17
17
|
module AwsRunAs
|
|
18
18
|
# Manages the configuartion file, including loading and retrieving values.
|
|
19
19
|
class Config
|
|
20
|
+
attr_reader :profile
|
|
20
21
|
# Finds the configuration file (used if no file is specified).
|
|
21
22
|
# paths searched: ./aws_config, and ~/.aws/config.
|
|
22
23
|
def self.find_config_file
|
data/lib/aws_runas/main.rb
CHANGED
|
@@ -78,7 +78,7 @@ module AwsRunAs
|
|
|
78
78
|
|
|
79
79
|
def handoff(command: nil, argv: nil)
|
|
80
80
|
env = credentials_env
|
|
81
|
-
|
|
81
|
+
AwsRunAs::Utils.handoff_to_shell(env: env, profile: @no_role ? nil : @cfg.profile) unless command
|
|
82
82
|
exec(env, command, *argv)
|
|
83
83
|
end
|
|
84
84
|
end
|
data/lib/aws_runas/utils.rb
CHANGED
|
@@ -13,13 +13,31 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
require 'rbconfig'
|
|
16
|
+
require 'tempfile'
|
|
17
|
+
require 'English'
|
|
16
18
|
|
|
17
19
|
module AwsRunAs
|
|
18
20
|
# Utility functions that aren't specifically tied to a class.
|
|
19
21
|
module Utils
|
|
22
|
+
module_function
|
|
23
|
+
|
|
24
|
+
# Run an interactive bash session with a special streamed RC file. The RC
|
|
25
|
+
# merges a local .bashrc if it exists, with a prompt that includes the
|
|
26
|
+
# computed message from handoff_to_shell.
|
|
27
|
+
def bash_with_prompt(env:, path:, message:)
|
|
28
|
+
rc_data = IO.read("#{ENV['HOME']}/.bashrc") if File.exist?("#{ENV['HOME']}/.bashrc")
|
|
29
|
+
rc_file = Tempfile.new('aws_runas_bashrc')
|
|
30
|
+
rc_file.write("#{rc_data}\n") unless rc_data.nil?
|
|
31
|
+
rc_file.write("PS1=\"\\e[33m(#{message})\\e[0m $PS1\"\n")
|
|
32
|
+
rc_file.close
|
|
33
|
+
system(env, path, '--rcfile', rc_file.path)
|
|
34
|
+
ensure
|
|
35
|
+
rc_file.unlink
|
|
36
|
+
end
|
|
37
|
+
|
|
20
38
|
# load the shell for a specific operating system.
|
|
21
39
|
# if $SHELL exists, load that.
|
|
22
|
-
def
|
|
40
|
+
def shell
|
|
23
41
|
if RbConfig::CONFIG['host_os'] =~ /mswin|windows|mingw32/i
|
|
24
42
|
'cmd.exe'
|
|
25
43
|
elsif ENV.include?('SHELL')
|
|
@@ -28,5 +46,28 @@ module AwsRunAs
|
|
|
28
46
|
'/bin/sh'
|
|
29
47
|
end
|
|
30
48
|
end
|
|
49
|
+
|
|
50
|
+
# Compute the message given to the prompt based off supplied profile.
|
|
51
|
+
def compute_message(profile:)
|
|
52
|
+
if profile.nil?
|
|
53
|
+
'AWS'
|
|
54
|
+
else
|
|
55
|
+
"AWS:#{profile}"
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# "Handoff" to a supported interactive shell. More technically, this runs
|
|
60
|
+
# an interactive shell with the shell prompt customized to the current
|
|
61
|
+
# running AWS profile. If the shell is not something we can handle
|
|
62
|
+
# specifically, just run the shell.
|
|
63
|
+
def handoff_to_shell(env:, profile: nil)
|
|
64
|
+
path = shell
|
|
65
|
+
if path.end_with?('/bash')
|
|
66
|
+
bash_with_prompt(env: env, path: path, message: compute_message(profile: profile))
|
|
67
|
+
else
|
|
68
|
+
system(env, path)
|
|
69
|
+
end
|
|
70
|
+
exit $CHILD_STATUS.exitstatus
|
|
71
|
+
end
|
|
31
72
|
end
|
|
32
73
|
end
|
data/lib/aws_runas/version.rb
CHANGED
data/spec/aws_runas/main_spec.rb
CHANGED
|
@@ -124,16 +124,6 @@ describe AwsRunAs::Main do
|
|
|
124
124
|
ENV.store('SHELL', '/bin/sh')
|
|
125
125
|
end
|
|
126
126
|
|
|
127
|
-
it 'calls exec with the environment properly set' do
|
|
128
|
-
expect(@main).to receive(:exec).with(@env, any_args)
|
|
129
|
-
@main.handoff
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
it 'starts a shell if no command is specified' do
|
|
133
|
-
expect(@main).to receive(:exec).with(@env, '/bin/sh', *nil)
|
|
134
|
-
@main.handoff
|
|
135
|
-
end
|
|
136
|
-
|
|
137
127
|
it 'execs a command when a command is specified' do
|
|
138
128
|
expect(@main).to receive(:exec).with(anything, '/usr/bin/foo', *['--bar', 'baz'])
|
|
139
129
|
@main.handoff(command: '/usr/bin/foo', argv: ['--bar', 'baz'])
|
|
@@ -15,6 +15,31 @@
|
|
|
15
15
|
require 'spec_helper'
|
|
16
16
|
|
|
17
17
|
describe AwsRunAs::Utils do
|
|
18
|
+
describe '::bash_with_prompt' do
|
|
19
|
+
context 'with RC file' do
|
|
20
|
+
before(:example) do
|
|
21
|
+
allow(IO).to receive(:read).with("#{ENV['HOME']}/.bashrc").and_return(BASHRC_FILE_CONTENTS)
|
|
22
|
+
end
|
|
23
|
+
it 'runs bash with a properly combined RC file' do
|
|
24
|
+
expect(AwsRunAs::Utils).to receive(:system).with(EXPECTED_ENV, '/bin/bash', '--rcfile', anything)
|
|
25
|
+
expect_any_instance_of(Tempfile).to receive(:write).with("#{BASHRC_FILE_CONTENTS}\n")
|
|
26
|
+
expect_any_instance_of(Tempfile).to receive(:write).with(BASHRC_EXPECTED_PROMPT)
|
|
27
|
+
AwsRunAs::Utils.bash_with_prompt(env: EXPECTED_ENV, path: '/bin/bash', message: 'AWS:rspec')
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
context 'without RC file' do
|
|
32
|
+
before(:example) do
|
|
33
|
+
allow(File).to receive(:exist?).with("#{ENV['HOME']}/.bashrc").and_return(false)
|
|
34
|
+
end
|
|
35
|
+
it 'runs bash (no RC file found)' do
|
|
36
|
+
expect(AwsRunAs::Utils).to receive(:system).with(EXPECTED_ENV, '/bin/bash', '--rcfile', anything)
|
|
37
|
+
expect_any_instance_of(Tempfile).to receive(:write).with(BASHRC_EXPECTED_PROMPT)
|
|
38
|
+
AwsRunAs::Utils.bash_with_prompt(env: EXPECTED_ENV, path: '/bin/bash', message: 'AWS:rspec')
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
18
43
|
describe '::shell' do
|
|
19
44
|
context 'Non-Windows OS' do
|
|
20
45
|
context 'No $SHELL set' do
|
|
@@ -49,4 +74,44 @@ describe AwsRunAs::Utils do
|
|
|
49
74
|
end
|
|
50
75
|
end
|
|
51
76
|
end
|
|
77
|
+
|
|
78
|
+
describe '::compute_message' do
|
|
79
|
+
context 'no profile specified' do
|
|
80
|
+
it 'returns "AWS" with no profile' do
|
|
81
|
+
expect(AwsRunAs::Utils.compute_message(profile: nil)).to eq 'AWS'
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
context 'with profile as "rspec"' do
|
|
86
|
+
it 'returns "AWS:rspec", indicating that is the profile' do
|
|
87
|
+
expect(AwsRunAs::Utils.compute_message(profile: 'rspec')).to eq 'AWS:rspec'
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
describe '::handoff_to_shell' do
|
|
93
|
+
context 'with shell as bash' do
|
|
94
|
+
before(:example) do
|
|
95
|
+
allow(AwsRunAs::Utils).to receive(:shell).and_return('/bin/bash')
|
|
96
|
+
allow(AwsRunAs::Utils).to receive(:exit)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
it 'Loads bash with the rspec profile prompt' do
|
|
100
|
+
expect(AwsRunAs::Utils).to receive(:bash_with_prompt).with(env: EXPECTED_ENV, path: '/bin/bash', message: 'AWS:rspec')
|
|
101
|
+
AwsRunAs::Utils.handoff_to_shell(env: EXPECTED_ENV, profile: 'rspec')
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
context 'with non-prompt supported shell' do
|
|
106
|
+
before(:example) do
|
|
107
|
+
allow(AwsRunAs::Utils).to receive(:shell).and_return('/bin/sh')
|
|
108
|
+
allow(AwsRunAs::Utils).to receive(:exit)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
it 'starts a default shell without any args' do
|
|
112
|
+
expect(AwsRunAs::Utils).to receive(:system).with(EXPECTED_ENV, '/bin/sh')
|
|
113
|
+
AwsRunAs::Utils.handoff_to_shell(env: EXPECTED_ENV, profile: nil)
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
52
117
|
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
foobar
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
MOCK_BASHRC_PATH = File.expand_path('../files/bashrc', __FILE__)
|
|
4
|
+
|
|
5
|
+
BASHRC_FILE_CONTENTS = <<EOS.freeze
|
|
6
|
+
foobar
|
|
7
|
+
EOS
|
|
8
|
+
|
|
9
|
+
BASHRC_EXPECTED_PROMPT = "PS1=\"\\e[33m(AWS:rspec)\\e[0m $PS1\"\n".freeze
|
|
10
|
+
|
|
11
|
+
EXPECTED_ENV = {
|
|
12
|
+
'AWS_ACCESS_KEY_ID' => 'AccessKeyId',
|
|
13
|
+
'AWS_SECRET_ACCESS_KEY' => 'SecretAccessKey',
|
|
14
|
+
'AWS_SESSION_TOKEN' => 'Token'
|
|
15
|
+
}.freeze
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: aws_runas
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Chris Marchesi
|
|
@@ -12,26 +12,26 @@ cert_chain:
|
|
|
12
12
|
-----BEGIN CERTIFICATE-----
|
|
13
13
|
MIIDjjCCAnagAwIBAgIBATANBgkqhkiG9w0BAQUFADBGMQ8wDQYDVQQDDAZjaHJp
|
|
14
14
|
c20xHjAcBgoJkiaJk/IsZAEZFg52YW5jbHVldmVydGVjaDETMBEGCgmSJomT8ixk
|
|
15
|
-
|
|
15
|
+
ARkWA2NvbTAeFw0xNzAzMTYxNjM0MTZaFw0xODAzMTYxNjM0MTZaMEYxDzANBgNV
|
|
16
16
|
BAMMBmNocmlzbTEeMBwGCgmSJomT8ixkARkWDnZhbmNsdWV2ZXJ0ZWNoMRMwEQYK
|
|
17
17
|
CZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
3i76LgHtAqSINqsk+1joj4bx4Mwk2Dgc5HMSe2MUAUzBxCXMDdlSSSJMBB8ZTXbf
|
|
19
|
+
uKreoDESTVLQlPm+RnsTDZpMMurznYGq15RrstD8pkxCre6QiGY1Ujwh/qdQQ65G
|
|
20
|
+
xULqYRSpikriJl8mHyUOxz2A56os/sTIzvfdNdC0y3wMUmPOQZMzsLxcxBT9rvtm
|
|
21
|
+
ME3IS5nR9u35X9O0CtNtvP+9VhJ/8mpSaYh2t0FigWJggvB9pRyT7D2YI0y1NpuW
|
|
22
|
+
w3FQeGwDZkvpI6dQxgQKuwNMIZVs39QSu5ltzlrjkFhm4mJKf5Zf1hVjMfKKWJSM
|
|
23
|
+
BDYULea2Iv+fpGU2SkhrSwIDAQABo4GGMIGDMAkGA1UdEwQCMAAwCwYDVR0PBAQD
|
|
24
|
+
AgSwMB0GA1UdDgQWBBRJbzaO73nDGmYlgYL+7tEDhL6+FjAkBgNVHREEHTAbgRlj
|
|
25
25
|
aHJpc21AdmFuY2x1ZXZlcnRlY2guY29tMCQGA1UdEgQdMBuBGWNocmlzbUB2YW5j
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
bHVldmVydGVjaC5jb20wDQYJKoZIhvcNAQEFBQADggEBALVY07yDy4um9cYp0ku9
|
|
27
|
+
WMZLWUwsxXsqmhnKcKa552NWhrdnjy/jCdc1fWcsyF60X5FZ4OEIHB2WubTa8/Ty
|
|
28
|
+
fWW/FNQMxAYNUzO8XBZGuE/5m8V3dJL8AlUiuiDLfZoeQAVe6zeaeBWYJenxNBRS
|
|
29
|
+
8oLbWQukwSlOP62gMme5mVXM0NKc/MeO2wQSRJXjYoGdDCfqgaIImPg7ExME6Fw+
|
|
30
|
+
g09hCEeualN7su6OZYCUknxeGDmCvfO5fQlGmTzAVewWgGApG7XUvM0gJXV8ks0+
|
|
31
|
+
80WBA6xKwX0zwURD8J7WNieL2iY5AhBg26cHuFLMQGTCyNEeZHZHnJhCwuBcnV1w
|
|
32
|
+
2zQ=
|
|
33
33
|
-----END CERTIFICATE-----
|
|
34
|
-
date:
|
|
34
|
+
date: 2017-03-16 00:00:00.000000000 Z
|
|
35
35
|
dependencies:
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: aws-sdk
|
|
@@ -164,10 +164,12 @@ files:
|
|
|
164
164
|
- spec/helpers/files/aws_config
|
|
165
165
|
- spec/helpers/files/aws_config_nomfa
|
|
166
166
|
- spec/helpers/files/aws_config_nosource
|
|
167
|
+
- spec/helpers/files/bashrc
|
|
168
|
+
- spec/helpers/utils_spec.rb
|
|
167
169
|
- spec/spec_helper.rb
|
|
168
170
|
homepage: https://github.com/vancluever/aws-runas
|
|
169
171
|
licenses:
|
|
170
|
-
- Apache
|
|
172
|
+
- Apache-2.0
|
|
171
173
|
metadata: {}
|
|
172
174
|
post_install_message:
|
|
173
175
|
rdoc_options: []
|
|
@@ -177,7 +179,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
177
179
|
requirements:
|
|
178
180
|
- - ">="
|
|
179
181
|
- !ruby/object:Gem::Version
|
|
180
|
-
version:
|
|
182
|
+
version: 2.2.6
|
|
181
183
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
184
|
requirements:
|
|
183
185
|
- - ">="
|
|
@@ -185,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
185
187
|
version: '0'
|
|
186
188
|
requirements: []
|
|
187
189
|
rubyforge_project:
|
|
188
|
-
rubygems_version: 2.
|
|
190
|
+
rubygems_version: 2.6.8
|
|
189
191
|
signing_key:
|
|
190
192
|
specification_version: 4
|
|
191
193
|
summary: Run a command or shell under an assumed AWS IAM role
|
|
@@ -198,4 +200,6 @@ test_files:
|
|
|
198
200
|
- spec/helpers/files/aws_config
|
|
199
201
|
- spec/helpers/files/aws_config_nomfa
|
|
200
202
|
- spec/helpers/files/aws_config_nosource
|
|
203
|
+
- spec/helpers/files/bashrc
|
|
204
|
+
- spec/helpers/utils_spec.rb
|
|
201
205
|
- spec/spec_helper.rb
|
metadata.gz.sig
CHANGED
|
Binary file
|