Skip to content

[feature] Rewrite KFP profile controller to use production ready HTTP server #10904

Open
@AndersBennedsgaard

Description

@AndersBennedsgaard

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 👍.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions