### 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/GoogleCloudStorageClientSettingsTests.java
randomClients.v2()
        );
        assertEquals(expectedClientsSettings.size(), actualClientsSettings.size());
        for (final String clientName : expectedClientsSettings.keySet()) {
            final GoogleCloudStorageClientSettings actualClientSettings = actualClientsSettings.get(clientName);
            assertNotNull(actualClientSettings);
            final GoogleCloudStorageClientSettings expectedClientSettings = expectedClientsSettings.get(clientName);
            assertNotNull(expectedClientSettings);
            assertGoogleCredential(expectedClientSettings.getCredential(), actualClientSettings.getCredential());
            assertEquals(expectedClientSettings.getHost(), actualClientSettings.getHost());
            assertEquals(expectedClientSettings.getProjectId(), actualClientSettings.getProjectId());
            assertEquals(expectedClientSettings.getConnectTimeout(), actualClientSettings.getConnectTimeout());
            assertEquals(expectedClientSettings.getReadTimeout(), actualClientSettings.getReadTimeout());
            assertEquals(expectedClientSettings.getApplicationName(), actualClientSettings.getApplicationName());
        }
        if (deprecationWarnings.isEmpty() == false) {
            assertSettingDeprecationsAndWarnings(deprecationWarnings.toArray(new Setting<?>[0]));
        }
    }
    public void testLoadCredential() throws Exception {
        final List<Setting<?>> deprecationWarnings = new ArrayList<>();
        final Tuple<Map<String, GoogleCloudStorageClientSettings>, Settings> randomClient = randomClients(1, deprecationWarnings);
        final GoogleCloudStorageClientSettings expectedClientSettings = randomClient.v1().values().iterator().next();
        final String clientName = randomClient.v1().keySet().iterator().next();
        assertGoogleCredential(expectedClientSettings.getCredential(), loadCredential(randomClient.v2(), clientName));
    }
    public void testLoadInvalidCredential() throws Exception {
        final List<Setting<?>> deprecationWarnings = new ArrayList<>();
        final Settings.Builder settings = Settings.builder();
        final MockSecureSettings secureSettings = new MockSecureSettings();