A Jupyter notebook running on an Azure Machine Learning compute instance looks, from the browser,
like a single self-contained tool. Underneath, a real session generates several distinct
categories of network traffic — and understanding which is which matters directly for designing
the private, controlled-outbound workspace described in the companion
Secure Enterprise Azure Machine Learning Workspace
project.
Research in Progress
This article documents the traffic categories a Jupyter/Azure ML session is expected to
generate, based on the documented Azure ML architecture. It is being validated against a real
compute instance as part of the linked project’s lab work; sections below are marked
accordingly.
Problem / Context
“Just allow outbound to the internet” is the easiest network design for an Azure ML compute
instance and the hardest one to justify in a regulated environment. Before designing a tighter
outbound path, it helps to enumerate what a session actually needs to reach.
Expected traffic categories
1. Control-plane traffic to the Azure Machine Learning workspace
The compute instance continuously communicates with the workspace’s own service endpoints for job
orchestration, metric logging, and session management. This traffic stays within Azure’s backbone
when Private Link is configured for the workspace.
2. The notebook interface itself
The browser-facing Jupyter/JupyterLab interface is served through the workspace’s own endpoint,
not fetched from the public internet, so this category is already private once the workspace
endpoint itself is private.
3. Package and dependency installation
pip install, conda install, and similar commands reach out to public package indexes unless an
internal mirror is configured. This is typically the single largest source of genuinely
internet-bound traffic from a research compute instance.
pip install --quiet azure-ai-ml pandas
4. Data and model access
Reading training data from a storage account, or calling an external model/API endpoint, is
traffic the workload itself needs — and the category most directly served by Private Endpoints
back to the organization’s own storage rather than any public route.
Note — pending measurement
The categories above are derived from Azure ML’s documented architecture. Actual captured
traffic from a running compute instance, confirming (or correcting) this breakdown, is pending
as part of the companion project’s lab work and will be added here once available.
Why this matters for private workspace design
Once traffic is separated into these categories, the outbound design question stops being “allow
everything or nothing” and becomes “which categories need public internet access at all, and can
category 3 be satisfied by an internal package mirror instead.” That is a materially easier
question for a network/security review to evaluate.
What this article does not yet claim
No packet capture or measured traffic breakdown from a real compute instance is included yet.
This is a documented-architecture analysis, not a completed empirical study.
Next steps
Capture real traffic from a running Azure ML compute instance during a representative notebook
session, and update the categories above with what was actually observed.