Monitoring data can now be stored in `metrics-*` patterns when collected through elastic-agent. [Our documentation](https://www.elastic.co/guide/en/kibana/current/monitoring-data.html) recommends to use the `monitoring_user` role to view the data in Stack Monitoring application but that role does not have permissions to read from the metrics pattern.

`monitoring_user` should be allowed the same permissions on `metrics-*` as `.monitoring-*`
x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authz/RBACEngineTests.java
final TransportRequest request = GetApiKeyRequest.builder().apiKeyId(apiKeyId).ownedByAuthenticatedUser(false).build();
        final Authentication authentication = AuthenticationTests.randomApiKeyAuthentication(new User("not-joe"), apiKeyId)
            .runAs(user, new Authentication.RealmRef("name", "type", randomAlphaOfLengthBetween(3, 8)));
        assertFalse(RBACEngine.checkSameUserPermissions(GetApiKeyAction.NAME, request, authentication));
    }
    /**
     * This tests that action names in the request are considered "matched" by the relevant named privilege
     * (in this case that {@link DeleteAction} and {@link IndexAction} are satisfied by {@link IndexPrivilege#WRITE}).
     */
    public void testNamedIndexPrivilegesMatchApplicableActions() throws Exception {
        Role role = Role.builder(RESTRICTED_INDICES, "test1")
            .cluster(Collections.singleton("all"), Collections.emptyList())
            .add(IndexPrivilege.WRITE, "academy")
            .build();
        RBACAuthorizationInfo authzInfo = new RBACAuthorizationInfo(role, null);
        final PrivilegesCheckResult result = hasPrivileges(
            IndicesPrivileges.builder().indices("academy").privileges(DeleteAction.NAME, IndexAction.NAME).build(),
            authzInfo,
            List.of(),
            new String[] { ClusterHealthAction.NAME }
        );
        assertThat(result, notNullValue());
        assertThat(result.allChecksSuccess(), is(true));
        assertThat(result.getDetails().cluster(), aMapWithSize(1));
        assertThat(result.getDetails().cluster().get(ClusterHealthAction.NAME), equalTo(true));
        assertThat(result.getDetails().index().values(), Matchers.iterableWithSize(1));
        final ResourcePrivileges resourcePrivileges = result.getDetails().index().values().iterator().next();
        assertThat(resourcePrivileges.getResource(), equalTo("academy"));
        assertThat(resourcePrivileges.getPrivileges(), aMapWithSize(2));
        assertThat(resourcePrivileges.getPrivileges().get(DeleteAction.NAME), equalTo(true));