Skip to content

Commit 1893ab1

Browse files
simitthenningandersen
authored andcommitted
Add permissions for apm_user for datastreams (#72739)
Based on recent conversations around data streams for APM, there is no final decision yet that apm data streams will be created per instrumented Service. If datastreams are not created per service, the current pattern for the apm_user permissions need to be adapted to not only support <type>-apm.* but also <type>-apm-*. fixes #72737
1 parent 6a86134 commit 1893ab1

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authz/store/ReservedRolesStore.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,10 +209,16 @@ private static Map<String, RoleDescriptor> initializeReservedRoles() {
209209
// APM Server under fleet (data streams)
210210
RoleDescriptor.IndicesPrivileges.builder().indices("logs-apm.*")
211211
.privileges("read", "view_index_metadata").build(),
212+
RoleDescriptor.IndicesPrivileges.builder().indices("logs-apm-*")
213+
.privileges("read", "view_index_metadata").build(),
212214
RoleDescriptor.IndicesPrivileges.builder().indices("metrics-apm.*")
213215
.privileges("read", "view_index_metadata").build(),
216+
RoleDescriptor.IndicesPrivileges.builder().indices("metrics-apm-*")
217+
.privileges("read", "view_index_metadata").build(),
214218
RoleDescriptor.IndicesPrivileges.builder().indices("traces-apm.*")
215219
.privileges("read", "view_index_metadata").build(),
220+
RoleDescriptor.IndicesPrivileges.builder().indices("traces-apm-*")
221+
.privileges("read", "view_index_metadata").build(),
216222

217223
// Machine Learning indices. Only needed for legacy reasons
218224
// Can be removed in 8.0

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/store/ReservedRolesStoreTests.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1268,12 +1268,18 @@ public void testAPMUserRole() {
12681268
assertNoAccessAllowed(role, "foo");
12691269
assertNoAccessAllowed(role, "foo-apm");
12701270
assertNoAccessAllowed(role, "foo-logs-apm.bar");
1271+
assertNoAccessAllowed(role, "foo-logs-apm-bar");
12711272
assertNoAccessAllowed(role, "foo-traces-apm.bar");
1273+
assertNoAccessAllowed(role, "foo-traces-apm-bar");
12721274
assertNoAccessAllowed(role, "foo-metrics-apm.bar");
1275+
assertNoAccessAllowed(role, "foo-metrics-apm-bar");
12731276

12741277
assertOnlyReadAllowed(role, "logs-apm." + randomIntBetween(0, 5));
1278+
assertOnlyReadAllowed(role, "logs-apm-" + randomIntBetween(0, 5));
12751279
assertOnlyReadAllowed(role, "traces-apm." + randomIntBetween(0, 5));
1280+
assertOnlyReadAllowed(role, "traces-apm-" + randomIntBetween(0, 5));
12761281
assertOnlyReadAllowed(role, "metrics-apm." + randomIntBetween(0, 5));
1282+
assertOnlyReadAllowed(role, "metrics-apm-" + randomIntBetween(0, 5));
12771283
assertOnlyReadAllowed(role, "apm-" + randomIntBetween(0, 5));
12781284
assertOnlyReadAllowed(role, AnomalyDetectorsIndexFields.RESULTS_INDEX_PREFIX + AnomalyDetectorsIndexFields.RESULTS_INDEX_DEFAULT);
12791285

0 commit comments

Comments
 (0)