aws_assume_role 1.1.0-universal-darwin

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rubocop.yml +57 -0
  4. data/.ruby-version +1 -0
  5. data/.simplecov +22 -0
  6. data/.travis.yml +24 -0
  7. data/CHANGELOG.md +61 -0
  8. data/Gemfile +18 -0
  9. data/LICENSE.md +201 -0
  10. data/README.md +303 -0
  11. data/Rakefile +63 -0
  12. data/aws_assume_role.gemspec +56 -0
  13. data/bin/aws-assume-role +4 -0
  14. data/i18n/en.yml +109 -0
  15. data/lib/aws_assume_role.rb +4 -0
  16. data/lib/aws_assume_role/cli.rb +20 -0
  17. data/lib/aws_assume_role/cli/actions/abstract_action.rb +61 -0
  18. data/lib/aws_assume_role/cli/actions/configure_profile.rb +24 -0
  19. data/lib/aws_assume_role/cli/actions/configure_role_assumption.rb +22 -0
  20. data/lib/aws_assume_role/cli/actions/console.rb +70 -0
  21. data/lib/aws_assume_role/cli/actions/delete_profile.rb +22 -0
  22. data/lib/aws_assume_role/cli/actions/includes.rb +12 -0
  23. data/lib/aws_assume_role/cli/actions/list_profiles.rb +12 -0
  24. data/lib/aws_assume_role/cli/actions/migrate_profile.rb +20 -0
  25. data/lib/aws_assume_role/cli/actions/reset_environment.rb +50 -0
  26. data/lib/aws_assume_role/cli/actions/run.rb +36 -0
  27. data/lib/aws_assume_role/cli/actions/set_environment.rb +62 -0
  28. data/lib/aws_assume_role/cli/actions/test.rb +35 -0
  29. data/lib/aws_assume_role/cli/commands/configure.rb +32 -0
  30. data/lib/aws_assume_role/cli/commands/console.rb +19 -0
  31. data/lib/aws_assume_role/cli/commands/delete.rb +13 -0
  32. data/lib/aws_assume_role/cli/commands/environment.rb +34 -0
  33. data/lib/aws_assume_role/cli/commands/list.rb +12 -0
  34. data/lib/aws_assume_role/cli/commands/migrate.rb +13 -0
  35. data/lib/aws_assume_role/cli/commands/run.rb +19 -0
  36. data/lib/aws_assume_role/cli/commands/test.rb +20 -0
  37. data/lib/aws_assume_role/cli/includes.rb +3 -0
  38. data/lib/aws_assume_role/configuration.rb +30 -0
  39. data/lib/aws_assume_role/core_ext/aws-sdk/credential_provider_chain.rb +4 -0
  40. data/lib/aws_assume_role/core_ext/aws-sdk/includes.rb +9 -0
  41. data/lib/aws_assume_role/credentials/factories.rb +11 -0
  42. data/lib/aws_assume_role/credentials/factories/abstract_factory.rb +33 -0
  43. data/lib/aws_assume_role/credentials/factories/assume_role.rb +39 -0
  44. data/lib/aws_assume_role/credentials/factories/default_chain_provider.rb +113 -0
  45. data/lib/aws_assume_role/credentials/factories/environment.rb +26 -0
  46. data/lib/aws_assume_role/credentials/factories/includes.rb +15 -0
  47. data/lib/aws_assume_role/credentials/factories/instance_profile.rb +19 -0
  48. data/lib/aws_assume_role/credentials/factories/repository.rb +37 -0
  49. data/lib/aws_assume_role/credentials/factories/shared.rb +19 -0
  50. data/lib/aws_assume_role/credentials/factories/static.rb +18 -0
  51. data/lib/aws_assume_role/credentials/includes.rb +6 -0
  52. data/lib/aws_assume_role/credentials/providers/assume_role_credentials.rb +60 -0
  53. data/lib/aws_assume_role/credentials/providers/includes.rb +9 -0
  54. data/lib/aws_assume_role/credentials/providers/mfa_session_credentials.rb +119 -0
  55. data/lib/aws_assume_role/credentials/providers/shared_keyring_credentials.rb +41 -0
  56. data/lib/aws_assume_role/includes.rb +38 -0
  57. data/lib/aws_assume_role/logging.rb +27 -0
  58. data/lib/aws_assume_role/profile_configuration.rb +73 -0
  59. data/lib/aws_assume_role/runner.rb +40 -0
  60. data/lib/aws_assume_role/store/includes.rb +8 -0
  61. data/lib/aws_assume_role/store/keyring.rb +61 -0
  62. data/lib/aws_assume_role/store/serialization.rb +20 -0
  63. data/lib/aws_assume_role/store/shared_config_with_keyring.rb +250 -0
  64. data/lib/aws_assume_role/types.rb +31 -0
  65. data/lib/aws_assume_role/ui.rb +57 -0
  66. data/lib/aws_assume_role/vendored/aws.rb +4 -0
  67. data/lib/aws_assume_role/vendored/aws/README.md +2 -0
  68. data/lib/aws_assume_role/vendored/aws/assume_role_credentials.rb +67 -0
  69. data/lib/aws_assume_role/vendored/aws/includes.rb +9 -0
  70. data/lib/aws_assume_role/vendored/aws/refreshing_credentials.rb +58 -0
  71. data/lib/aws_assume_role/vendored/aws/shared_config.rb +223 -0
  72. data/lib/aws_assume_role/version.rb +5 -0
  73. metadata +438 -0
