aws_runas 0.5.0 → 0.6.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 +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
|