diff --git a/docs/changelog/126803.yaml b/docs/changelog/126803.yaml new file mode 100644 index 0000000000000..a0b2c6a4742a4 --- /dev/null +++ b/docs/changelog/126803.yaml @@ -0,0 +1,6 @@ +pr: 126803 +summary: "[Security Solution] Add `read` index privileges to `kibana_system` role\ + \ for Microsoft Defender integration indexes" +area: Authorization +type: enhancement +issues: [] diff --git a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authz/store/KibanaOwnedReservedRoleDescriptors.java b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authz/store/KibanaOwnedReservedRoleDescriptors.java index 3f56dff36b646..06af3749c7e5c 100644 --- a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authz/store/KibanaOwnedReservedRoleDescriptors.java +++ b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authz/store/KibanaOwnedReservedRoleDescriptors.java @@ -345,7 +345,10 @@ static RoleDescriptor kibanaSystem(String name) { // ingested by Fleet integrations // in order to provide support for response actions related to malicious events // for such agents. - RoleDescriptor.IndicesPrivileges.builder().indices("logs-sentinel_one.*", "logs-crowdstrike.*").privileges("read").build(), + RoleDescriptor.IndicesPrivileges.builder() + .indices("logs-sentinel_one.*", "logs-crowdstrike.*", "logs-microsoft_defender_endpoint.*", "logs-m365_defender.*") + .privileges("read") + .build(), // For ILM policy for APM, Endpoint, & Synthetics packages that have delete // action RoleDescriptor.IndicesPrivileges.builder() diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/store/ReservedRolesStoreTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/store/ReservedRolesStoreTests.java index 5dfc95feb9de4..f8ac34ae4239f 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/store/ReservedRolesStoreTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/store/ReservedRolesStoreTests.java @@ -1031,7 +1031,9 @@ public void testKibanaSystemRole() { // Tests for third-party agent indices that `kibana_system` has only `read` access Arrays.asList( "logs-sentinel_one." + randomAlphaOfLength(randomIntBetween(0, 13)), - "logs-crowdstrike." + randomAlphaOfLength(randomIntBetween(0, 13)) + "logs-crowdstrike." + randomAlphaOfLength(randomIntBetween(0, 13)), + "logs-microsoft_defender_endpoint." + randomAlphaOfLength(randomIntBetween(0, 13)), + "logs-m365_defender." + randomAlphaOfLength(randomIntBetween(0, 13)) ).forEach((index) -> { final IndexAbstraction indexAbstraction = mockIndexAbstraction(index); assertThat(kibanaRole.indices().allowedIndicesMatcher("indices:foo").test(indexAbstraction), is(false));