@@ -587,7 +587,7 @@ std::shared_ptr<Aws::Auth::AWSCredentialsProvider> AwsAuthSTSAssumeRoleWebIdenti
587587 }
588588 }
589589
590- auto empty_credentials = std::make_shared<Aws::Auth::SimpleAWSCredentialsProvider>( Aws::Auth::AWSCredentials () );
590+ auto empty_credentials = std::make_shared<Aws::Auth::AnonymousAWSCredentialsProvider>( );
591591 if (token_file.empty ())
592592 {
593593 LOG_WARNING (logger, " Token file must be specified to use STS AssumeRole web identity creds provider." );
@@ -844,12 +844,12 @@ Aws::String SSOCredentialsProvider::loadAccessTokenFile(const Aws::String & sso_
844844S3CredentialsProviderChain::S3CredentialsProviderChain (
845845 const DB::S3::PocoHTTPClientConfiguration & configuration,
846846 const Aws::Auth::AWSCredentials & credentials,
847- CredentialsConfiguration credentials_configuration)
847+ const CredentialsConfiguration & credentials_configuration)
848848{
849849 auto logger = getLogger (" S3CredentialsProviderChain" );
850850
851851 // / we don't provide any credentials to avoid signing
852- if (credentials_configuration.no_sign_request )
852+ if (credentials_configuration.no_sign_request || configuration. http_client == " gcp_oauth " )
853853 return ;
854854
855855 // / add explicit credentials to the front of the chain
@@ -1103,7 +1103,7 @@ std::shared_ptr<Aws::Auth::AWSCredentialsProvider> AwsAuthSTSAssumeRoleCredentia
11031103 std::string session_name_,
11041104 uint64_t expiration_window_seconds_,
11051105 std::shared_ptr<Aws::Auth::AWSCredentialsProvider> credentials_provider,
1106- DB::S3::PocoHTTPClientConfiguration & client_configuration,
1106+ const DB::S3::PocoHTTPClientConfiguration & client_configuration,
11071107 const std::string & sts_endpoint_override)
11081108{
11091109 auto client = std::make_shared<AWSAssumeRoleClient>(credentials_provider, client_configuration, sts_endpoint_override);
@@ -1165,6 +1165,36 @@ void AwsAuthSTSAssumeRoleCredentialsProvider::Reload()
11651165 LOG_TRACE (logger, " Successfully retrieved credentials" );
11661166}
11671167
1168+ std::shared_ptr<Aws::Auth::AWSCredentialsProvider> getCredentialsProvider (
1169+ const DB::S3::PocoHTTPClientConfiguration & configuration,
1170+ const Aws::Auth::AWSCredentials & credentials,
1171+ const CredentialsConfiguration & credentials_configuration)
1172+ {
1173+ std::shared_ptr<Aws::Auth::AWSCredentialsProvider> credentials_provider;
1174+ if (credentials_configuration.no_sign_request || configuration.http_client == " gcp_oauth" )
1175+ {
1176+ credentials_provider = std::make_shared<Aws::Auth::AnonymousAWSCredentialsProvider>();
1177+ }
1178+ else
1179+ {
1180+ credentials_provider
1181+ = std::make_shared<S3CredentialsProviderChain>(configuration, credentials, credentials_configuration);
1182+ }
1183+
1184+ if (!credentials_configuration.role_arn .empty ())
1185+ {
1186+ credentials_provider = AwsAuthSTSAssumeRoleCredentialsProvider::create (
1187+ credentials_configuration.role_arn ,
1188+ credentials_configuration.role_session_name ,
1189+ credentials_configuration.expiration_window_seconds ,
1190+ std::move (credentials_provider),
1191+ configuration,
1192+ credentials_configuration.sts_endpoint_override );
1193+ }
1194+
1195+ return credentials_provider;
1196+ }
1197+
11681198}
11691199
11701200}
0 commit comments