aws-sdk-core 3.127.0 → 3.130.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 918c0204898bdad127acf619312dbce114cb19cc5c33e072548ac948c85c34a8
4
- data.tar.gz: 79b434c6e925efbf6c8921a915aa20171a702cfd89bfd9caee27739017a46978
3
+ metadata.gz: d7804cbac83996a95b2cacbd808389798eb0b461229a9e8e2a966cd28d599aa6
4
+ data.tar.gz: ce3557bcbd4d6a5edaa1bc99fbd7e75f9b2e23eb6fadb8be06a69b91e2e8a4a7
5
5
  SHA512:
6
- metadata.gz: 51b4885b28f643ae32d0765fd5ca08f565cd60235c4d21e2b432710353afd1d25c957c7e0fd462c489263272f809b2dedbd4803eaa7b26266738bee764b5c2e4
7
- data.tar.gz: dc8671e28caf0a7dcf0cef57ef25e35a8b6ed846d428e8c80aec1c6cb14b9b24e62705e231d497c917254202a4588ea8379b451457a2c6e2f292a66edf1df0cd
6
+ metadata.gz: d1d0b4ec0b478389290d84409869ed012e4a2ce6408d3dc5c46c618771cc970d9086eb4686dd64b740ebd5eeafe7cc0e8b6fa63d3f89202e8f2841d9a203bdbb
7
+ data.tar.gz: f4c41ffb85d712bcaf8701aa61a886837517df23e14a53c2b9201d86bfcc1fd41b5b8badded9f91aeb0ee77553c9e2af80b4c82d1e249486b5630afc1582939c
data/CHANGELOG.md CHANGED
@@ -1,6 +1,33 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 3.130.0 (2022-03-11)
5
+ ------------------
6
+
7
+ * Feature - Asynchronously refresh AWS credentials (#2641).
8
+
9
+ * Issue - Add x-amz-region-set to list of headers deleted for re-sign.
10
+
11
+ 3.129.1 (2022-03-10)
12
+ ------------------
13
+
14
+ * Issue - Make stubs thread safe by creating new responses for each operation call (#2675).
15
+
16
+ 3.129.0 (2022-03-08)
17
+ ------------------
18
+
19
+ * Feature - Add support for cases when `InstanceProfileCredentials` (IMDS) is unable to refresh credentials.
20
+
21
+ 3.128.1 (2022-03-07)
22
+ ------------------
23
+
24
+ * Issue - Fixed `Aws::PageableResponse` invalidating Ruby's global constant cache.
25
+
26
+ 3.128.0 (2022-03-04)
27
+ ------------------
28
+
29
+ * Feature - Updated Aws::STS::Client with the latest API changes.
30
+
4
31
  3.127.0 (2022-02-24)
5
32
  ------------------
6
33
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.127.0
1
+ 3.130.0
@@ -54,6 +54,7 @@ module Aws
54
54
  end
55
55
  end
56
56
  @client = client_opts[:client] || STS::Client.new(client_opts)
57
+ @async_refresh = true
57
58
  super
58
59
  end
59
60
 
@@ -17,7 +17,7 @@ module Aws
17
17
  # ...
18
18
  # )
19
19
  # For full list of parameters accepted
20
- # @see Aws::STS::Client#assume_role_with_web_identity
20
+ # @see Aws::STS::Client#assume_role_with_web_identity
21
21
  #
22
22
  #
23
23
  # If you omit `:client` option, a new {STS::Client} object will be
@@ -48,6 +48,7 @@ module Aws
48
48
  client_opts = {}
49
49
  @assume_role_web_identity_params = {}
50
50
  @token_file = options.delete(:web_identity_token_file)
51
+ @async_refresh = true
51
52
  options.each_pair do |key, value|
52
53
  if self.class.assume_role_web_identity_options.include?(key)
53
54
  @assume_role_web_identity_params[key] = value
@@ -262,13 +262,17 @@ module Aws
262
262
  end
263
263
 
264
264
  def convert_stub(operation_name, stub)
265
- case stub
265
+ stub = case stub
266
266
  when Proc then stub
267
267
  when Exception, Class then { error: stub }
268
268
  when String then service_error_stub(stub)
269
269
  when Hash then http_response_stub(operation_name, stub)
270
270
  else { data: stub }
271
271
  end
272
+ if Hash === stub
273
+ stub[:mutex] = Mutex.new
274
+ end
275
+ stub
272
276
  end
273
277
 
274
278
  def service_error_stub(error_code)
@@ -62,6 +62,7 @@ module Aws
62
62
  @http_read_timeout = options[:http_read_timeout] || 5
63
63
  @http_debug_output = options[:http_debug_output]
64
64
  @backoff = backoff(options[:backoff])
65
+ @async_refresh = false
65
66
  super
66
67
  end
67
68
 
@@ -78,6 +78,8 @@ module Aws
78
78
  @backoff = backoff(options[:backoff])
79
79
  @token_ttl = options[:token_ttl] || 21_600
80
80
  @token = nil
81
+ @no_refresh_until = nil
82
+ @async_refresh = false
81
83
  super
82
84
  end
83
85
 
@@ -125,18 +127,48 @@ module Aws
125
127
  end
126
128
 
127
129
  def refresh
130
+ if @no_refresh_until && @no_refresh_until > Time.now
131
+ warn_expired_credentials
132
+ return
133
+ end
134
+
128
135
  # Retry loading credentials up to 3 times is the instance metadata
129
136
  # service is responding but is returning invalid JSON documents
130
137
  # in response to the GET profile credentials call.
131
138
  begin
132
139
  retry_errors([Aws::Json::ParseError, StandardError], max_retries: 3) do
133
140
  c = Aws::Json.load(get_credentials.to_s)
134
- @credentials = Credentials.new(
135
- c['AccessKeyId'],
136
- c['SecretAccessKey'],
137
- c['Token']
138
- )
139
- @expiration = c['Expiration'] ? Time.iso8601(c['Expiration']) : nil
141
+ if empty_credentials?(@credentials)
142
+ @credentials = Credentials.new(
143
+ c['AccessKeyId'],
144
+ c['SecretAccessKey'],
145
+ c['Token']
146
+ )
147
+ @expiration = c['Expiration'] ? Time.iso8601(c['Expiration']) : nil
148
+ if @expiration && @expiration < Time.now
149
+ @no_refresh_until = Time.now + refresh_offset
150
+ warn_expired_credentials
151
+ end
152
+ else
153
+ # credentials are already set, update them only if the new ones are not empty
154
+ if !c['AccessKeyId'] || c['AccessKeyId'].empty?
155
+ # error getting new credentials
156
+ @no_refresh_until = Time.now + refresh_offset
157
+ warn_expired_credentials
158
+ else
159
+ @credentials = Credentials.new(
160
+ c['AccessKeyId'],
161
+ c['SecretAccessKey'],
162
+ c['Token']
163
+ )
164
+ @expiration = c['Expiration'] ? Time.iso8601(c['Expiration']) : nil
165
+ if @expiration && @expiration < Time.now
166
+ @no_refresh_until = Time.now + refresh_offset
167
+ warn_expired_credentials
168
+ end
169
+ end
170
+ end
171
+
140
172
  end
141
173
  rescue Aws::Json::ParseError
142
174
  raise Aws::Errors::MetadataParserError
@@ -260,6 +292,21 @@ module Aws
260
292
  end
261
293
  end
262
294
 
295
+ def warn_expired_credentials
296
+ warn("Attempting credential expiration extension due to a credential "\
297
+ "service availability issue. A refresh of these credentials "\
298
+ "will be attempted again in 5 minutes.")
299
+ end
300
+
301
+ def empty_credentials?(creds)
302
+ !creds || !creds.access_key_id || creds.access_key_id.empty?
303
+ end
304
+
305
+ # Compute an offset for refresh with jitter
306
+ def refresh_offset
307
+ 300 + rand(0..60)
308
+ end
309
+
263
310
  # @api private
264
311
  # Token used to fetch IMDS profile and credentials
265
312
  class Token
@@ -48,11 +48,11 @@ module Aws
48
48
  #
49
49
  module PageableResponse
50
50
 
51
- def self.extended(base)
52
- base.extend Enumerable
53
- base.extend UnsafeEnumerableMethods
54
- base.instance_variable_set("@last_page", nil)
55
- base.instance_variable_set("@more_results", nil)
51
+ def self.apply(base)
52
+ base.extend Extension
53
+ base.instance_variable_set(:@last_page, nil)
54
+ base.instance_variable_set(:@more_results, nil)
55
+ base
56
56
  end
57
57
 
58
58
  # @return [Paging::Pager]
@@ -62,39 +62,26 @@ module Aws
62
62
  # when this method returns `false` will raise an error.
63
63
  # @return [Boolean]
64
64
  def last_page?
65
- if @last_page.nil?
66
- @last_page = !@pager.truncated?(self)
67
- end
68
- @last_page
65
+ # Actual implementation is in PageableResponse::Extension
69
66
  end
70
67
 
71
68
  # Returns `true` if there are more results. Calling {#next_page} will
72
69
  # return the next response.
73
70
  # @return [Boolean]
74
71
  def next_page?
75
- !last_page?
72
+ # Actual implementation is in PageableResponse::Extension
76
73
  end
77
74
 
78
75
  # @return [Seahorse::Client::Response]
79
76
  def next_page(params = {})
80
- if last_page?
81
- raise LastPageError.new(self)
82
- else
83
- next_response(params)
84
- end
77
+ # Actual implementation is in PageableResponse::Extension
85
78
  end
86
79
 
87
80
  # Yields the current and each following response to the given block.
88
81
  # @yieldparam [Response] response
89
82
  # @return [Enumerable,nil] Returns a new Enumerable if no block is given.
90
83
  def each(&block)
91
- return enum_for(:each_page) unless block_given?
92
- response = self
93
- yield(response)
94
- until response.last_page?
95
- response = response.next_page
96
- yield(response)
97
- end
84
+ # Actual implementation is in PageableResponse::Extension
98
85
  end
99
86
  alias each_page each
100
87
 
@@ -105,9 +92,7 @@ module Aws
105
92
  # @return [Seahorse::Client::Response] Returns the next page of
106
93
  # results.
107
94
  def next_response(params)
108
- params = next_page_params(params)
109
- request = context.client.build_request(context.operation_name, params)
110
- request.send_request
95
+ # Actual implementation is in PageableResponse::Extension
111
96
  end
112
97
 
113
98
  # @param [Hash] params A hash of additional request params to
@@ -115,13 +100,7 @@ module Aws
115
100
  # @return [Hash] Returns the hash of request parameters for the
116
101
  # next page, merging any given params.
117
102
  def next_page_params(params)
118
- # Remove all previous tokens from original params
119
- # Sometimes a token can be nil and merge would not include it.
120
- tokens = @pager.tokens.values.map(&:to_sym)
121
-
122
- params_without_tokens = context[:original_params].reject { |k, _v| tokens.include?(k) }
123
- params_without_tokens.merge!(@pager.next_tokens(self).merge(params))
124
- params_without_tokens
103
+ # Actual implementation is in PageableResponse::Extension
125
104
  end
126
105
 
127
106
  # Raised when calling {PageableResponse#next_page} on a pager that
@@ -168,5 +147,66 @@ module Aws
168
147
  end
169
148
 
170
149
  end
150
+
151
+ # The actual decorator module implementation. It is in a distinct module
152
+ # so that it can be used to extend objects without busting Ruby's constant cache.
153
+ # object.extend(mod) bust the constant cache only if `mod` contains constants of its own.
154
+ # @api private
155
+ module Extension
156
+
157
+ include Enumerable
158
+ include UnsafeEnumerableMethods
159
+
160
+ attr_accessor :pager
161
+
162
+ def last_page?
163
+ if @last_page.nil?
164
+ @last_page = !@pager.truncated?(self)
165
+ end
166
+ @last_page
167
+ end
168
+
169
+ def next_page?
170
+ !last_page?
171
+ end
172
+
173
+ def next_page(params = {})
174
+ if last_page?
175
+ raise LastPageError.new(self)
176
+ else
177
+ next_response(params)
178
+ end
179
+ end
180
+
181
+ def each(&block)
182
+ return enum_for(:each_page) unless block_given?
183
+ response = self
184
+ yield(response)
185
+ until response.last_page?
186
+ response = response.next_page
187
+ yield(response)
188
+ end
189
+ end
190
+ alias each_page each
191
+
192
+ private
193
+
194
+ def next_response(params)
195
+ params = next_page_params(params)
196
+ request = context.client.build_request(context.operation_name, params)
197
+ request.send_request
198
+ end
199
+
200
+ def next_page_params(params)
201
+ # Remove all previous tokens from original params
202
+ # Sometimes a token can be nil and merge would not include it.
203
+ tokens = @pager.tokens.values.map(&:to_sym)
204
+
205
+ params_without_tokens = context[:original_params].reject { |k, _v| tokens.include?(k) }
206
+ params_without_tokens.merge!(@pager.next_tokens(self).merge(params))
207
+ params_without_tokens
208
+ end
209
+
210
+ end
171
211
  end
172
212
  end
@@ -10,7 +10,7 @@ module Aws
10
10
  def call(context)
11
11
  context[:original_params] = context.params
12
12
  resp = @handler.call(context)
13
- resp.extend(PageableResponse)
13
+ PageableResponse.apply(resp)
14
14
  resp.pager = context.operation[:pager] || Aws::Pager::NullPager.new
15
15
  resp
16
16
  end
@@ -98,6 +98,7 @@ module Aws
98
98
  req.headers.delete('Authorization')
99
99
  req.headers.delete('X-Amz-Security-Token')
100
100
  req.headers.delete('X-Amz-Date')
101
+ req.headers.delete('x-Amz-Region-Set')
101
102
 
102
103
  if context.config.respond_to?(:clock_skew) &&
103
104
  context.config.clock_skew &&
@@ -51,7 +51,11 @@ requests are made, and retries are disabled.
51
51
  stub = context.client.next_stub(context)
52
52
  resp = Seahorse::Client::Response.new(context: context)
53
53
  async_mode = context.client.is_a? Seahorse::Client::AsyncBase
54
- apply_stub(stub, resp, async_mode)
54
+ if Hash === stub && stub[:mutex]
55
+ stub[:mutex].synchronize { apply_stub(stub, resp, async_mode) }
56
+ else
57
+ apply_stub(stub, resp, async_mode)
58
+ end
55
59
 
56
60
  async_mode ? Seahorse::Client::AsyncResponse.new(
57
61
  context: context, stream: context[:input_event_stream_handler].event_emitter.stream, sync_queue: Queue.new) : resp
@@ -27,6 +27,7 @@ module Aws
27
27
  def initialize(process)
28
28
  @process = process
29
29
  @credentials = credentials_from_process(@process)
30
+ @async_refresh = false
30
31
 
31
32
  super
32
33
  end
@@ -73,9 +74,9 @@ module Aws
73
74
  @credentials = credentials_from_process(@process)
74
75
  end
75
76
 
76
- def near_expiration?
77
+ def near_expiration?(expiration_length)
77
78
  # are we within 5 minutes of expiration?
78
- @expiration && (Time.now.to_i + 5 * 60) > @expiration.to_i
79
+ @expiration && (Time.now.to_i + expiration_length) > @expiration.to_i
79
80
  end
80
81
  end
81
82
  end
@@ -17,6 +17,9 @@ module Aws
17
17
  # @api private
18
18
  module RefreshingCredentials
19
19
 
20
+ SYNC_EXPIRATION_LENGTH = 300 # 5 minutes
21
+ ASYNC_EXPIRATION_LENGTH = 600 # 10 minutes
22
+
20
23
  def initialize(options = {})
21
24
  @mutex = Mutex.new
22
25
  @before_refresh = options.delete(:before_refresh) if Hash === options
@@ -27,13 +30,13 @@ module Aws
27
30
 
28
31
  # @return [Credentials]
29
32
  def credentials
30
- refresh_if_near_expiration
33
+ refresh_if_near_expiration!
31
34
  @credentials
32
35
  end
33
36
 
34
37
  # @return [Time,nil]
35
38
  def expiration
36
- refresh_if_near_expiration
39
+ refresh_if_near_expiration!
37
40
  @expiration
38
41
  end
39
42
 
@@ -49,24 +52,39 @@ module Aws
49
52
 
50
53
  private
51
54
 
52
- # Refreshes instance metadata credentials if they are within
53
- # 5 minutes of expiration.
54
- def refresh_if_near_expiration
55
- if near_expiration?
55
+ # Refreshes credentials asynchronously and synchronously.
56
+ # If we are near to expiration, block while getting new credentials.
57
+ # Otherwise, if we're approaching expiration, use the existing credentials
58
+ # but attempt a refresh in the background.
59
+ def refresh_if_near_expiration!
60
+ # Note: This check is an optimization. Rather than acquire the mutex on every #refresh_if_near_expiration
61
+ # call, we check before doing so, and then we check within the mutex to avoid a race condition.
62
+ # See issue: https://github.com/aws/aws-sdk-ruby/issues/2641 for more info.
63
+ if near_expiration?(SYNC_EXPIRATION_LENGTH)
56
64
  @mutex.synchronize do
57
- if near_expiration?
65
+ if near_expiration?(SYNC_EXPIRATION_LENGTH)
58
66
  @before_refresh.call(self) if @before_refresh
59
-
60
67
  refresh
61
68
  end
62
69
  end
70
+ elsif @async_refresh && near_expiration?(ASYNC_EXPIRATION_LENGTH)
71
+ unless @mutex.locked?
72
+ Thread.new do
73
+ @mutex.synchronize do
74
+ if near_expiration?(ASYNC_EXPIRATION_LENGTH)
75
+ @before_refresh.call(self) if @before_refresh
76
+ refresh
77
+ end
78
+ end
79
+ end
80
+ end
63
81
  end
64
82
  end
65
83
 
66
- def near_expiration?
84
+ def near_expiration?(expiration_length)
67
85
  if @expiration
68
- # are we within 5 minutes of expiration?
69
- (Time.now.to_i + 5 * 60) > @expiration.to_i
86
+ # Are we within expiration?
87
+ (Time.now.to_i + expiration_length) > @expiration.to_i
70
88
  else
71
89
  true
72
90
  end
@@ -86,6 +86,7 @@ module Aws
86
86
  options[:region] = @sso_region
87
87
  options[:credentials] = nil
88
88
  @client = options[:client] || Aws::SSO::Client.new(options)
89
+ @async_refresh = true
89
90
  super
90
91
  end
91
92
 
@@ -545,7 +545,7 @@ module Aws::SSO
545
545
  params: params,
546
546
  config: config)
547
547
  context[:gem_name] = 'aws-sdk-core'
548
- context[:gem_version] = '3.127.0'
548
+ context[:gem_version] = '3.130.0'
549
549
  Seahorse::Client::Request.new(handlers, context)
550
550
  end
551
551
 
data/lib/aws-sdk-sso.rb CHANGED
@@ -50,6 +50,6 @@ require_relative 'aws-sdk-sso/customizations'
50
50
  # @!group service
51
51
  module Aws::SSO
52
52
 
53
- GEM_VERSION = '3.127.0'
53
+ GEM_VERSION = '3.130.0'
54
54
 
55
55
  end
@@ -641,7 +641,7 @@ module Aws::STS
641
641
  #
642
642
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
643
643
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
644
- # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/session-tags.html#id_session-tags_ctlogs
644
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_ctlogs
645
645
  #
646
646
  # @option params [Array<String>] :transitive_tag_keys
647
647
  # A list of keys for session tags that you want to set as transitive. If
@@ -1179,19 +1179,20 @@ module Aws::STS
1179
1179
 
1180
1180
  # Returns a set of temporary security credentials for users who have
1181
1181
  # been authenticated in a mobile or web application with a web identity
1182
- # provider. Example providers include Amazon Cognito, Login with Amazon,
1183
- # Facebook, Google, or any OpenID Connect-compatible identity provider.
1182
+ # provider. Example providers include the OAuth 2.0 providers Login with
1183
+ # Amazon and Facebook, or any OpenID Connect-compatible identity
1184
+ # provider such as Google or [Amazon Cognito federated identities][1].
1184
1185
  #
1185
1186
  # <note markdown="1"> For mobile applications, we recommend that you use Amazon Cognito. You
1186
1187
  # can use Amazon Cognito with the [Amazon Web Services SDK for iOS
1187
- # Developer Guide][1] and the [Amazon Web Services SDK for Android
1188
- # Developer Guide][2] to uniquely identify a user. You can also supply
1188
+ # Developer Guide][2] and the [Amazon Web Services SDK for Android
1189
+ # Developer Guide][3] to uniquely identify a user. You can also supply
1189
1190
  # the user with a consistent identity throughout the lifetime of an
1190
1191
  # application.
1191
1192
  #
1192
- # To learn more about Amazon Cognito, see [Amazon Cognito Overview][3]
1193
+ # To learn more about Amazon Cognito, see [Amazon Cognito Overview][4]
1193
1194
  # in *Amazon Web Services SDK for Android Developer Guide* and [Amazon
1194
- # Cognito Overview][4] in the *Amazon Web Services SDK for iOS Developer
1195
+ # Cognito Overview][5] in the *Amazon Web Services SDK for iOS Developer
1195
1196
  # Guide*.
1196
1197
  #
1197
1198
  # </note>
@@ -1206,8 +1207,8 @@ module Aws::STS
1206
1207
  # a token from the web identity provider. For a comparison of
1207
1208
  # `AssumeRoleWithWebIdentity` with the other API operations that produce
1208
1209
  # temporary credentials, see [Requesting Temporary Security
1209
- # Credentials][5] and [Comparing the Amazon Web Services STS API
1210
- # operations][6] in the *IAM User Guide*.
1210
+ # Credentials][6] and [Comparing the Amazon Web Services STS API
1211
+ # operations][7] in the *IAM User Guide*.
1211
1212
  #
1212
1213
  # The temporary security credentials returned by this API consist of an
1213
1214
  # access key ID, a secret access key, and a security token. Applications
@@ -1223,11 +1224,11 @@ module Aws::STS
1223
1224
  # to the maximum session duration setting for the role. This setting can
1224
1225
  # have a value from 1 hour to 12 hours. To learn how to view the maximum
1225
1226
  # value for your role, see [View the Maximum Session Duration Setting
1226
- # for a Role][7] in the *IAM User Guide*. The maximum session duration
1227
+ # for a Role][8] in the *IAM User Guide*. The maximum session duration
1227
1228
  # limit applies when you use the `AssumeRole*` API operations or the
1228
1229
  # `assume-role*` CLI commands. However the limit does not apply when you
1229
1230
  # use those operations to create a console URL. For more information,
1230
- # see [Using IAM Roles][8] in the *IAM User Guide*.
1231
+ # see [Using IAM Roles][9] in the *IAM User Guide*.
1231
1232
  #
1232
1233
  # **Permissions**
1233
1234
  #
@@ -1236,7 +1237,7 @@ module Aws::STS
1236
1237
  # Amazon Web Services service with the following exception: you cannot
1237
1238
  # call the STS `GetFederationToken` or `GetSessionToken` API operations.
1238
1239
  #
1239
- # (Optional) You can pass inline or managed [session policies][9] to
1240
+ # (Optional) You can pass inline or managed [session policies][10] to
1240
1241
  # this operation. You can pass a single JSON policy document to use as
1241
1242
  # an inline session policy. You can also specify up to 10 managed
1242
1243
  # policies to use as managed session policies. The plaintext that you
@@ -1248,7 +1249,7 @@ module Aws::STS
1248
1249
  # Services API calls to access resources in the account that owns the
1249
1250
  # role. You cannot use session policies to grant more permissions than
1250
1251
  # those allowed by the identity-based policy of the role that is being
1251
- # assumed. For more information, see [Session Policies][9] in the *IAM
1252
+ # assumed. For more information, see [Session Policies][10] in the *IAM
1252
1253
  # User Guide*.
1253
1254
  #
1254
1255
  # **Tags**
@@ -1256,12 +1257,12 @@ module Aws::STS
1256
1257
  # (Optional) You can configure your IdP to pass attributes into your web
1257
1258
  # identity token as session tags. Each session tag consists of a key
1258
1259
  # name and an associated value. For more information about session tags,
1259
- # see [Passing Session Tags in STS][10] in the *IAM User Guide*.
1260
+ # see [Passing Session Tags in STS][11] in the *IAM User Guide*.
1260
1261
  #
1261
1262
  # You can pass up to 50 session tags. The plaintext session tag keys
1262
1263
  # can’t exceed 128 characters and the values can’t exceed 256
1263
1264
  # characters. For these and additional limits, see [IAM and STS
1264
- # Character Limits][11] in the *IAM User Guide*.
1265
+ # Character Limits][12] in the *IAM User Guide*.
1265
1266
  #
1266
1267
  # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
1267
1268
  # policies and session tags into a packed binary format that has a
@@ -1279,12 +1280,12 @@ module Aws::STS
1279
1280
  # An administrator must grant you the permissions necessary to pass
1280
1281
  # session tags. The administrator can also create granular permissions
1281
1282
  # to allow you to pass only specific session tags. For more information,
1282
- # see [Tutorial: Using Tags for Attribute-Based Access Control][12] in
1283
+ # see [Tutorial: Using Tags for Attribute-Based Access Control][13] in
1283
1284
  # the *IAM User Guide*.
1284
1285
  #
1285
1286
  # You can set the session tags as transitive. Transitive tags persist
1286
1287
  # during role chaining. For more information, see [Chaining Roles with
1287
- # Session Tags][13] in the *IAM User Guide*.
1288
+ # Session Tags][14] in the *IAM User Guide*.
1288
1289
  #
1289
1290
  # **Identities**
1290
1291
  #
@@ -1296,54 +1297,55 @@ module Aws::STS
1296
1297
  # specified in the role's trust policy.
1297
1298
  #
1298
1299
  # Calling `AssumeRoleWithWebIdentity` can result in an entry in your
1299
- # CloudTrail logs. The entry includes the [Subject][14] of the provided
1300
+ # CloudTrail logs. The entry includes the [Subject][15] of the provided
1300
1301
  # web identity token. We recommend that you avoid using any personally
1301
1302
  # identifiable information (PII) in this field. For example, you could
1302
1303
  # instead use a GUID or a pairwise identifier, as [suggested in the OIDC
1303
- # specification][15].
1304
+ # specification][16].
1304
1305
  #
1305
1306
  # For more information about how to use web identity federation and the
1306
1307
  # `AssumeRoleWithWebIdentity` API, see the following resources:
1307
1308
  #
1308
- # * [Using Web Identity Federation API Operations for Mobile Apps][16]
1309
- # and [Federation Through a Web-based Identity Provider][17].
1309
+ # * [Using Web Identity Federation API Operations for Mobile Apps][17]
1310
+ # and [Federation Through a Web-based Identity Provider][18].
1310
1311
  #
1311
- # * [ Web Identity Federation Playground][18]. Walk through the process
1312
+ # * [ Web Identity Federation Playground][19]. Walk through the process
1312
1313
  # of authenticating through Login with Amazon, Facebook, or Google,
1313
1314
  # getting temporary security credentials, and then using those
1314
1315
  # credentials to make a request to Amazon Web Services.
1315
1316
  #
1316
- # * [Amazon Web Services SDK for iOS Developer Guide][1] and [Amazon Web
1317
- # Services SDK for Android Developer Guide][2]. These toolkits contain
1317
+ # * [Amazon Web Services SDK for iOS Developer Guide][2] and [Amazon Web
1318
+ # Services SDK for Android Developer Guide][3]. These toolkits contain
1318
1319
  # sample apps that show how to invoke the identity providers. The
1319
1320
  # toolkits then show how to use the information from these providers
1320
1321
  # to get and use temporary security credentials.
1321
1322
  #
1322
- # * [Web Identity Federation with Mobile Applications][19]. This article
1323
+ # * [Web Identity Federation with Mobile Applications][20]. This article
1323
1324
  # discusses web identity federation and shows an example of how to use
1324
1325
  # web identity federation to get access to content in Amazon S3.
1325
1326
  #
1326
1327
  #
1327
1328
  #
1328
- # [1]: http://aws.amazon.com/sdkforios/
1329
- # [2]: http://aws.amazon.com/sdkforandroid/
1330
- # [3]: https://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840
1331
- # [4]: https://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664
1332
- # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1333
- # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
1334
- # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
1335
- # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
1336
- # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
1337
- # [10]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
1338
- # [11]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
1339
- # [12]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html
1340
- # [13]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
1341
- # [14]: http://openid.net/specs/openid-connect-core-1_0.html#Claims
1342
- # [15]: http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes
1343
- # [16]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html
1344
- # [17]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
1345
- # [18]: https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/
1346
- # [19]: http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications
1329
+ # [1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html
1330
+ # [2]: http://aws.amazon.com/sdkforios/
1331
+ # [3]: http://aws.amazon.com/sdkforandroid/
1332
+ # [4]: https://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840
1333
+ # [5]: https://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664
1334
+ # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1335
+ # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
1336
+ # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
1337
+ # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
1338
+ # [10]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
1339
+ # [11]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
1340
+ # [12]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
1341
+ # [13]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html
1342
+ # [14]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
1343
+ # [15]: http://openid.net/specs/openid-connect-core-1_0.html#Claims
1344
+ # [16]: http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes
1345
+ # [17]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html
1346
+ # [18]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
1347
+ # [19]: https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/
1348
+ # [20]: http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications
1347
1349
  #
1348
1350
  # @option params [required, String] :role_arn
1349
1351
  # The Amazon Resource Name (ARN) of the role that the caller is
@@ -1370,13 +1372,13 @@ module Aws::STS
1370
1372
  # `AssumeRoleWithWebIdentity` call.
1371
1373
  #
1372
1374
  # @option params [String] :provider_id
1373
- # The fully qualified host component of the domain name of the identity
1374
- # provider.
1375
+ # The fully qualified host component of the domain name of the OAuth 2.0
1376
+ # identity provider. Do not specify this value for an OpenID Connect
1377
+ # identity provider.
1375
1378
  #
1376
- # Specify this value only for OAuth 2.0 access tokens. Currently
1377
- # `www.amazon.com` and `graph.facebook.com` are the only supported
1378
- # identity providers for OAuth 2.0 access tokens. Do not include URL
1379
- # schemes and port numbers.
1379
+ # Currently `www.amazon.com` and `graph.facebook.com` are the only
1380
+ # supported identity providers for OAuth 2.0 access tokens. Do not
1381
+ # include URL schemes and port numbers.
1380
1382
  #
1381
1383
  # Do not specify this value for OpenID Connect ID tokens.
1382
1384
  #
@@ -2288,7 +2290,7 @@ module Aws::STS
2288
2290
  params: params,
2289
2291
  config: config)
