aws_runas 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
- checksums.yaml.gz.sig +3 -4
- data.tar.gz.sig +0 -0
- data/CHANGELOG.md +40 -1
- data/README.md +10 -8
- data/aws_runas.gemspec +1 -1
- data/certs/vancluever.pem +8 -8
- data/lib/aws_runas/cli.rb +2 -1
- data/lib/aws_runas/main.rb +15 -5
- data/lib/aws_runas/utils.rb +3 -3
- data/lib/aws_runas/version.rb +1 -1
- data/shell_profiles/sh.profile +10 -3
- data/spec/aws_runas/main_spec.rb +68 -0
- data/spec/helpers/utils_spec.rb +3 -3
- metadata +13 -13
- 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: 29d8ce9a9034488a4faa15f5243852d67fb45850
|
4
|
+
data.tar.gz: 177b2295df14d918a2a0105527f6fb0c4057b22a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 051dc45bdd27dc5a6c93d41f0f3e25cfde3767e8d7b0d0774ef8db619d30136644edfd716d974f1ecdb0850be1c8fc2e1b78a214f4bde92918e28d5c9562dcca
|
7
|
+
data.tar.gz: 7508a80014cc4d18de0f7228b7871a519038d8b9a7c83728904abc3d534de9cbc1fc0f1c4355097369766c2a6074778810c2e308b34349902f9a594cb8359d1c
|
checksums.yaml.gz.sig
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
��
|
2
|
-
|
3
|
-
|
4
|
-
R@k�ܾN���?��{x-5M�u�1V��m�N�
|
1
|
+
�%��v��b�#�0����k�[pr��ȫ�?U��FM�|��$���V�U���Z9nv1s���,����k%���0}���T&o����,���
|
2
|
+
�`�O���&1#n��@�ִ�������܅�#l��_-��z�j�|�g)PCs�I�m�b�� �0,������As�@w�E�ێFS�
|
3
|
+
��H4U�*��`p%��|�Ӈ�d��=�
|
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,42 @@
|
|
1
|
+
## v0.6.0
|
2
|
+
|
3
|
+
### Session Duration Support
|
4
|
+
|
5
|
+
This update brings the `--duration` flag, which allows you to control the
|
6
|
+
session duration for both session tokens and assumed roles. Note that the
|
7
|
+
maximum depends on what kind of user you are using (IAM versus root account),
|
8
|
+
whether or not you are assuming a role or not, and the maximum duration set on
|
9
|
+
any role that you are assuming. `aws-runas` may silently truncate the maximum if
|
10
|
+
you request it too high, although your session will be rejected when assuming a
|
11
|
+
role. For more details, see [GetSesionToken][get-session-token] and
|
12
|
+
[AssumeRole][assume-role] for more details.
|
13
|
+
|
14
|
+
[get-session-token]: https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html
|
15
|
+
[assume-role]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
|
16
|
+
|
17
|
+
Thanks to the work done in
|
18
|
+
[#16](https://github.com/vancluever/aws-runas/pull/16) for this!
|
19
|
+
|
20
|
+
### Zsh `PROMPT` Support
|
21
|
+
|
22
|
+
Some issues were discovered where the zsh prompt support was not functioning
|
23
|
+
correctly when using shell functions. Colors were not rendering properly as
|
24
|
+
well. Thanks to the work in
|
25
|
+
[#14](https://github.com/vancluever/aws-runas/pull/14) for the fix on this!
|
26
|
+
|
27
|
+
### Better Session IDs
|
28
|
+
|
29
|
+
`aws-runas` will now expose the IAM user's identity information (account ID/user
|
30
|
+
name) and enter it in the session ID, when available. The new format is
|
31
|
+
`aws-runas-session_ACCTID_USERNAME_TIMESTAMP` when the user has access to
|
32
|
+
[`GetCallerIdentity`][get-caller-identity], and the old
|
33
|
+
`aws-runas-session_TIMESTAMP` format when they do not.
|
34
|
+
|
35
|
+
Thanks to the work done in
|
36
|
+
[#11](https://github.com/vancluever/aws-runas/pull/11) for this!
|
37
|
+
|
38
|
+
[get-caller-identity]: https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html
|
39
|
+
|
1
40
|
## v0.5.0
|
2
41
|
|
3
42
|
### Zsh Support
|
@@ -27,7 +66,7 @@ The default interactive prompt that you get when you run `aws-runas` with no
|
|
27
66
|
command supplied can now by skipped by adding `--skip-prompt` to the CLI
|
28
67
|
arguments. The profile functions mentioned above are still passed in. This
|
29
68
|
allows you to leverage their functionality inside your own scripts and custom
|
30
|
-
prompts if you want in other ways.
|
69
|
+
prompts if you want in other ways.
|
31
70
|
|
32
71
|
### Additional Variables
|
33
72
|
|
data/README.md
CHANGED
@@ -74,8 +74,9 @@ shells:
|
|
74
74
|
returns 0 on true and 1 on false, which can be used semantically in shell
|
75
75
|
scripts.
|
76
76
|
* `aws_session_status_color`, which works off of `aws_session_expired` to
|
77
|
-
render an ANSI
|
78
|
-
|
77
|
+
render either an ANSI color number (for bash)
|
78
|
+
or a human readable color name (for zsh)
|
79
|
+
- (red or 31) when `aws_session_expired` is `true`, (yellow or 33) otherwise.
|
79
80
|
|
80
81
|
#### Skipping the Fancy Prompt
|
81
82
|
|
@@ -87,7 +88,7 @@ to you however, which you can use in your own scripts.
|
|
87
88
|
Usage
|
88
89
|
------
|
89
90
|
|
90
|
-
Install the gem (`gem install
|
91
|
+
Install the gem (`gem install aws_runas`), and the command can be run via
|
91
92
|
`aws-runas` via your regular `$PATH`.
|
92
93
|
|
93
94
|
```
|
@@ -100,11 +101,12 @@ If COMMAND is omitted, the default shell ($SHELL, /bin/sh, or cmd.exe,
|
|
100
101
|
depending on your system) will launch.
|
101
102
|
|
102
103
|
[options] are:
|
103
|
-
-n, --no-role
|
104
|
-
-s, --skip-prompt
|
105
|
-
-p, --path=<s>
|
106
|
-
-r, --profile=<s>
|
107
|
-
-
|
104
|
+
-n, --no-role Get a session token only, do not assume a role
|
105
|
+
-s, --skip-prompt Do not launch interactive sessions with the fancy prompt
|
106
|
+
-p, --path=<s> Path to the AWS config file
|
107
|
+
-r, --profile=<s> The AWS profile to load (default: default)
|
108
|
+
-d, --duration=<i> The duration in seconds for temporary credentials (default: 3600)
|
109
|
+
-h, --help Show this message
|
108
110
|
```
|
109
111
|
|
110
112
|
`--path` is optional, and if omitted will default to the files in the
|
data/aws_runas.gemspec
CHANGED
data/certs/vancluever.pem
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
2
|
MIIDjjCCAnagAwIBAgIBATANBgkqhkiG9w0BAQUFADBGMQ8wDQYDVQQDDAZjaHJp
|
3
3
|
c20xHjAcBgoJkiaJk/IsZAEZFg52YW5jbHVldmVydGVjaDETMBEGCgmSJomT8ixk
|
4
|
-
|
4
|
+
ARkWA2NvbTAeFw0xODA0MTcwNTExMDdaFw0yMTA0MTYwNTExMDdaMEYxDzANBgNV
|
5
5
|
BAMMBmNocmlzbTEeMBwGCgmSJomT8ixkARkWDnZhbmNsdWV2ZXJ0ZWNoMRMwEQYK
|
6
6
|
CZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
7
7
|
3i76LgHtAqSINqsk+1joj4bx4Mwk2Dgc5HMSe2MUAUzBxCXMDdlSSSJMBB8ZTXbf
|
@@ -12,11 +12,11 @@ w3FQeGwDZkvpI6dQxgQKuwNMIZVs39QSu5ltzlrjkFhm4mJKf5Zf1hVjMfKKWJSM
|
|
12
12
|
BDYULea2Iv+fpGU2SkhrSwIDAQABo4GGMIGDMAkGA1UdEwQCMAAwCwYDVR0PBAQD
|
13
13
|
AgSwMB0GA1UdDgQWBBRJbzaO73nDGmYlgYL+7tEDhL6+FjAkBgNVHREEHTAbgRlj
|
14
14
|
aHJpc21AdmFuY2x1ZXZlcnRlY2guY29tMCQGA1UdEgQdMBuBGWNocmlzbUB2YW5j
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
15
|
+
bHVldmVydGVjaC5jb20wDQYJKoZIhvcNAQEFBQADggEBAHNOOr9CLdo03I/jJ1R0
|
16
|
+
lKVglJZFWceZkLzbxyPM/nXHK6Gvzt61d1HEZKCXV3cGrVgQjB5hUjCnp/kI1Ew4
|
17
|
+
5VFSgtIzrSoFYyPpGNq6zvowUHWth48cLRXTOPMQlx1vB/YyAAbKY6yRJq5ymi0V
|
18
|
+
VYNEyNVO9No8VVCEVuTEe+Xs6L9ia4IaVxhPRwncGjglM5D8yqyU/i8e+P/wTIrL
|
19
|
+
HyhqrYDJXlQSVs5Lvkw26PIcesIYxV4BE9dE9/JBgNKNUwqEIacxZnISop1fPTHO
|
20
|
+
/CMDeSP9Z1l0CVvcRsZvmOu3NllZcezFyYi78K+tlmRajCeAV4pWXdcJg26w+u7I
|
21
|
+
uK4=
|
22
22
|
-----END CERTIFICATE-----
|
data/lib/aws_runas/cli.rb
CHANGED
@@ -40,6 +40,7 @@ module AwsRunAs
|
|
40
40
|
opt :skip_prompt, 'Do not launch interactive sessions with the fancy prompt', type: TrueClass, default: nil
|
41
41
|
opt :path, 'Path to the AWS config file', type: String
|
42
42
|
opt :profile, 'The AWS profile to load', type: String, default: 'default'
|
43
|
+
opt :duration, 'The duration in seconds for temporary credentials', type: Integer, default: 3600
|
43
44
|
stop_on_unknown
|
44
45
|
end
|
45
46
|
end
|
@@ -49,7 +50,7 @@ module AwsRunAs
|
|
49
50
|
def start
|
50
51
|
opts = load_opts
|
51
52
|
mfa_code = read_mfa_if_needed(path: opts[:path], profile: opts[:profile])
|
52
|
-
@main = AwsRunAs::Main.new(path: opts[:path], profile: opts[:profile], mfa_code: mfa_code, no_role: opts[:no_role])
|
53
|
+
@main = AwsRunAs::Main.new(path: opts[:path], profile: opts[:profile], mfa_code: mfa_code, no_role: opts[:no_role], duration_seconds: opts[:duration])
|
53
54
|
@main.assume_role
|
54
55
|
command = ARGV.shift
|
55
56
|
@main.handoff(command: command, argv: ARGV, skip_prompt: opts[:skip_prompt])
|
data/lib/aws_runas/main.rb
CHANGED
@@ -26,7 +26,7 @@ module AwsRunAs
|
|
26
26
|
# and hands off environment to called process.
|
27
27
|
class Main
|
28
28
|
# Instantiate the object and set up the path, profile, and populate MFA
|
29
|
-
def initialize(path: nil, profile: default, mfa_code: nil, no_role: nil)
|
29
|
+
def initialize(path: nil, profile: default, mfa_code: nil, no_role: nil, duration_seconds: 3600)
|
30
30
|
cfg_path = if path
|
31
31
|
path
|
32
32
|
else
|
@@ -35,6 +35,7 @@ module AwsRunAs
|
|
35
35
|
@cfg = AwsRunAs::Config.new(path: cfg_path, profile: profile)
|
36
36
|
@mfa_code = mfa_code
|
37
37
|
@no_role = no_role
|
38
|
+
@duration_seconds = duration_seconds
|
38
39
|
end
|
39
40
|
|
40
41
|
def sts_client
|
@@ -46,16 +47,23 @@ module AwsRunAs
|
|
46
47
|
)
|
47
48
|
end
|
48
49
|
|
50
|
+
def session_id
|
51
|
+
caller_identity = sts_client.get_caller_identity
|
52
|
+
"aws-runas-session_#{caller_identity.account}_#{caller_identity.arn.split('/')[-1]}_#{Time.now.to_i}"
|
53
|
+
rescue Aws::STS::Errors::AccessDeniedException
|
54
|
+
"aws-runas-session_#{Time.now.to_i}"
|
55
|
+
end
|
56
|
+
|
49
57
|
def assume_role
|
50
|
-
|
58
|
+
@role_session_name = session_id
|
51
59
|
role_arn = @cfg.load_config_value(key: 'role_arn')
|
52
60
|
mfa_serial = @cfg.load_config_value(key: 'mfa_serial') unless ENV.include?('AWS_SESSION_TOKEN')
|
53
61
|
if @no_role
|
54
62
|
raise 'No mfa_serial in selected profile, session will be useless' if mfa_serial.nil?
|
55
63
|
@session = sts_client.get_session_token(
|
56
|
-
duration_seconds: 3600,
|
57
64
|
serial_number: mfa_serial,
|
58
|
-
token_code: @mfa_code
|
65
|
+
token_code: @mfa_code,
|
66
|
+
duration_seconds: @duration_seconds
|
59
67
|
)
|
60
68
|
else
|
61
69
|
@session = Aws::AssumeRoleCredentials.new(
|
@@ -63,7 +71,8 @@ module AwsRunAs
|
|
63
71
|
role_arn: role_arn,
|
64
72
|
serial_number: mfa_serial,
|
65
73
|
token_code: @mfa_code,
|
66
|
-
role_session_name:
|
74
|
+
role_session_name: @role_session_name,
|
75
|
+
duration_seconds: @duration_seconds
|
67
76
|
)
|
68
77
|
end
|
69
78
|
end
|
@@ -89,6 +98,7 @@ module AwsRunAs
|
|
89
98
|
env['AWS_SESSION_EXPIRATION'] = @session.expiration.to_s
|
90
99
|
env['AWS_SESSION_EXPIRATION_UNIX'] = DateTime.parse(@session.expiration.to_s).strftime('%s')
|
91
100
|
env['AWS_RUNAS_ASSUMED_ROLE_ARN'] = @cfg.load_config_value(key: 'role_arn')
|
101
|
+
env['AWS_ROLE_SESSION_NAME'] = @role_session_name
|
92
102
|
end
|
93
103
|
env
|
94
104
|
end
|
data/lib/aws_runas/utils.rb
CHANGED
@@ -37,7 +37,7 @@ module AwsRunAs
|
|
37
37
|
rc_file.write("#{rc_data}\n") unless rc_data.nil?
|
38
38
|
rc_file.write(IO.read("#{shell_profiles_dir}/sh.profile"))
|
39
39
|
unless skip_prompt
|
40
|
-
rc_file.write("PS1=\"\\[\\e[\\$(aws_session_status_color)m\\](#{message})\\[\\e[0m\\] $PS1\"\n")
|
40
|
+
rc_file.write("PS1=\"\\[\\e[\\$(aws_session_status_color \"bash\")m\\](#{message})\\[\\e[0m\\] $PS1\"\n")
|
41
41
|
end
|
42
42
|
rc_file.close
|
43
43
|
system(env, path, '--rcfile', rc_file.path)
|
@@ -56,8 +56,8 @@ module AwsRunAs
|
|
56
56
|
rc_file.write(IO.read("#{shell_profiles_dir}/sh.profile"))
|
57
57
|
unless skip_prompt
|
58
58
|
rc_file.write("setopt PROMPT_SUBST\n")
|
59
|
-
rc_file.write("
|
60
|
-
rc_file.write("PROMPT
|
59
|
+
rc_file.write("OLDPROMPT=\"$PROMPT\"\n")
|
60
|
+
rc_file.write("PROMPT=\"%F{$(aws_session_status_color \"zsh\")}(#{message})%f $OLDPROMPT\"\n")
|
61
61
|
end
|
62
62
|
rc_file.close
|
63
63
|
env.store('ZDOTDIR', rc_dir)
|
data/lib/aws_runas/version.rb
CHANGED
data/shell_profiles/sh.profile
CHANGED
@@ -10,14 +10,21 @@ aws_session_expired() {
|
|
10
10
|
return 1
|
11
11
|
}
|
12
12
|
|
13
|
-
# aws_session_status_color returns an ANSI color number for
|
13
|
+
# aws_session_status_color returns either an ANSI color number (for bash)
|
14
|
+
# or a human readable color name (for zsh) for the specific status
|
14
15
|
# of the session. Note that if session_expired is not correctly functioning,
|
15
16
|
# this will always be yellow. Red is shown when it's verified that the session
|
16
17
|
# has expired.
|
17
18
|
aws_session_status_color() {
|
18
19
|
if aws_session_expired; then
|
19
|
-
|
20
|
+
if [[ "$1" == zsh ]]; then
|
21
|
+
echo "red"
|
22
|
+
fi
|
23
|
+
echo "31"
|
20
24
|
else
|
21
|
-
|
25
|
+
if [[ "$1" == zsh ]]; then
|
26
|
+
echo "yellow"
|
27
|
+
fi
|
28
|
+
echo "33"
|
22
29
|
fi
|
23
30
|
}
|
data/spec/aws_runas/main_spec.rb
CHANGED
@@ -35,12 +35,50 @@ describe AwsRunAs::Main do
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
+
describe '#session_id' do
|
39
|
+
it 'returns a properly formatted AWS session name for assuming roles' do
|
40
|
+
allow_any_instance_of(Aws::STS::Client).to receive(:get_caller_identity) do |obj|
|
41
|
+
obj.stub_data(
|
42
|
+
:get_caller_identity,
|
43
|
+
{
|
44
|
+
account: '123456789012',
|
45
|
+
arn: 'arn:aws:iam::123456789012:user/Alice',
|
46
|
+
user_id: 'AKIAI44QH8DHBEXAMPLE'
|
47
|
+
}
|
48
|
+
)
|
49
|
+
end
|
50
|
+
expect(@main.session_id).to eq("aws-runas-session_123456789012_Alice_#{Time.now.to_i}")
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'returns a basic session ID when caller has no access to get_caller_identity' do
|
54
|
+
allow_any_instance_of(AwsRunAs::Main).to receive(:sts_client).and_return(
|
55
|
+
Aws::STS::Client.new(
|
56
|
+
stub_responses: {
|
57
|
+
get_caller_identity: 'AccessDeniedException'
|
58
|
+
}
|
59
|
+
)
|
60
|
+
)
|
61
|
+
expect(@main.session_id).to eq("aws-runas-session_#{Time.now.to_i}")
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
38
65
|
describe '#assume_role' do
|
39
66
|
it 'calls out to Aws::AssumeRoleCredentials.new' do
|
40
67
|
expect(Aws::AssumeRoleCredentials).to receive(:new).and_call_original
|
41
68
|
@main.assume_role
|
42
69
|
end
|
43
70
|
|
71
|
+
it 'calls out to Aws::AssumeRoleCredentials.new with a correct session expiration when not default' do
|
72
|
+
expect(Aws::AssumeRoleCredentials).to receive(:new).with(hash_including(duration_seconds: 43200)).and_call_original
|
73
|
+
@main = AwsRunAs::Main.new(
|
74
|
+
path: MOCK_AWS_CONFIGPATH,
|
75
|
+
profile: 'test-profile',
|
76
|
+
mfa_code: '123456',
|
77
|
+
duration_seconds: 43200
|
78
|
+
)
|
79
|
+
@main.assume_role
|
80
|
+
end
|
81
|
+
|
44
82
|
it 'calls out to Aws::STS::Client.get_session_token when no_role is set' do
|
45
83
|
expect_any_instance_of(Aws::STS::Client).to receive(:get_session_token).and_call_original
|
46
84
|
ENV.delete('AWS_SESSION_TOKEN')
|
@@ -53,6 +91,23 @@ describe AwsRunAs::Main do
|
|
53
91
|
@main.assume_role
|
54
92
|
end
|
55
93
|
|
94
|
+
it 'calls out to Aws::STS::Client.get_session_token correct session expiration when not default' do
|
95
|
+
expect_any_instance_of(Aws::STS::Client).to receive(
|
96
|
+
:get_session_token
|
97
|
+
).with(
|
98
|
+
hash_including(duration_seconds: 43200)
|
99
|
+
).and_call_original
|
100
|
+
ENV.delete('AWS_SESSION_TOKEN')
|
101
|
+
@main = AwsRunAs::Main.new(
|
102
|
+
path: MOCK_AWS_CONFIGPATH,
|
103
|
+
profile: 'test-profile',
|
104
|
+
mfa_code: '123456',
|
105
|
+
no_role: true,
|
106
|
+
duration_seconds: 43200
|
107
|
+
)
|
108
|
+
@main.assume_role
|
109
|
+
end
|
110
|
+
|
56
111
|
it 'raises exception when no_role is set and there is no mfa_serial' do
|
57
112
|
expect do
|
58
113
|
ENV.delete('AWS_SESSION_TOKEN')
|
@@ -80,6 +135,16 @@ describe AwsRunAs::Main do
|
|
80
135
|
allow(File).to receive(:exist?).with(AWS_DEFAULT_CREDENTIALS_PATH).and_return false
|
81
136
|
allow(File).to receive(:read).with(AWS_DEFAULT_CFG_PATH).and_return File.read(MOCK_AWS_NO_SOURCE_PATH)
|
82
137
|
allow(IniFile).to receive(:load).with(AWS_DEFAULT_CFG_PATH).and_return IniFile.load(MOCK_AWS_NO_SOURCE_PATH)
|
138
|
+
allow_any_instance_of(Aws::STS::Client).to receive(:get_caller_identity) do |obj|
|
139
|
+
obj.stub_data(
|
140
|
+
:get_caller_identity,
|
141
|
+
{
|
142
|
+
account: '123456789012',
|
143
|
+
arn: 'arn:aws:iam::123456789012:user/Alice',
|
144
|
+
user_id: 'AKIAI44QH8DHBEXAMPLE'
|
145
|
+
}
|
146
|
+
)
|
147
|
+
end
|
83
148
|
allow(Aws::AssumeRoleCredentials).to receive(:new).and_return(
|
84
149
|
Aws::AssumeRoleCredentials.new(
|
85
150
|
role_arn: 'roleARN',
|
@@ -160,6 +225,9 @@ describe AwsRunAs::Main do
|
|
160
225
|
it 'has AWS_DEFAULT_REGION set in env' do
|
161
226
|
expect(env['AWS_DEFAULT_REGION']).to eq('us-west-1')
|
162
227
|
end
|
228
|
+
it 'has AWS_ROLE_SESSION_NAME set in env' do
|
229
|
+
expect(env['AWS_ROLE_SESSION_NAME']).to eq("aws-runas-session_accountType_arnType_#{Time.now.to_i}")
|
230
|
+
end
|
163
231
|
end
|
164
232
|
|
165
233
|
context 'with no role assumed' do
|
data/spec/helpers/utils_spec.rb
CHANGED
@@ -11,10 +11,10 @@ ZSHRC_FILE_CONTENTS = <<EOS.freeze
|
|
11
11
|
bazqux
|
12
12
|
EOS
|
13
13
|
|
14
|
-
BASHRC_EXPECTED_PROMPT = "PS1=\"\\[\\e[\\$(aws_session_status_color)m\\](AWS:rspec)\\[\\e[0m\\] $PS1\"\n".freeze
|
15
|
-
ZSHRC_EXPECTED_PROMPT = "PROMPT
|
14
|
+
BASHRC_EXPECTED_PROMPT = "PS1=\"\\[\\e[\\$(aws_session_status_color \"bash\")m\\](AWS:rspec)\\[\\e[0m\\] $PS1\"\n".freeze
|
15
|
+
ZSHRC_EXPECTED_PROMPT = "PROMPT=\"%F{$(aws_session_status_color \"zsh\")}(AWS:rspec)%f $OLDPROMPT\"\n".freeze
|
16
16
|
ZSHRC_EXPECTED_SETSUBST = "setopt PROMPT_SUBST\n".freeze
|
17
|
-
ZSHRC_EXPECTED_OLDPROMPT = "
|
17
|
+
ZSHRC_EXPECTED_OLDPROMPT = "OLDPROMPT=\"$PROMPT\"\n".freeze
|
18
18
|
ZSH_MOCK_TMPDIR = "#{Dir.tmpdir}/aws_runas_zsh_rspec".freeze
|
19
19
|
|
20
20
|
EXPECTED_ENV = {
|
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.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Marchesi
|
@@ -12,7 +12,7 @@ cert_chain:
|
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
13
|
MIIDjjCCAnagAwIBAgIBATANBgkqhkiG9w0BAQUFADBGMQ8wDQYDVQQDDAZjaHJp
|
14
14
|
c20xHjAcBgoJkiaJk/IsZAEZFg52YW5jbHVldmVydGVjaDETMBEGCgmSJomT8ixk
|
15
|
-
|
15
|
+
ARkWA2NvbTAeFw0xODA0MTcwNTExMDdaFw0yMTA0MTYwNTExMDdaMEYxDzANBgNV
|
16
16
|
BAMMBmNocmlzbTEeMBwGCgmSJomT8ixkARkWDnZhbmNsdWV2ZXJ0ZWNoMRMwEQYK
|
17
17
|
CZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
18
18
|
3i76LgHtAqSINqsk+1joj4bx4Mwk2Dgc5HMSe2MUAUzBxCXMDdlSSSJMBB8ZTXbf
|
@@ -23,15 +23,15 @@ cert_chain:
|
|
23
23
|
BDYULea2Iv+fpGU2SkhrSwIDAQABo4GGMIGDMAkGA1UdEwQCMAAwCwYDVR0PBAQD
|
24
24
|
AgSwMB0GA1UdDgQWBBRJbzaO73nDGmYlgYL+7tEDhL6+FjAkBgNVHREEHTAbgRlj
|
25
25
|
aHJpc21AdmFuY2x1ZXZlcnRlY2guY29tMCQGA1UdEgQdMBuBGWNocmlzbUB2YW5j
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
26
|
+
bHVldmVydGVjaC5jb20wDQYJKoZIhvcNAQEFBQADggEBAHNOOr9CLdo03I/jJ1R0
|
27
|
+
lKVglJZFWceZkLzbxyPM/nXHK6Gvzt61d1HEZKCXV3cGrVgQjB5hUjCnp/kI1Ew4
|
28
|
+
5VFSgtIzrSoFYyPpGNq6zvowUHWth48cLRXTOPMQlx1vB/YyAAbKY6yRJq5ymi0V
|
29
|
+
VYNEyNVO9No8VVCEVuTEe+Xs6L9ia4IaVxhPRwncGjglM5D8yqyU/i8e+P/wTIrL
|
30
|
+
HyhqrYDJXlQSVs5Lvkw26PIcesIYxV4BE9dE9/JBgNKNUwqEIacxZnISop1fPTHO
|
31
|
+
/CMDeSP9Z1l0CVvcRsZvmOu3NllZcezFyYi78K+tlmRajCeAV4pWXdcJg26w+u7I
|
32
|
+
uK4=
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date:
|
34
|
+
date: 2018-04-17 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: aws-sdk
|
@@ -39,14 +39,14 @@ dependencies:
|
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '2.
|
42
|
+
version: '2.11'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: '2.
|
49
|
+
version: '2.11'
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: inifile
|
52
52
|
requirement: !ruby/object:Gem::Requirement
|
@@ -188,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
188
|
version: '0'
|
189
189
|
requirements: []
|
190
190
|
rubyforge_project:
|
191
|
-
rubygems_version: 2.6.
|
191
|
+
rubygems_version: 2.6.14.1
|
192
192
|
signing_key:
|
193
193
|
specification_version: 4
|
194
194
|
summary: Run a command or shell under an assumed AWS IAM role
|
metadata.gz.sig
CHANGED
Binary file
|