@@ -221,11 +221,15 @@ impl AwsAuthentication {
221
221
) ) ;
222
222
if let Some ( assume_role) = assume_role {
223
223
let auth_region = region. clone ( ) . map ( Region :: new) . unwrap_or ( service_region) ;
224
- let auth_external_id = external_id. clone ( ) . unwrap ( ) ;
225
- let provider = AssumeRoleProviderBuilder :: new ( assume_role)
226
- . region ( auth_region)
227
- . external_id ( auth_external_id)
228
- . build ( provider) ;
224
+ let mut builder =
225
+ AssumeRoleProviderBuilder :: new ( assume_role) . region ( auth_region) ;
226
+
227
+ if let Some ( external_id) = external_id {
228
+ builder = builder. external_id ( external_id)
229
+ }
230
+
231
+ let provider = builder. build ( provider) ;
232
+
229
233
return Ok ( SharedCredentialsProvider :: new ( provider) ) ;
230
234
}
231
235
Ok ( provider)
@@ -253,11 +257,16 @@ impl AwsAuthentication {
253
257
..
254
258
} => {
255
259
let auth_region = region. clone ( ) . map ( Region :: new) . unwrap_or ( service_region) ;
256
- let auth_external_id = external_id. clone ( ) . unwrap ( ) ;
257
- let provider = AssumeRoleProviderBuilder :: new ( assume_role)
258
- . region ( auth_region. clone ( ) )
259
- . external_id ( auth_external_id)
260
- . build ( default_credentials_provider ( auth_region, * imds) . await ?) ;
260
+ let mut builder =
261
+ AssumeRoleProviderBuilder :: new ( assume_role) . region ( auth_region. clone ( ) ) ;
262
+
263
+ if let Some ( external_id) = external_id {
264
+ builder = builder. external_id ( external_id)
265
+ }
266
+
267
+ let provider =
268
+ builder. build ( default_credentials_provider ( auth_region, * imds) . await ?) ;
269
+
261
270
Ok ( SharedCredentialsProvider :: new ( provider) )
262
271
}
263
272
AwsAuthentication :: Default { imds, region, .. } => Ok ( SharedCredentialsProvider :: new (
0 commit comments