### 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
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Base64;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import static org.hamcrest.Matchers.containsInAnyOrder;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.is;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
public class ServiceAccountServiceTests extends ESTestCase {
    private Client client;
    private ThreadPool threadPool;
    private FileServiceAccountTokenStore fileServiceAccountTokenStore;
    private IndexServiceAccountTokenStore indexServiceAccountTokenStore;
    private ServiceAccountService serviceAccountService;
    @Before
    @SuppressForbidden(reason = "Allow accessing localhost")
    public void init() throws UnknownHostException {
        threadPool = new TestThreadPool("service account service tests");