Skip to content

Network Security Guide

This guide describes recommended network controls for deploying Enprivacy 3.0 in a secure, network-isolated environment.

Enprivacy 3.0 is designed to operate in a network-restricted environment. At runtime, the only required outbound internet connection is to auth.enprivacy.com for user authentication and entitlement.

The Web, Job and Inference Adapter services download nothing at runtime: the adapter’s models and the platform’s address data ship inside the images. Only a self-hosted LLM fetches models, from the Hugging Face Hub on first use, and pre-loading them removes that too — see Air-Gapped Deployments.

Destination Port Purpose Required
auth.enprivacy.com 443 (HTTPS) User authentication and entitlement Always
huggingface.co, cdn-lfs.huggingface.co, cdn-lfs-us-1.hf.co, cdn-lfs-eu-1.hf.co, cdn-lfs.hf.co, cas-bridge.xethub.hf.co 443 (HTTPS) Model downloads for a self-hosted LLM, on first use Only for a self-hosted LLM whose models are not pre-loaded

Without a self-hosted LLM, or once its models are pre-loaded, all outbound connectivity except auth.enprivacy.com:443 can be blocked at the network layer.

If you use an external/hosted LLM provider (e.g. AWS Bedrock, Azure OpenAI, Google Vertex) instead of the bundled LLM service, allow-list that provider’s endpoints in place of the Hugging Face Hub URLs.

Services communicate over the following default ports. Only the Web service needs to be exposed for administrative and end-user access; all other services should be reachable only from within the deployment’s private network.

From To Port Protocol
Internet Web 8080 HTTP
Web Database 5432 TCP
Job Database 5432 TCP
Web LLM 8000 HTTP
Job LLM 8000 HTTP
Web OCR 5001 HTTP
Job OCR 5001 HTTP
Web Inference Adapter 8443 HTTPS
Job Inference Adapter 8443 HTTPS

Most interservice traffic uses plain HTTP/TCP by default and is intended to run within a trusted private network or segment. Where in-transit encryption between services is required, apply it at the network layer or via a service mesh (e.g. mTLS / WireGuard) — the application does not enforce TLS on these internal ports.

The Inference Adapter is the exception: it carries document content to be analysed, so it listens only over TLS and requires an API key on every request. See Inference Adapter.

For Azure, the Azure Terraform reference architecture implements this posture concretely: an internal-only Container Apps environment, private endpoints for Key Vault / Storage / the LLM endpoint, a VNet-integrated database subnet with a blackhole route to the internet, and an application-subnet NSG that denies all outbound except DNS, NTP, intra-VNet traffic, and HTTPS.

  • Only the Web service is exposed publicly. Terminate HTTPS at your load balancer or ingress controller using a certificate for your selected domain(s).
  • Bring your own certificate from a trusted CA, or configure Enprivacy 3.0 to provision certificates via Let’s Encrypt. Enprivacy can help you select and implement an appropriate approach.
  • Internal service-to-service traffic uses the ports listed under Interservice Communications and is not TLS-encrypted by default; isolate it within a private network or apply network-layer encryption.

Enprivacy 3.0 can run without general outbound internet access:

  1. Mirror the images into a registry your network can reach, pinned by digest. Web, Job and the Inference Adapter then need nothing further: their models and data are inside the images. For a self-hosted LLM, pre-load its models into its durable model cache as a one-off action.
  2. Use a self-hosted PostgreSQL database (with the required extensions) and an S3-compatible object store within your network.
  3. Allow only auth.enprivacy.com:443 outbound, for user authentication and entitlement.