-
Notifications
You must be signed in to change notification settings - Fork 291
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
[Question] Should resource-sharing information be stored on a dedicated index or on the resource index inside the documents? #5014
Comments
One question: Is it clear that a resource maps always exactly to one document in an index? |
In order to use Resource Sharing + Authorization provided by the security plugin this assumption would need to hold true. In all of the cases analyzed in the default distribution where That being said, there could be hierarchy to resources like the ML Commons use case where Model Groups are composed of model versions and access control is done on the Model Group level. |
Also for alerting, there seems to be already a concept of sub-resources which inherit privileges from parent resources. See for example alerting comments: Of course, it is possible to also implement access controls for these based on the new resource sharing model, quite similar to the present implementation. But it shows the limitations of the resource = document model. |
The PR that is open is solely about providing an off ramp for I think we'd certainly like to move to a different authorization model (in future versions of OpenSearch) where the owner of a resource can determine the access level when sharing their resource with another user in the system. i.e. For a mental model I have been thinking about a Searchable Photo Album Plugin. In this plugin I can create an album and upload photos to the album. When I share my album with other users on the platform, I want to specify whether they have Read Only, Read + Comment, or Full Access on the album. This model is not currently possible. Actions on resources are determined by what cluster_permissions a user has across all of their mapped roles. |
Citing security concerns, we've decided to store the information in a separate index. Thank you all for your inputs! |
Please read original proposal: #4500 in-case you need context on the feature itself.
Proposal
With the recent changes in design approach of the Resource Sharing and Permissions feature, we've reached at a fork in the path where we must choose from 2 paths forward for storing resource-sharing data. Below, I've listed these two approaches in more detail:
Approach 1 : Dedicated index
This approach emphasizes storing resource sharing information on a dedicated index
.opensearch-resource-sharing
. A document will look something like:This approach present a more simplistic path towards achieving resource-level access-control with some performance overhead.
Approach 2: Same Index
This approach emphasizes that the resource-sharing information will be stored in the resource document to keep it closer to the resource intended to have access-control. This would look something like:
Although this approach looks similar to the current model where plugins store the user information in their own index, the biggest difference is that now security-plugin will be aware of this data and has control over it.
NOTE: With this approach, opensearch-project/OpenSearch#15778 becomes a requirement to enforce zero-trust policy and ensure that there is no unintended data-exposure.
Intention
The text was updated successfully, but these errors were encountered: