Fixed issue with "Update is not supported when FLS or DLS or Fieldmasking is active" in Dashboards multi tenancy #5778
+20
−20
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This fixes the issue observed in opensearch-project/observability#1951 and #5753 (comment) :
Update operations did not work on the "virtual"
.kibanaindex that is being provided by the multi tenancy implementation inPrivilegesInterceptorImpl. This is because since OpenSearch 3, we have a "deny-by-default" model for DLS and FLS. As thePrivilegesInterceptorImploverrides normal privileges and redirects access to indices for which no privileges are necessarily present, the.kibanaindex appeared to be protected by DLS/FLS. Due to the implementation ofDlsFlsValveImpl, this only affected update operations and no other operations.For handling this, the
PrivilegesInterceptorImplalready utilizes theDocumentAllowList:security/src/main/java/org/opensearch/security/configuration/PrivilegesInterceptorImpl.java
Lines 193 to 224 in 31d8db9
However, this was not yet evaluated in
DlsFlsValve.invoke().Note: This PR requires #5753 to be merged first, as it utilizes the tests introduced there. Thus, this is a draft PR so far.
.kibanaindex do not work correctlyIssues Resolved
Testing
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.