-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[feature] Improved User Isolation in Kubeflow Pipelines #8406
Comments
/priority p1 |
I think the there are three main tasks.
|
Thanks for starting this issue! Looping in @elikatsis from our side as well |
@StefanoFioravanzo , @juliusvonkohout @DomFleischmann |
@subasathees artifacts are correctly isolated when using Kubeflow Pipelines on deployKF which is my new Kubeflow distribution that includes Kubeflow Pipelines. deployKF achieves this isolation by using object prefixes with profile/namespace at the beginning, and assigning a unique IAM role for each profile. There is also some crazy stuff going on to ensure the isolation of KFP V2 artifacts, but it all boils down to creating the However, deployKF is still limited by Kubeflow Pipelines putting all pipeline definitions under the Interestingly, the
|
@zijianjoy @james-jwu we really need to fix the The bypass is that artifact auth is ignored when no namespace parameter is set. This is because when no namespace parameter is set, it uses the I think the best option is to have the To do this, we would need to update this code to reject when no namespace parameter is found: pipelines/frontend/server/handlers/artifacts.ts Lines 342 to 378 in 79d31db
|
Can you create a PR? |
@thesuperzapper @subasathees The namespaced pipeline definitions should be in 1.8 including the UI part. They are partially in 1.7. All of this must be upstream. Having partial workarounds in downstream distributions is not a solution. |
@juliusvonkohout @thesuperzapper , Thanks for your detailed information, this will help. |
@juliusvonkohout I am pretty focused on deployKF right now, so don't have much time. The change to reject artifact requests without |
@thesuperzapper we can also get rid of the per namespace artifact proxy and visualization server when doing this change. This would allow us to have zero overhead user namespaces. We just enforce ?namespace and use the already implemented direct way of ml-pipeline-ui to fetch artifacts from minio. Removing ?namespace from your query just uses that direct path by the way. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Definitely not stale |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
/hold |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Not stale |
@zijianjoy @rimolive can you freeze the lifecycle of the Issue? It is still relevant. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
/lifecycle frozen |
Hello! Any update on this feature? |
I have added it to the gsoc ideas here kubeflow/community#809 (comment) |
Feature Area
/area frontend
/area backend
/area sdk
What feature would you like to see?
Authenticated and Authorized Users should be isolated by namespaces and should not have access to other users artifacts, unless authorized. The solution should be handled in frontend, backend, object storage and sdk.
What is the use case or pain point?
The current implementation allows users to access other users artifacts, this is a big security risk and a feature that limits enterprise adoption.
Is there a workaround currently?
Distributions are doing their own workarounds or enterprise customers need to deploy separate clusters for different users, which is unefficient.
This is a Roadmap Item for Kubeflow 1.7 requested by the 1.7 Release Team.
@zijianjoy @juliusvonkohout @StefanoFioravanzo @jbottum @annajung @kimwnasptd
Love this idea? Give it a 👍.
The text was updated successfully, but these errors were encountered: