* Required for elastic/kibana#50757. Allows the kibana user to collect APM telemetry in a background task. * removed unnecessary priviledges on `.ml-anomalies-*` for the `kibana_system` reserved role
This commit is contained in:
parent
cb73de2eb7
commit
96f0c668a8
|
@ -126,11 +126,16 @@ public class ReservedRolesStore implements BiConsumer<Set<String>, ActionListene
|
|||
.indices(".monitoring-*").privileges("read", "read_cross_cluster").build(),
|
||||
RoleDescriptor.IndicesPrivileges.builder()
|
||||
.indices(".management-beats").privileges("create_index", "read", "write").build(),
|
||||
// .apm-* is for APM's agent configuration and custom link index creation
|
||||
// APM agent configuration
|
||||
RoleDescriptor.IndicesPrivileges.builder()
|
||||
.indices(".apm-agent-configuration").privileges("all").build(),
|
||||
// APM custom link index creation
|
||||
RoleDescriptor.IndicesPrivileges.builder()
|
||||
.indices(".apm-custom-link").privileges("all").build(),
|
||||
// APM telemetry queries APM indices in kibana task runner
|
||||
RoleDescriptor.IndicesPrivileges.builder()
|
||||
.indices("apm-*")
|
||||
.privileges("read", "read_cross_cluster").build(),
|
||||
},
|
||||
null,
|
||||
new ConfigurableClusterPrivilege[] { new ManageApplicationPrivileges(Collections.singleton("kibana-*")) },
|
||||
|
|
|
@ -402,6 +402,22 @@ public class ReservedRolesStoreTests extends ESTestCase {
|
|||
assertThat(kibanaRole.indices().allowedIndicesMatcher(READ_CROSS_CLUSTER_NAME).test(index), is(true));
|
||||
});
|
||||
|
||||
// read-only indices for APM telemetry
|
||||
Arrays.asList("apm-*").forEach((index) -> {
|
||||
assertThat(kibanaRole.indices().allowedIndicesMatcher("indices:foo").test(index), is(false));
|
||||
assertThat(kibanaRole.indices().allowedIndicesMatcher("indices:bar").test(index), is(false));
|
||||
assertThat(kibanaRole.indices().allowedIndicesMatcher(DeleteIndexAction.NAME).test(index), is(false));
|
||||
assertThat(kibanaRole.indices().allowedIndicesMatcher(GetIndexAction.NAME).test(index), is(false));
|
||||
assertThat(kibanaRole.indices().allowedIndicesMatcher(CreateIndexAction.NAME).test(index), is(false));
|
||||
assertThat(kibanaRole.indices().allowedIndicesMatcher(IndexAction.NAME).test(index), is(false));
|
||||
assertThat(kibanaRole.indices().allowedIndicesMatcher(DeleteAction.NAME).test(index), is(false));
|
||||
assertThat(kibanaRole.indices().allowedIndicesMatcher(UpdateSettingsAction.NAME).test(index), is(false));
|
||||
assertThat(kibanaRole.indices().allowedIndicesMatcher(SearchAction.NAME).test(index), is(true));
|
||||
assertThat(kibanaRole.indices().allowedIndicesMatcher(MultiSearchAction.NAME).test(index), is(true));
|
||||
assertThat(kibanaRole.indices().allowedIndicesMatcher(GetAction.NAME).test(index), is(true));
|
||||
assertThat(kibanaRole.indices().allowedIndicesMatcher(READ_CROSS_CLUSTER_NAME).test(index), is(true));
|
||||
});
|
||||
|
||||
// Beats management index
|
||||
final String index = ".management-beats";
|
||||
assertThat(kibanaRole.indices().allowedIndicesMatcher("indices:foo").test(index), is(false));
|
||||
|
|
Loading…
Reference in New Issue