### Description

**Background**
As part of https://github.com/elastic/kibana/issues/104986 we will be adding the ability for Elastic Agents to send agent monitoring data to a remote Elasticsearch cluster. In order to achieve this, we will need a service token for the remote cluster which fleet server will use. 

This service account will need less permissions than the `elastic/fleet-server` as integration data will not be sent to remote clusters yet.

**Service Account Details**

Name: `elastic/fleet-server-remote`

Permissions:
-  for indices `logs-*`, `metrics-*` privileges "write", "create_index", "auto_configure"

x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/service/ServiceAccountServiceTests.java
)
                )
            );
        } finally {
            appender.stop();
            Loggers.setLevel(satLogger, Level.INFO);
            Loggers.setLevel(sasLogger, Level.INFO);
            Loggers.removeAppender(satLogger, appender);
            Loggers.removeAppender(sasLogger, appender);
        }
    }
    public void testTryAuthenticateBearerToken() throws ExecutionException, InterruptedException {
        
        final PlainActionFuture<Authentication> future5 = new PlainActionFuture<>();
        final CachingServiceAccountTokenStore authenticatingStore = randomFrom(fileServiceAccountTokenStore, indexServiceAccountTokenStore);
        Stream.of(fileServiceAccountTokenStore, indexServiceAccountTokenStore).forEach(store -> {
            doAnswer(invocationOnMock -> {
                @SuppressWarnings("unchecked")
                final ActionListener<ServiceAccountTokenStore.StoreAuthenticationResult> listener = (ActionListener<
                    ServiceAccountTokenStore.StoreAuthenticationResult>) invocationOnMock.getArguments()[1];
                listener.onResponse(
                    new ServiceAccountTokenStore.StoreAuthenticationResult(store == authenticatingStore, store.getTokenSource())
                );
                return null;
            }).when(store).authenticate(any(), any());
        });
        final String nodeName = randomAlphaOfLengthBetween(3, 8);
        serviceAccountService.authenticateToken(
            new ServiceAccountToken(
                new ServiceAccountId("elastic", "fleet-server"),