Skip to content

Commit 597b396

Browse files
authored
Merge branch '9.1' into backport/9.1/pr-132762
2 parents 0be7362 + 2f93d8b commit 597b396

File tree

7 files changed

+23
-30
lines changed

7 files changed

+23
-30
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.

server/src/main/java/org/elasticsearch/TransportVersions.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,6 @@ static TransportVersion def(int id) {
132132
public static final TransportVersion ESQL_SKIP_ES_INDEX_SERIALIZATION = def(8_827_0_00);
133133
public static final TransportVersion ADD_INDEX_BLOCK_TWO_PHASE = def(8_828_0_00);
134134
public static final TransportVersion RESOLVE_CLUSTER_NO_INDEX_EXPRESSION = def(8_829_0_00);
135-
public static final TransportVersion ML_ROLLOVER_LEGACY_INDICES = def(8_830_0_00);
136135
public static final TransportVersion ADD_INCLUDE_FAILURE_INDICES_OPTION = def(8_831_0_00);
137136
public static final TransportVersion ESQL_RESPONSE_PARTIAL = def(8_832_0_00);
138137
public static final TransportVersion RANK_DOC_OPTIONAL_METADATA_FOR_EXPLAIN = def(8_833_0_00);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
8830000

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
@@ -324,23 +324,13 @@ private static Map<String, RoleDescriptor> initializeReservedRoles() {
324324
null,
325325
new RoleDescriptor.ApplicationResourcePrivileges[] {
326326
RoleDescriptor.ApplicationResourcePrivileges.builder()
327-
.application("kibana-.kibana")
327+
.application("kibana-*")
328328
.resources("*")
329-
.privileges(
330-
"feature_discover.minimal_read",
331-
"feature_discover.generate_report",
332-
"feature_dashboard.minimal_read",
333-
"feature_dashboard.generate_report",
334-
"feature_dashboard.download_csv_report",
335-
"feature_canvas.minimal_read",
336-
"feature_canvas.generate_report",
337-
"feature_visualize.minimal_read",
338-
"feature_visualize.generate_report"
339-
)
329+
.privileges("reserved_reporting_user")
340330
.build() },
341331
null,
342332
null,
343-
MetadataUtils.DEFAULT_RESERVED_METADATA,
333+
MetadataUtils.getDeprecatedReservedMetadata("Please grant access via Kibana privileges instead."),
344334
null,
345335
null,
346336
null,
@@ -349,7 +339,7 @@ private static Map<String, RoleDescriptor> initializeReservedRoles() {
349339
+ "including generating and downloading reports. "
350340
+ "This role implicitly grants access to all Kibana reporting features, "
351341
+ "with each user having access only to their own reports. Note that reporting users should also be assigned "
352-
+ "additional roles that grant read access to the indices that will be used to generate reports."
342+
+ "additional roles that grant read access to Kibana, and the indices that will be used to generate reports."
353343
)
354344
),
355345
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
@@ -2762,20 +2762,11 @@ public void testReportingUserRole() {
27622762
RoleDescriptor roleDescriptor = ReservedRolesStore.roleDescriptor("reporting_user");
27632763
assertNotNull(roleDescriptor);
27642764
assertThat(roleDescriptor.getMetadata(), hasEntry("_reserved", true));
2765+
assertThat(roleDescriptor.getMetadata(), hasEntry("_deprecated", true));
27652766

27662767
final String applicationName = "kibana-.kibana";
27672768

2768-
final Set<String> applicationPrivilegeNames = Set.of(
2769-
"feature_discover.minimal_read",
2770-
"feature_discover.generate_report",
2771-
"feature_dashboard.minimal_read",
2772-
"feature_dashboard.generate_report",
2773-
"feature_dashboard.download_csv_report",
2774-
"feature_canvas.minimal_read",
2775-
"feature_canvas.generate_report",
2776-
"feature_visualize.minimal_read",
2777-
"feature_visualize.generate_report"
2778-
);
2769+
final Set<String> applicationPrivilegeNames = Set.of("reserved_reporting_user");
27792770

27802771
final Set<String> allowedApplicationActionPatterns = Set.of(
27812772
"login:",

x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MlAnomaliesIndexUpdate.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import org.elasticsearch.ElasticsearchStatusException;
1212
import org.elasticsearch.ResourceAlreadyExistsException;
1313
import org.elasticsearch.TransportVersion;
14-
import org.elasticsearch.TransportVersions;
1514
import org.elasticsearch.action.ActionListener;
1615
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
1716
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequestBuilder;
@@ -53,6 +52,8 @@ public class MlAnomaliesIndexUpdate implements MlAutoUpdateService.UpdateAction
5352

5453
private static final Logger logger = LogManager.getLogger(MlAnomaliesIndexUpdate.class);
5554

55+
private static final TransportVersion ML_ROLLOVER_LEGACY_INDICES = TransportVersion.fromName("ml_rollover_legacy_indices");
56+
5657
private final IndexNameExpressionResolver expressionResolver;
5758
private final OriginSettingClient client;
5859

@@ -65,7 +66,7 @@ public MlAnomaliesIndexUpdate(IndexNameExpressionResolver expressionResolver, Cl
6566
public boolean isMinTransportVersionSupported(TransportVersion minTransportVersion) {
6667
// Automatic rollover does not require any new features
6768
// but wait for all nodes to be upgraded anyway
68-
return minTransportVersion.onOrAfter(TransportVersions.ML_ROLLOVER_LEGACY_INDICES);
69+
return minTransportVersion.supports(ML_ROLLOVER_LEGACY_INDICES);
6970
}
7071

7172
@Override

x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MlIndexRollover.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import org.elasticsearch.ElasticsearchException;
1111
import org.elasticsearch.ElasticsearchStatusException;
1212
import org.elasticsearch.TransportVersion;
13-
import org.elasticsearch.TransportVersions;
1413
import org.elasticsearch.action.ActionListener;
1514
import org.elasticsearch.action.admin.indices.rollover.RolloverRequest;
1615
import org.elasticsearch.action.support.IndicesOptions;
@@ -44,6 +43,8 @@ public class MlIndexRollover implements MlAutoUpdateService.UpdateAction {
4443

4544
private static final Logger logger = LogManager.getLogger(MlIndexRollover.class);
4645

46+
private static final TransportVersion ML_ROLLOVER_LEGACY_INDICES = TransportVersion.fromName("ml_rollover_legacy_indices");
47+
4748
public record IndexPatternAndAlias(String indexPattern, String alias) {}
4849

4950
private final IndexNameExpressionResolver expressionResolver;
@@ -60,7 +61,7 @@ public MlIndexRollover(List<IndexPatternAndAlias> indicesToRollover, IndexNameEx
6061
public boolean isMinTransportVersionSupported(TransportVersion minTransportVersion) {
6162
// Wait for all nodes to be upgraded to ensure that the
6263
// newly created index will be of the latest version.
63-
return minTransportVersion.onOrAfter(TransportVersions.ML_ROLLOVER_LEGACY_INDICES);
64+
return minTransportVersion.supports(ML_ROLLOVER_LEGACY_INDICES);
6465
}
6566

6667
@Override

0 commit comments

Comments
 (0)