
Hello!
I’m trying to set up a service, where multiple users will be able to create their own dashboards through notebooks. These notebooks will be developed on a shared JupyterHub server, which is the same server I intend to host the dashboards from.
When developing these notebooks, the users have access to the server filesystem. Each dashboard will be visible to the whole community. They are also expected to connect to different databases which may require authentication.
In other words, I will be hosting code that was written by other “autonomous” creators.
Users connecting to the dashboards will be authenticated with apache.
I’m hosting the panel in a docker container with root access.
My question is:
What is an effective way of limiting permissions when executing the code / creating a sandbox environment?
-
I have considered spawning a subprocess for each open session and reducing permissions inside this session with os.setuid
-
I have also considered starting a new container instance for each connecting user to fully isolate it. I would prefer to avoid this option
I am running Bokeh on a Tornado ioloop.
The framework we will use is Panel (I also posted the question there: panel thread), but as I can see, most of this is built on top of Bokeh.
Would this be feasible in Bokeh?
Kind regards,
Jens

