### Elasticsearch Version

8.x (any version where we have added support for proxies with a GCS repo)

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

N/A

### Problem Description

When configuring a GCS repository with HTTP proxy settings ([doc](https://www.elastic.co/guide/en/elasticsearch/reference/8.0/repository-gcs.html#repository-gcs-client)), we do not pass along the proxy settings to other `HttpTransportOptions` instances that we create. This can lead to timeout errors when the GCS Client tries to get a token, with the following error message:
```
Error getting access token for service account: Connect timed out, iss: ...
```

The workaround is to set the HTTP proxy settings on the JVM level rather than when defining the GCS repository, using `java.net.useSystemProxies` or `http.proxyHost`/`http.proxyPort`.

### Steps to Reproduce

[Setting up a GCS repository](https://www.elastic.co/guide/en/elasticsearch/reference/8.0/repository-gcs.html) with HTTP proxy settings (while every other non-proxied GCP call is blocked) could lead to this issue.

### Logs (if relevant)

_No response_
modules/repository-gcs/src/main/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageClientSettings.java
*         {@code null} if no service account is defined.
     */
    static ServiceAccountCredentials loadCredential(final Settings settings, final String clientName) {
        final var credentialsFileSetting = CREDENTIALS_FILE_SETTING.getConcreteSettingForNamespace(clientName);
        try {
            if (credentialsFileSetting.exists(settings) == false) {
                
                
                return null;
            }
            try (InputStream credStream = credentialsFileSetting.get(settings)) {
                final Collection<String> scopes = Collections.singleton(StorageScopes.DEVSTORAGE_FULL_CONTROL);
                return SocketAccess.doPrivilegedIOException(() -> {
                    final ServiceAccountCredentials credentials = ServiceAccountCredentials.fromStream(credStream);
                    if (credentials.createScopedRequired()) {
                        return (ServiceAccountCredentials) credentials.createScoped(scopes);
                    }
                    return credentials;
                });
            }
        } catch (final Exception e) {
            throw new IllegalArgumentException("failed to load GCS client credentials from [" + credentialsFileSetting.getKey() + "]", e);
        }
    }
    private static <T> T getConfigValue(final Settings settings, final String clientName, final Setting.AffixSetting<T> clientSetting) {
        final Setting<T> concreteSetting = clientSetting.getConcreteSettingForNamespace(clientName);
        return concreteSetting.get(settings);
    }
}