Skip to content

Commit 8f78880

Browse files
authored
[monitoring] update monitoring_user privileges (#94475)
* update monitoring_user privileges * use regex * lint * remote indice privilege * lint * order * lint * test * fix test * add test case
1 parent 895907d commit 8f78880

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,10 @@ private static Map<String, RoleDescriptor> initializeReservedRoles() {
140140
.indices(".monitoring-*")
141141
.privileges("read", "read_cross_cluster")
142142
.build(),
143+
RoleDescriptor.IndicesPrivileges.builder()
144+
.indices("/metrics-(beats|elasticsearch|enterprisesearch|kibana|logstash).*/")
145+
.privileges("read", "read_cross_cluster")
146+
.build(),
143147
RoleDescriptor.IndicesPrivileges.builder()
144148
.indices("metricbeat-*")
145149
.privileges("read", "read_cross_cluster")
@@ -157,6 +161,7 @@ private static Map<String, RoleDescriptor> initializeReservedRoles() {
157161
TcpTransport.isUntrustedRemoteClusterEnabled()
158162
? new RoleDescriptor.RemoteIndicesPrivileges[] {
159163
getRemoteIndicesReadPrivileges(".monitoring-*"),
164+
getRemoteIndicesReadPrivileges("/metrics-(beats|elasticsearch|enterprisesearch|kibana|logstash).*/"),
160165
getRemoteIndicesReadPrivileges("metricbeat-*") }
161166
: null
162167
)

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1435,6 +1435,18 @@ public void testMonitoringUserRole() {
14351435
),
14361436
is(false)
14371437
);
1438+
1439+
final String metricsPrefix = "metrics-";
1440+
assertNoAccessAllowed(monitoringUserRole, metricsPrefix + "system.cpu-default");
1441+
assertNoAccessAllowed(monitoringUserRole, metricsPrefix + "elastic_agent.filebeat-default");
1442+
1443+
assertOnlyReadAllowed(monitoringUserRole, metricsPrefix + "elasticsearch");
1444+
assertOnlyReadAllowed(monitoringUserRole, metricsPrefix + "elasticsearch.stack_monitoring.cluster_stats-default");
1445+
assertOnlyReadAllowed(monitoringUserRole, metricsPrefix + "elasticsearch.ingest_pipeline-default");
1446+
assertOnlyReadAllowed(monitoringUserRole, metricsPrefix + "kibana.stack_monitoring.stats-default");
1447+
assertOnlyReadAllowed(monitoringUserRole, metricsPrefix + "logstash.stack_monitoring.node_stats-default");
1448+
assertOnlyReadAllowed(monitoringUserRole, metricsPrefix + "beats.stack_monitoring.stats-default");
1449+
assertOnlyReadAllowed(monitoringUserRole, metricsPrefix + "enterprisesearch.stack_monitoring.health-default");
14381450
}
14391451

14401452
public void testRemoteMonitoringAgentRole() {

x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authz/RBACEngineTests.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1879,6 +1879,10 @@ public void testGetRoleDescriptorsForRemoteClusterForReservedRoles() {
18791879
null,
18801880
new IndicesPrivileges[] {
18811881
IndicesPrivileges.builder().indices(".monitoring-*").privileges("read", "read_cross_cluster").build(),
1882+
IndicesPrivileges.builder()
1883+
.indices("/metrics-(beats|elasticsearch|enterprisesearch|kibana|logstash).*/")
1884+
.privileges("read", "read_cross_cluster")
1885+
.build(),
18821886
IndicesPrivileges.builder().indices("metricbeat-*").privileges("read", "read_cross_cluster").build() },
18831887
null,
18841888
null,

0 commit comments

Comments
 (0)