-
Notifications
You must be signed in to change notification settings - Fork 282
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve the security permission check in cat indices (_cat/indices) API #2257
Comments
@davidlago do you see any security concern of doing this change? @nandi-github Do you thing it's the right thing from customer perspective to list indices that who access to read, which won't give him any visibility if there are other indices on the cluster. |
I guess we could leverage the existing Is there anything else that is not index-specific that would be revealing things we shouldn't to a user who can only see a subset of indexes making these calls? (tagging @peternied for an additional set of eyes) |
Thanks for writing this up, that is a much better user experience. From a user experience/information disclosure, the scenario is in-line with our existing DNDOF cases. The filtering logic implemented in the IndexResolverReplacer [1] would need to be updated to handle I'll transfer this to the security repository to be triaged by the team and where the change would need to be made. This would be a great first issue for anyone if they are looking to get involved in the security codebase. [1] security/src/main/java/org/opensearch/security/resolver/IndexResolverReplacer.java Line 536 in 93fe633
|
Closing in favor of #1815 to track in a single place |
Is your feature request related to a problem? Please describe.
Today, to be able to call
_cat/indices
successfully, you need to have a permission at least with these permissions:If the index_patterns is not set to
"*"
but"log-*"
,_cat/indices
fails with a security exception:"no permissions for [indices:monitor/settings/get] and User [name=bowen, backend_roles=[], requestedTenant=__user__]
I suppose this is because cluster has other indices that don't match
"log-*"
and security check fails.You will be able to call
_cat/indices/log-*
successfully though.Describe the solution you'd like
Instead of failing the full request, can we improve the user experience of
_cat/indices
to return the indices user has permission of?To be specific, if user has index permission on
"log-*"
, calling_cat/indices
can return the indices start withlog-
in the cluster.The text was updated successfully, but these errors were encountered: