-
Notifications
You must be signed in to change notification settings - Fork 158
Onboards to centralized resource access control mechanism for ml-model-group #3715
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
base: main
Are you sure you want to change the base?
Onboards to centralized resource access control mechanism for ml-model-group #3715
Conversation
…l-group Signed-off-by: Darshit Chanpura <dchanp@amazon.com>
Apply spotless: |
Signed-off-by: Darshit Chanpura <dchanp@amazon.com>
Signed-off-by: Darshit Chanpura <dchanp@amazon.com>
Signed-off-by: Darshit Chanpura <dchanp@amazon.com>
Signed-off-by: Darshit Chanpura <dchanp@amazon.com>
Integ tests are failing. |
bd13cc6
to
b5f7efe
Compare
Signed-off-by: Darshit Chanpura <dchanp@amazon.com>
} | ||
// For backwards compatibility we still allow storing backend_roles data in ml_model_group | ||
// index | ||
updateModelGroup(modelGroupId, r.source(), updateModelGroupInput, wrappedListener, user); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So if user wants to update resource sharing fields through update model group API, how do we allow it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Users will now have to explicitly "share" the resource. Security has exposed "share" and "revoke" java APIs which can be consumed by ML in their respective handlers to update model group access.
.getResourceSharingClient(); | ||
|
||
resourceSharingClient | ||
.share( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Once onboarded and ml access framework is deprecated, what happens to the already existing resources with access controls defined by ml-plugin
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2 things:
- This feature is currently for fresh 3.1 clusters only
2.We have a migration path (APIs) which will implement the migrate API to enable feature usage on existing clusters migrating to 3.1
Once the feature is enabled by default, ml-access framework can be safely deleted.
53177d2
to
6906ff0
Compare
@@ -76,13 +83,19 @@ private void preProcessRoleAndPerformSearch( | |||
User user, | |||
ActionListener<SearchResponse> listener | |||
) { | |||
boolean isResourceSharingFeatureEnabled = ML_COMMONS_MODEL_ACCESS_CONTROL_ENABLED.get(settings) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've introduced this change to allow enabling feature only if ml's access-control feature flag is enabled. This allows for control of the resource-sharing feature, whether it should be enabled or disabled in ML regardless of whether feature is globally enabled. This will give some sense of familiarity to admins. Same suit is followed in AD plugin as well: https://github.com/opensearch-project/anomaly-detection/pull/1400/files#diff-cf370d40fdd2abc404283fa1e37768646f30ee1b8bfbb0b5c5302fc8a2a080fcR707
Signed-off-by: Darshit Chanpura <dchanp@amazon.com>
3a80806
to
2d3b021
Compare
Description
Implements resource-access-control for ML-Model-Group.
Feature Proposal: opensearch-project/security#4500
Related Issues
TBD
Check List
--signoff
.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.