@@ -0,0 +1,223 @@
1
+ require_relative "includes"
2
+ module AwsAssumeRole::Vendored::Aws
3
+ # @api private
4
+ class SharedConfig
5
+ include AwsAssumeRole::Logging
6
+ # @return [String]
7
+ attr_reader :credentials_path
8
+
9
+ # @return [String]
10
+ attr_reader :config_path
11
+
12
+ # @return [String]
13
+ attr_reader :profile_name
14
+
15
+ # Constructs a new SharedConfig provider object. This will load the shared
16
+ # credentials file, and optionally the shared configuration file, as ini
17
+ # files which support profiles.
18
+ #
19
+ # By default, the shared credential file (the default path for which is
20
+ # `~/.aws/credentials`) and the shared config file (the default path for
21
+ # which is `~/.aws/config`) are loaded. However, if you set the
22
+ # `ENV['AWS_SDK_CONFIG_OPT_OUT']` environment variable, only the shared
23
+ # credential file will be loaded.
24
+ #
25
+ # The default profile name is 'default'. You can specify the profile name
26
+ # with the `ENV['AWS_PROFILE']` environment variable or with the
27
+ # `:profile_name` option.
28
+ #
29
+ # @param [Hash] options
30
+ # @option options [String] :credentials_path Path to the shared credentials
31
+ # file. Defaults to "#{Dir.home}/.aws/credentials".
32
+ # @option options [String] :config_path Path to the shared config file.
33
+ # Defaults to "#{Dir.home}/.aws/config".
34
+ # @option options [String] :profile_name The credential/config profile name
35
+ # to use. If not specified, will check `ENV['AWS_PROFILE']` before using
36
+ # the fixed default value of 'default'.
37
+ # @option options [Boolean] :config_enabled If true, loads the shared config
38
+ # file and enables new config values outside of the old shared credential
39
+ # spec.
40
+ def initialize(options = {})
41
+ @profile_name = determine_profile(options)
42
+ @config_enabled = options[:config_enabled]
43
+ @credentials_path = options[:credentials_path] ||
44
+ determine_credentials_path
45
+ @parsed_credentials = {}
46
+ load_credentials_file if loadable?(@credentials_path)
47
+ if @config_enabled
48
+ @config_path = options[:config_path] || determine_config_path
49
+ load_config_file if loadable?(@config_path)
50
+ end
51
+ end
52
+
53
+ # @api private
54
+ def fresh(options = {})
55
+ @profile_name = nil
56
+ @credentials_path = nil
57
+ @config_path = nil
58
+ @parsed_credentials = {}
59
+ @parsed_config = nil
60
+ @config_enabled = options[:config_enabled] ? true : false
61
+ @profile_name = determine_profile(options)
62
+ @credentials_path = options[:credentials_path] ||
63
+ determine_credentials_path
64
+ load_credentials_file if loadable?(@credentials_path)
65
+ if @config_enabled
66
+ @config_path = options[:config_path] || determine_config_path
67
+ load_config_file if loadable?(@config_path)
68
+ end
69
+ end
70
+
71
+ # @return [Boolean] Returns `true` if a credential file
72
+ # exists and has appropriate read permissions at {#path}.
73
+ # @note This method does not indicate if the file found at {#path}
74
+ # will be parsable, only if it can be read.
75
+ def loadable?(path)
76
+ !path.nil? && File.exist?(path) && File.readable?(path)
77
+ end
78
+
79
+ # @return [Boolean] returns `true` if use of the shared config file is
80
+ # enabled.
81
+ def config_enabled?
82
+ @config_enabled ? true : false
83
+ end
84
+
85
+ # Sources static credentials from shared credential/config files.
86
+ #
87
+ # @param [Hash] options
88
+ # @option options [String] :profile the name of the configuration file from
89
+ # which credentials are being sourced.
90
+ # @return [Aws::Credentials] credentials sourced from configuration values,
91
+ # or `nil` if no valid credentials were found.
92
+ def credentials(opts = {})
93
+ p = opts[:profile] || @profile_name
94
+ validate_profile_exists(p) if credentials_present?
95
+ if credentials = credentials_from_shared(p, opts)
96
+ credentials
97
+ elsif credentials = credentials_from_config(p, opts)
98
+ credentials
99
+ end
100
+ end
101
+
102
+ # Attempts to assume a role from shared config or shared credentials file.
103
+ # Will always attempt first to assume a role from the shared credentials
104
+ # file, if present.
105
+ def assume_role_credentials_from_config(opts = {})
106
+ logger.debug "Entered assume_role_credentials_from_config with #{opts}"
107
+ p = opts.delete(:profile) || @profile_name
108
+ credentials = assume_role_from_profile(@parsed_credentials, p, opts)
109
+ if @parsed_config
110
+ logger.debug "Parsed config loaded, testing"
111
+ credentials ||= assume_role_from_profile(@parsed_config, p, opts)
112
+ end
113
+ credentials
114
+ end
115
+
116
+ def region(opts = {})
117
+ p = opts[:profile] || @profile_name
118
+ if @config_enabled
119
+ if @parsed_credentials
120
+ region = @parsed_credentials.fetch(p, {})["region"]
121
+ end
122
+ region ||= @parsed_config.fetch(p, {})["region"] if @parsed_config
123
+ region
124
+ end
125
+ end
126
+
127
+ private
128
+
129
+ def credentials_present?
130
+ (@parsed_credentials && !@parsed_credentials.empty?) ||
131
+ (@parsed_config && !@parsed_config.empty?)
132
+ end
133
+
134
+ def assume_role_from_profile(cfg, profile, opts)
135
+ if cfg && prof_cfg = cfg[profile]
136
+ opts[:source_profile] ||= prof_cfg["source_profile"]
137
+ if opts[:source_profile]
138
+ opts[:credentials] = credentials(profile: opts[:source_profile])
139
+ if opts[:credentials]
140
+ opts[:role_session_name] ||= prof_cfg["role_session_name"]
141
+ opts[:role_session_name] ||= "default_session"
142
+ opts[:role_arn] ||= prof_cfg["role_arn"]
143
+ opts[:external_id] ||= prof_cfg["external_id"]
144
+ opts[:serial_number] ||= prof_cfg["mfa_serial"]
145
+ opts[:profile] = opts.delete(:source_profile)
146
+ AssumeRoleCredentials.new(opts)
147
+ else
148
+ raise ::Aws::Errors::NoSourceProfileError, "Profile #{profile} has a role_arn, and source_profile, but the"\
149
+ " source_profile does not have credentials."
150
+ end
151
+ elsif prof_cfg["role_arn"]
152
+ raise ::Aws::Errors::NoSourceProfileError, "Profile #{profile} has a role_arn, but no source_profile."
153
+ end
154
+ end
155
+ end
156
+
157
+ def credentials_from_shared(profile, _opts)
158
+ if @parsed_credentials && prof_config = @parsed_credentials[profile]
159
+ credentials_from_profile(prof_config)
160
+ end
161
+ end
162
+
163
+ def credentials_from_config(profile, _opts)
164
+ if @parsed_config && prof_config = @parsed_config[profile]
165
+ credentials_from_profile(prof_config)
166
+ end
167
+ end
168
+
169
+ def credentials_from_profile(prof_config)
170
+ creds = Aws::Credentials.new(
171
+ prof_config["aws_access_key_id"],
172
+ prof_config["aws_secret_access_key"],
173
+ prof_config["aws_session_token"],
174
+ )
175
+ creds if credentials_complete(creds)
176
+ end
177
+
178
+ def credentials_complete(creds)
179
+ creds.set?
180
+ end
181
+
182
+ def load_credentials_file
183
+ @parsed_credentials = Aws::IniParser.ini_parse(
184
+ File.read(@credentials_path),
185
+ )
186
+ end
187
+
188
+ def load_config_file
189
+ @parsed_config = Aws::IniParser.ini_parse(File.read(@config_path))
190
+ end
191
+
192
+ def determine_credentials_path
193
+ default = default_shared_config_path("credentials")
194
+ end
195
+
196
+ def determine_config_path
197
+ default = default_shared_config_path("config")
198
+ end
199
+
200
+ def default_shared_config_path(file)
201
+ File.join(Dir.home, ".aws", file)
202
+ rescue ArgumentError
203
+ # Dir.home raises ArgumentError when ENV['home'] is not set
204
+ nil
205
+ end
206
+
207
+ def validate_profile_exists(profile)
208
+ unless (@parsed_credentials && @parsed_credentials[profile]) ||
209
+ (@parsed_config && @parsed_config[profile])
210
+ msg = "Profile `#{profile}' not found in #{@credentials_path}"
211
+ msg << " or #{@config_path}" if @config_path
212
+ raise ::Aws::Errors::NoSuchProfileError, msg
213
+ end
214
+ end
215
+
216
+ def determine_profile(options)
217
+ ret = options[:profile_name]
218
+ ret ||= ENV["AWS_PROFILE"]
219
+ ret ||= "default"
220
+ ret
221
+ end
222
+ end
223
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AwsAssumeRole
4
+ VERSION = "1.1.0".freeze
5
+ end
metadata ADDED
@@ -0,0 +1,438 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: aws_assume_role
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ platform: universal-darwin
6
+ authors:
7
+ - Jon Topper
8
+ - Jack Thomas
9
+ - Naadir Jeewa
10
+ - David King
11
+ - Tim Bannister
12
+ - Phil Potter
13
+ - Tom Haynes
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+ date: 2018-01-04 00:00:00.000000000 Z
18
+ dependencies:
19
+ - !ruby/object:Gem::Dependency
20
+ name: activesupport
21
+ requirement: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '4.2'
26
+ type: :runtime
27
+ prerelease: false
28
+ version_requirements: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '4.2'
33
+ - !ruby/object:Gem::Dependency
34
+ name: aws-sdk
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.7'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2.7'
47
+ - !ruby/object:Gem::Dependency
48
+ name: dry-configurable
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.5'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.5'
61
+ - !ruby/object:Gem::Dependency
62
+ name: dry-struct
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '0.1'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '0.1'
75
+ - !ruby/object:Gem::Dependency
76
+ name: dry-types
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.12'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.12'
89
+ - !ruby/object:Gem::Dependency
90
+ name: dry-validation
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '0.10'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.10'
103
+ - !ruby/object:Gem::Dependency
104
+ name: gli
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '2.15'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '2.15'
117
+ - !ruby/object:Gem::Dependency
118
+ name: highline
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '1.6'
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '1.6'
131
+ - !ruby/object:Gem::Dependency
132
+ name: i18n
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '0.7'
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '0.7'
145
+ - !ruby/object:Gem::Dependency
146
+ name: inifile
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '3.0'
152
+ type: :runtime
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '3.0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: launchy
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '2.4'
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '2.4'
173
+ - !ruby/object:Gem::Dependency
174
+ name: keyring
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '0.4'
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: 0.4.1
183
+ type: :runtime
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: '0.4'
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: 0.4.1
193
+ - !ruby/object:Gem::Dependency
194
+ name: pastel
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: '0.7'
200
+ type: :runtime
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - "~>"
205
+ - !ruby/object:Gem::Version
206
+ version: '0.7'
207
+ - !ruby/object:Gem::Dependency
208
+ name: smartcard
209
+ requirement: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - "~>"
212
+ - !ruby/object:Gem::Version
213
+ version: 0.5.6
214
+ type: :runtime
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - "~>"
219
+ - !ruby/object:Gem::Version
220
+ version: 0.5.6
221
+ - !ruby/object:Gem::Dependency
222
+ name: yubioath
223
+ requirement: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - "~>"
226
+ - !ruby/object:Gem::Version
227
+ version: '1.2'
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ version: 1.2.1
231
+ type: :runtime
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - "~>"
236
+ - !ruby/object:Gem::Version
237
+ version: '1.2'
238
+ - - ">="
239
+ - !ruby/object:Gem::Version
240
+ version: 1.2.1
241
+ - !ruby/object:Gem::Dependency
242
+ name: rspec
243
+ requirement: !ruby/object:Gem::Requirement
244
+ requirements:
245
+ - - "~>"
246
+ - !ruby/object:Gem::Version
247
+ version: '3.5'
248
+ type: :development
249
+ prerelease: false
250
+ version_requirements: !ruby/object:Gem::Requirement
251
+ requirements:
252
+ - - "~>"
253
+ - !ruby/object:Gem::Version
254
+ version: '3.5'
255
+ - !ruby/object:Gem::Dependency
256
+ name: rubocop
257
+ requirement: !ruby/object:Gem::Requirement
258
+ requirements:
259
+ - - '='
260
+ - !ruby/object:Gem::Version
261
+ version: '0.50'
262
+ type: :development
263
+ prerelease: false
264
+ version_requirements: !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - '='
267
+ - !ruby/object:Gem::Version
268
+ version: '0.50'
269
+ - !ruby/object:Gem::Dependency
270
+ name: yard
271
+ requirement: !ruby/object:Gem::Requirement
272
+ requirements:
273
+ - - "~>"
274
+ - !ruby/object:Gem::Version
275
+ version: '0.9'
276
+ type: :development
277
+ prerelease: false
278
+ version_requirements: !ruby/object:Gem::Requirement
279
+ requirements:
280
+ - - "~>"
281
+ - !ruby/object:Gem::Version
282
+ version: '0.9'
283
+ - !ruby/object:Gem::Dependency
284
+ name: simplecov
285
+ requirement: !ruby/object:Gem::Requirement
286
+ requirements:
287
+ - - "~>"
288
+ - !ruby/object:Gem::Version
289
+ version: '0.13'
290
+ type: :development
291
+ prerelease: false
292
+ version_requirements: !ruby/object:Gem::Requirement
293
+ requirements:
294
+ - - "~>"
295
+ - !ruby/object:Gem::Version
296
+ version: '0.13'
297
+ - !ruby/object:Gem::Dependency
298
+ name: webmock
299
+ requirement: !ruby/object:Gem::Requirement
300
+ requirements:
301
+ - - "~>"
302
+ - !ruby/object:Gem::Version
303
+ version: '2.3'
304
+ type: :development
305
+ prerelease: false
306
+ version_requirements: !ruby/object:Gem::Requirement
307
+ requirements:
308
+ - - "~>"
309
+ - !ruby/object:Gem::Version
310
+ version: '2.3'
311
+ - !ruby/object:Gem::Dependency
312
+ name: ruby-keychain
313
+ requirement: !ruby/object:Gem::Requirement
314
+ requirements:
315
+ - - "~>"
316
+ - !ruby/object:Gem::Version
317
+ version: '0.3'
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ version: 0.3.2
321
+ type: :runtime
322
+ prerelease: false
323
+ version_requirements: !ruby/object:Gem::Requirement
324
+ requirements:
325
+ - - "~>"
326
+ - !ruby/object:Gem::Version
327
+ version: '0.3'
328
+ - - ">="
329
+ - !ruby/object:Gem::Version
330
+ version: 0.3.2
331
+ description: Used to fetch multiple AWS Role Credential Keys using different Session
332
+ Keys and store them securely using Gnome Keyring or OSX keychain
333
+ email:
334
+ - jon@scalefactory.com
335
+ - jack@scalefactory.com
336
+ - naadir@scalefactory.com
337
+ - tim@scalefactory.com
338
+ executables:
339
+ - aws-assume-role
340
+ extensions: []
341
+ extra_rdoc_files: []
342
+ files:
343
+ - ".gitignore"
344
+ - ".rubocop.yml"
345
+ - ".ruby-version"
346
+ - ".simplecov"
347
+ - ".travis.yml"
348
+ - CHANGELOG.md
349
+ - Gemfile
350
+ - LICENSE.md
351
+ - README.md
352
+ - Rakefile
353
+ - aws_assume_role.gemspec
354
+ - bin/aws-assume-role
355
+ - i18n/en.yml
356
+ - lib/aws_assume_role.rb
357
+ - lib/aws_assume_role/cli.rb
358
+ - lib/aws_assume_role/cli/actions/abstract_action.rb
359
+ - lib/aws_assume_role/cli/actions/configure_profile.rb
360
+ - lib/aws_assume_role/cli/actions/configure_role_assumption.rb
361
+ - lib/aws_assume_role/cli/actions/console.rb
362
+ - lib/aws_assume_role/cli/actions/delete_profile.rb
363
+ - lib/aws_assume_role/cli/actions/includes.rb
364
+ - lib/aws_assume_role/cli/actions/list_profiles.rb
365
+ - lib/aws_assume_role/cli/actions/migrate_profile.rb
366
+ - lib/aws_assume_role/cli/actions/reset_environment.rb
367
+ - lib/aws_assume_role/cli/actions/run.rb
368
+ - lib/aws_assume_role/cli/actions/set_environment.rb
369
+ - lib/aws_assume_role/cli/actions/test.rb
370
+ - lib/aws_assume_role/cli/commands/configure.rb
371
+ - lib/aws_assume_role/cli/commands/console.rb
372
+ - lib/aws_assume_role/cli/commands/delete.rb
373
+ - lib/aws_assume_role/cli/commands/environment.rb
374
+ - lib/aws_assume_role/cli/commands/list.rb
375
+ - lib/aws_assume_role/cli/commands/migrate.rb
376
+ - lib/aws_assume_role/cli/commands/run.rb
377
+ - lib/aws_assume_role/cli/commands/test.rb
378
+ - lib/aws_assume_role/cli/includes.rb
379
+ - lib/aws_assume_role/configuration.rb
380
+ - lib/aws_assume_role/core_ext/aws-sdk/credential_provider_chain.rb
381
+ - lib/aws_assume_role/core_ext/aws-sdk/includes.rb
382
+ - lib/aws_assume_role/credentials/factories.rb
383
+ - lib/aws_assume_role/credentials/factories/abstract_factory.rb
384
+ - lib/aws_assume_role/credentials/factories/assume_role.rb
385
+ - lib/aws_assume_role/credentials/factories/default_chain_provider.rb
386
+ - lib/aws_assume_role/credentials/factories/environment.rb
387
+ - lib/aws_assume_role/credentials/factories/includes.rb
388
+ - lib/aws_assume_role/credentials/factories/instance_profile.rb
389
+ - lib/aws_assume_role/credentials/factories/repository.rb
390
+ - lib/aws_assume_role/credentials/factories/shared.rb
391
+ - lib/aws_assume_role/credentials/factories/static.rb
392
+ - lib/aws_assume_role/credentials/includes.rb
393
+ - lib/aws_assume_role/credentials/providers/assume_role_credentials.rb
394
+ - lib/aws_assume_role/credentials/providers/includes.rb
395
+ - lib/aws_assume_role/credentials/providers/mfa_session_credentials.rb
396
+ - lib/aws_assume_role/credentials/providers/shared_keyring_credentials.rb
397
+ - lib/aws_assume_role/includes.rb
398
+ - lib/aws_assume_role/logging.rb
399
+ - lib/aws_assume_role/profile_configuration.rb
400
+ - lib/aws_assume_role/runner.rb
401
+ - lib/aws_assume_role/store/includes.rb
402
+ - lib/aws_assume_role/store/keyring.rb
403
+ - lib/aws_assume_role/store/serialization.rb
404
+ - lib/aws_assume_role/store/shared_config_with_keyring.rb
405
+ - lib/aws_assume_role/types.rb
406
+ - lib/aws_assume_role/ui.rb
407
+ - lib/aws_assume_role/vendored/aws.rb
408
+ - lib/aws_assume_role/vendored/aws/README.md
409
+ - lib/aws_assume_role/vendored/aws/assume_role_credentials.rb
410
+ - lib/aws_assume_role/vendored/aws/includes.rb
411
+ - lib/aws_assume_role/vendored/aws/refreshing_credentials.rb
412
+ - lib/aws_assume_role/vendored/aws/shared_config.rb
413
+ - lib/aws_assume_role/version.rb
414
+ homepage: https://github.com/scalefactory/aws-assume-role
415
+ licenses:
416
+ - Apache-2.0
417
+ metadata: {}
418
+ post_install_message:
419
+ rdoc_options: []
420
+ require_paths:
421
+ - lib
422
+ required_ruby_version: !ruby/object:Gem::Requirement
423
+ requirements:
424
+ - - ">="
425
+ - !ruby/object:Gem::Version
426
+ version: '0'
427
+ required_rubygems_version: !ruby/object:Gem::Requirement
428
+ requirements:
429
+ - - ">="
430
+ - !ruby/object:Gem::Version
431
+ version: '0'
432
+ requirements: []
433
+ rubyforge_project:
434
+ rubygems_version: 2.7.2
435
+ signing_key:
436
+ specification_version: 4
437
+ summary: Manage AWS STS credentials with MFA
438
+ test_files: []