### 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
+ randomAlphaOfLengthBetween(3, 8)
                        + "/"
                        + randomValueOtherThanMany(n -> n.contains("/"), ValidationTests::randomInvalidTokenName)
                        + ":"
                        + randomAlphaOfLengthBetween(10, 20)).getBytes(StandardCharsets.UTF_8)
                )
            );
            assertNull(ServiceAccountService.tryParseToken(bearerString4));
            appender.assertAllExpectationsMatched();
            
            final String namespace = randomAlphaOfLengthBetween(3, 8);
            final String serviceName = randomAlphaOfLengthBetween(3, 8);
            final String tokenName = ValidationTests.randomTokenName();
            final ServiceAccountId accountId = new ServiceAccountId(namespace, serviceName);
            final String secret = randomAlphaOfLengthBetween(10, 20);
            final SecureString bearerString5 = createBearerString(
                List.of(magicBytes, (namespace + "/" + serviceName + "/" + tokenName + ":" + secret).getBytes(StandardCharsets.UTF_8))
            );
            final ServiceAccountToken serviceAccountToken1 = ServiceAccountService.tryParseToken(bearerString5);
            final ServiceAccountToken serviceAccountToken2 = new ServiceAccountToken(
                accountId,
                tokenName,
                new SecureString(secret.toCharArray())
            );
            assertThat(serviceAccountToken1, equalTo(serviceAccountToken2));
            
            final ServiceAccountToken parsedToken = ServiceAccountService.tryParseToken(serviceAccountToken2.asBearerString());
            assertThat(parsedToken, equalTo(serviceAccountToken2));
            
            appender.addExpectation(