### 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/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageServiceTests.java
)
            .put(GoogleCloudStorageClientSettings.ENDPOINT_SETTING.getConcreteSettingForNamespace(clientName).getKey(), endpoint)
            .put(GoogleCloudStorageClientSettings.PROJECT_ID_SETTING.getConcreteSettingForNamespace(clientName).getKey(), projectIdName)
            .put(GoogleCloudStorageClientSettings.PROXY_TYPE_SETTING.getConcreteSettingForNamespace(clientName).getKey(), "HTTP")
            .put(GoogleCloudStorageClientSettings.PROXY_HOST_SETTING.getConcreteSettingForNamespace(clientName).getKey(), "192.168.52.15")
            .put(GoogleCloudStorageClientSettings.PROXY_PORT_SETTING.getConcreteSettingForNamespace(clientName).getKey(), 8080)
            .build();
        SetOnce<Proxy> proxy = new SetOnce<>();
        final GoogleCloudStorageService service = new GoogleCloudStorageService() {
            @Override
            void notifyProxyIsSet(Proxy p) {
                proxy.set(p);
            }
        };
        service.refreshAndClearCache(GoogleCloudStorageClientSettings.load(settings));
        GoogleCloudStorageOperationsStats statsCollector = new GoogleCloudStorageOperationsStats("bucket");
        final IllegalArgumentException e = expectThrows(
            IllegalArgumentException.class,
            () -> service.client("another_client", "repo", statsCollector)
        );
        assertThat(e.getMessage(), Matchers.startsWith("Unknown client name"));
        assertSettingDeprecationsAndWarnings(
            new Setting<?>[] { GoogleCloudStorageClientSettings.APPLICATION_NAME_SETTING.getConcreteSettingForNamespace(clientName) }
        );
        final Storage storage = service.client(clientName, "repo", statsCollector);
        assertThat(storage.getOptions().getApplicationName(), Matchers.containsString(applicationName));
        assertThat(storage.getOptions().getHost(), Matchers.is(endpoint));
        assertThat(storage.getOptions().getProjectId(), Matchers.is(projectIdName));
        assertThat(storage.getOptions().getTransportOptions(), Matchers.instanceOf(HttpTransportOptions.class));
        assertThat(