Skip to content

Commit f627210

Browse files
legregoelasticsearchmachine
andauthored
Change reporting_user role to leverage reserved kibana privileges (#132766)
* Change reporting_user role to leverage reserved kibana privileges * [CI] Auto commit changes from spotless * Mark reporting_user role as deprecated * Update docs/changelog/132766.yaml * Update release notes --------- Co-authored-by: elasticsearchmachine <[email protected]>
1 parent e876dc0 commit f627210

File tree

3 files changed

+16
-25
lines changed

3 files changed

+16
-25
lines changed

docs/changelog/132766.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
pr: 132766
2+
summary: Change `reporting_user` role to leverage reserved kibana privileges
3+
area: Authorization
4+
type: deprecation
5+
issues: []
6+
deprecation:
7+
title: Deprecate the built-in `reporting_user` role.
8+
area: Authorization
9+
details: The `reporting_user` role is deprecated. Administrators should manage access to Kibana's reporting features via custom roles which grant the necessary privileges.
10+
impact: This role will be removed in a future version. Administrators should migrate to custom roles to avoid interruption.

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

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -328,23 +328,13 @@ private static Map<String, RoleDescriptor> initializeReservedRoles() {
328328
null,
329329
new RoleDescriptor.ApplicationResourcePrivileges[] {
330330
RoleDescriptor.ApplicationResourcePrivileges.builder()
331-
.application("kibana-.kibana")
331+
.application("kibana-*")
332332
.resources("*")
333-
.privileges(
334-
"feature_discover.minimal_read",
335-
"feature_discover.generate_report",
336-
"feature_dashboard.minimal_read",
337-
"feature_dashboard.generate_report",
338-
"feature_dashboard.download_csv_report",
339-
"feature_canvas.minimal_read",
340-
"feature_canvas.generate_report",
341-
"feature_visualize.minimal_read",
342-
"feature_visualize.generate_report"
343-
)
333+
.privileges("reserved_reporting_user")
344334
.build() },
345335
null,
346336
null,
347-
MetadataUtils.DEFAULT_RESERVED_METADATA,
337+
MetadataUtils.getDeprecatedReservedMetadata("Please grant access via Kibana privileges instead."),
348338
null,
349339
null,
350340
null,
@@ -353,7 +343,7 @@ private static Map<String, RoleDescriptor> initializeReservedRoles() {
353343
+ "including generating and downloading reports. "
354344
+ "This role implicitly grants access to all Kibana reporting features, "
355345
+ "with each user having access only to their own reports. Note that reporting users should also be assigned "
356-
+ "additional roles that grant read access to the indices that will be used to generate reports."
346+
+ "additional roles that grant read access to Kibana, and the indices that will be used to generate reports."
357347
)
358348
),
359349
entry(KibanaSystemUser.ROLE_NAME, kibanaSystemRoleDescriptor(KibanaSystemUser.ROLE_NAME)),

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

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2769,20 +2769,11 @@ public void testReportingUserRole() {
27692769
RoleDescriptor roleDescriptor = ReservedRolesStore.roleDescriptor("reporting_user");
27702770
assertNotNull(roleDescriptor);
27712771
assertThat(roleDescriptor.getMetadata(), hasEntry("_reserved", true));
2772+
assertThat(roleDescriptor.getMetadata(), hasEntry("_deprecated", true));
27722773

27732774
final String applicationName = "kibana-.kibana";
27742775

2775-
final Set<String> applicationPrivilegeNames = Set.of(
2776-
"feature_discover.minimal_read",
2777-
"feature_discover.generate_report",
2778-
"feature_dashboard.minimal_read",
2779-
"feature_dashboard.generate_report",
2780-
"feature_dashboard.download_csv_report",
2781-
"feature_canvas.minimal_read",
2782-
"feature_canvas.generate_report",
2783-
"feature_visualize.minimal_read",
2784-
"feature_visualize.generate_report"
2785-
);
2776+
final Set<String> applicationPrivilegeNames = Set.of("reserved_reporting_user");
27862777

27872778
final Set<String> allowedApplicationActionPatterns = Set.of(
27882779
"login:",

0 commit comments

Comments
 (0)