aws_assume_role 1.0.6-linux

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.
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 +21 -0
  7. data/CHANGELOG.md +57 -0
  8. data/Gemfile +18 -0
  9. data/LICENSE.md +201 -0
  10. data/README.md +303 -0
  11. data/Rakefile +47 -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/cli/actions/abstract_action.rb +61 -0
  16. data/lib/aws_assume_role/cli/actions/configure_profile.rb +24 -0
  17. data/lib/aws_assume_role/cli/actions/configure_role_assumption.rb +22 -0
  18. data/lib/aws_assume_role/cli/actions/console.rb +70 -0
  19. data/lib/aws_assume_role/cli/actions/delete_profile.rb +22 -0
  20. data/lib/aws_assume_role/cli/actions/includes.rb +12 -0
  21. data/lib/aws_assume_role/cli/actions/list_profiles.rb +12 -0
  22. data/lib/aws_assume_role/cli/actions/migrate_profile.rb +20 -0
  23. data/lib/aws_assume_role/cli/actions/reset_environment.rb +50 -0
  24. data/lib/aws_assume_role/cli/actions/run.rb +36 -0
  25. data/lib/aws_assume_role/cli/actions/set_environment.rb +62 -0
  26. data/lib/aws_assume_role/cli/actions/test.rb +35 -0
  27. data/lib/aws_assume_role/cli/commands/configure.rb +32 -0
  28. data/lib/aws_assume_role/cli/commands/console.rb +19 -0
  29. data/lib/aws_assume_role/cli/commands/delete.rb +13 -0
  30. data/lib/aws_assume_role/cli/commands/environment.rb +34 -0
  31. data/lib/aws_assume_role/cli/commands/list.rb +12 -0
  32. data/lib/aws_assume_role/cli/commands/migrate.rb +13 -0
  33. data/lib/aws_assume_role/cli/commands/run.rb +19 -0
  34. data/lib/aws_assume_role/cli/commands/test.rb +20 -0
  35. data/lib/aws_assume_role/cli/includes.rb +3 -0
  36. data/lib/aws_assume_role/cli.rb +20 -0
  37. data/lib/aws_assume_role/configuration.rb +30 -0
  38. data/lib/aws_assume_role/core_ext/aws-sdk/credential_provider_chain.rb +4 -0
  39. data/lib/aws_assume_role/core_ext/aws-sdk/includes.rb +9 -0
  40. data/lib/aws_assume_role/credentials/factories/abstract_factory.rb +33 -0
  41. data/lib/aws_assume_role/credentials/factories/assume_role.rb +39 -0
  42. data/lib/aws_assume_role/credentials/factories/default_chain_provider.rb +113 -0
  43. data/lib/aws_assume_role/credentials/factories/environment.rb +26 -0
  44. data/lib/aws_assume_role/credentials/factories/includes.rb +15 -0
  45. data/lib/aws_assume_role/credentials/factories/instance_profile.rb +19 -0
  46. data/lib/aws_assume_role/credentials/factories/repository.rb +37 -0
  47. data/lib/aws_assume_role/credentials/factories/shared.rb +19 -0
  48. data/lib/aws_assume_role/credentials/factories/static.rb +18 -0
  49. data/lib/aws_assume_role/credentials/factories.rb +11 -0
  50. data/lib/aws_assume_role/credentials/includes.rb +6 -0
  51. data/lib/aws_assume_role/credentials/providers/assume_role_credentials.rb +60 -0
  52. data/lib/aws_assume_role/credentials/providers/includes.rb +9 -0
  53. data/lib/aws_assume_role/credentials/providers/mfa_session_credentials.rb +119 -0
  54. data/lib/aws_assume_role/credentials/providers/shared_keyring_credentials.rb +41 -0
  55. data/lib/aws_assume_role/includes.rb +38 -0
  56. data/lib/aws_assume_role/logging.rb +27 -0
  57. data/lib/aws_assume_role/profile_configuration.rb +73 -0
  58. data/lib/aws_assume_role/runner.rb +40 -0
  59. data/lib/aws_assume_role/store/includes.rb +8 -0
  60. data/lib/aws_assume_role/store/keyring.rb +61 -0
  61. data/lib/aws_assume_role/store/serialization.rb +20 -0
  62. data/lib/aws_assume_role/store/shared_config_with_keyring.rb +250 -0
  63. data/lib/aws_assume_role/types.rb +31 -0
  64. data/lib/aws_assume_role/ui.rb +57 -0
  65. data/lib/aws_assume_role/vendored/aws/README.md +2 -0
  66. data/lib/aws_assume_role/vendored/aws/assume_role_credentials.rb +67 -0
  67. data/lib/aws_assume_role/vendored/aws/includes.rb +9 -0
  68. data/lib/aws_assume_role/vendored/aws/refreshing_credentials.rb +58 -0
  69. data/lib/aws_assume_role/vendored/aws/shared_config.rb +223 -0
  70. data/lib/aws_assume_role/vendored/aws.rb +4 -0
  71. data/lib/aws_assume_role/version.rb +5 -0
  72. data/lib/aws_assume_role.rb +4 -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,4 @@
1
+ require_relative "aws/assume_role_credentials"
2
+ require_relative "aws/refreshing_credentials"
3
+ require_relative "../store/shared_config_with_keyring"
4
+ require_relative "aws/shared_config"
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AwsAssumeRole
4
+ VERSION = "1.0.6".freeze
5
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "aws_assume_role/store/shared_config_with_keyring"
4
+ require_relative "aws_assume_role/credentials/factories/default_chain_provider"
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.0.6
5
+ platform: linux
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-02 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: gir_ffi-gnome_keyring
313
+ requirement: !ruby/object:Gem::Requirement
314
+ requirements:
315
+ - - "~>"
316
+ - !ruby/object:Gem::Version
317
+ version: '0.0'
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ version: 0.0.3
321
+ type: :runtime
322
+ prerelease: false
323
+ version_requirements: !ruby/object:Gem::Requirement
324
+ requirements:
325
+ - - "~>"
326
+ - !ruby/object:Gem::Version
327
+ version: '0.0'
328
+ - - ">="
329
+ - !ruby/object:Gem::Version
330
+ version: 0.0.3
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: []