2290
2292
  context[:gem_name] = 'aws-sdk-core'
2291
- context[:gem_version] = '3.127.0'
2293
+ context[:gem_version] = '3.130.0'
2292
2294
  Seahorse::Client::Request.new(handlers, context)
2293
2295
  end
2294
2296
 
@@ -213,7 +213,7 @@ module Aws::STS
213
213
  #
214
214
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
215
215
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
216
- # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/session-tags.html#id_session-tags_ctlogs
216
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_ctlogs
217
217
  # @return [Array<Types::Tag>]
218
218
  #
219
219
  # @!attribute [rw] transitive_tag_keys
@@ -710,13 +710,13 @@ module Aws::STS
710
710
  # @return [String]
711
711
  #
712
712
  # @!attribute [rw] provider_id
713
- # The fully qualified host component of the domain name of the
714
- # identity provider.
713
+ # The fully qualified host component of the domain name of the OAuth
714
+ # 2.0 identity provider. Do not specify this value for an OpenID
715
+ # Connect identity provider.
715
716
  #
716
- # Specify this value only for OAuth 2.0 access tokens. Currently
717
- # `www.amazon.com` and `graph.facebook.com` are the only supported
718
- # identity providers for OAuth 2.0 access tokens. Do not include URL
719
- # schemes and port numbers.
717
+ # Currently `www.amazon.com` and `graph.facebook.com` are the only
718
+ # supported identity providers for OAuth 2.0 access tokens. Do not
719
+ # include URL schemes and port numbers.
720
720
  #
721
721
  # Do not specify this value for OpenID Connect ID tokens.
722
722
  # @return [String]
data/lib/aws-sdk-sts.rb CHANGED
@@ -50,6 +50,6 @@ require_relative 'aws-sdk-sts/customizations'
50
50
  # @!group service
51
51
  module Aws::STS
52
52
 
53
- GEM_VERSION = '3.127.0'
53
+ GEM_VERSION = '3.130.0'
54
54
 
55
55
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.127.0
4
+ version: 3.130.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-24 00:00:00.000000000 Z
11
+ date: 2022-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jmespath