Skip to content

Commit f92320a

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 7aefb45 commit f92320a

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
@@ -202,10 +202,16 @@ private static Map<String, RoleDescriptor> initializeReservedRoles() {
202202
// APM Server under fleet (data streams)
203203
RoleDescriptor.IndicesPrivileges.builder().indices("logs-apm.*")
204204
.privileges("read", "view_index_metadata").build(),
205+
RoleDescriptor.IndicesPrivileges.builder().indices("logs-apm-*")
206+
.privileges("read", "view_index_metadata").build(),
205207
RoleDescriptor.IndicesPrivileges.builder().indices("metrics-apm.*")
206208
.privileges("read", "view_index_metadata").build(),
209+
RoleDescriptor.IndicesPrivileges.builder().indices("metrics-apm-*")
210+
.privileges("read", "view_index_metadata").build(),
207211
RoleDescriptor.IndicesPrivileges.builder().indices("traces-apm.*")
208212
.privileges("read", "view_index_metadata").build(),
213+
RoleDescriptor.IndicesPrivileges.builder().indices("traces-apm-*")
214+
.privileges("read", "view_index_metadata").build(),
209215

210216
// Machine Learning indices. Only needed for legacy reasons
211217
// 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
@@ -1267,12 +1267,18 @@ public void testAPMUserRole() {
12671267
assertNoAccessAllowed(role, "foo");
12681268
assertNoAccessAllowed(role, "foo-apm");
12691269
assertNoAccessAllowed(role, "foo-logs-apm.bar");
1270+
assertNoAccessAllowed(role, "foo-logs-apm-bar");
12701271
assertNoAccessAllowed(role, "foo-traces-apm.bar");
1272+
assertNoAccessAllowed(role, "foo-traces-apm-bar");
12711273
assertNoAccessAllowed(role, "foo-metrics-apm.bar");
1274+
assertNoAccessAllowed(role, "foo-metrics-apm-bar");
12721275

12731276
assertOnlyReadAllowed(role, "logs-apm." + randomIntBetween(0, 5));
1277+
assertOnlyReadAllowed(role, "logs-apm-" + randomIntBetween(0, 5));
12741278
assertOnlyReadAllowed(role, "traces-apm." + randomIntBetween(0, 5));
1279+
assertOnlyReadAllowed(role, "traces-apm-" + randomIntBetween(0, 5));
12751280
assertOnlyReadAllowed(role, "metrics-apm." + randomIntBetween(0, 5));
1281+
assertOnlyReadAllowed(role, "metrics-apm-" + randomIntBetween(0, 5));
12761282
assertOnlyReadAllowed(role, "apm-" + randomIntBetween(0, 5));
12771283
assertOnlyReadAllowed(role, AnomalyDetectorsIndexFields.RESULTS_INDEX_PREFIX + AnomalyDetectorsIndexFields.RESULTS_INDEX_DEFAULT);
12781284

0 commit comments

Comments
 (0)