Description
Feature Area
/area backend
What feature would you like to see?
As the default http.server
implementation in Python is not recommended for production due to its limited security features, we should rewrite the KFP profile controller to using a production-ready HTTP server.
We have for example successfully implemented the Pipelines profile controller using FastAPI.
What is the use case or pain point?
As the server doesn't implement many security checks, unauthorized users on the cluster might be able to access it, and mess around with other tenant's data.
The server is currently extremely simple and copy-pastes the same MinIO credentials to all namespaces, so the security issue might not be very critical at the moment. However, if we start doing more complicated stuff like accessing the storage layer to set up separate credentials to each namespace (see for example #7725) this becomes much more important.
Is there a workaround currently?
Continue as usual.
To increase security, we can cover the controller in NetworkPolicies, Istio AuthorizationPolicies, and other security measures, to ensure only authorized users (metacontroller) can access the server.
Love this idea? Give it a 👍.