colossal-electrician-19708
03/06/2026, 6:43 PMAzureBlobUpload with account name/key and container name).
Our Azure Storage accounts are typically locked down behind private networking / VPN, so we are evaluating how LiveKit Cloud egress can upload recordings.
Could you clarify the following:
1. Outbound IP ranges
Does LiveKit Cloud egress use a fixed set of outbound IP addresses that we can allow-list in the Azure Storage firewall?
If yes, could you provide the IP ranges for our region/tenant?
2. Proxy / custom endpoint support
Instead of direct Azure Blob access, can egress uploads be routed through a custom upload proxy URL (e.g., an internal service that generates SAS uploads)?
The AzureBlobUpload config only shows accountName, accountKey, and containerName. Is there any way to configure a custom endpoint or proxy for Azure uploads?
3. SAS token support
Is it possible to configure Azure uploads using a SAS token instead of the account key?
4. Best practice for private storage
If the Azure Storage account has public network access disabled, what is the recommended architecture for recording uploads?
For example, do customers typically use a public ingestion storage account and then move the files internally?
Any guidance or recommended architecture for Azure environments with private networking restrictions would be very helpful.
Thanks!tall-airline-16756
03/06/2026, 6:44 PMtall-airline-16756
03/06/2026, 6:44 PMAzureBlobUpload configuration do not support specifying a custom upload proxy URL or a custom endpoint. The egress component uploads directly to Azure Blob Storage using the account credentials and container you provide.
• You cannot configure AzureBlobUpload to route uploads through an intermediary service (for example, an internal SAS-generation proxy) within the current egress implementation.
3) SAS token support
• LiveKit Cloud egress does not support SAS tokens for Azure Blob uploads. Authentication requires the storage account name and account key; SAS tokens are not supported by the current egress implementation.
4) Recommended architecture for private storage (public network access disabled)
• If your Azure Storage account has public network access disabled, LiveKit Cloud egress will not be able to upload directly because it runs in public cloud infrastructure and cannot reach private-only endpoints.
• Common, recommended patterns customers use:
◦ Create a publicly accessible ingestion storage account (or enable public network access for a dedicated ingestion container) and allow-list LiveKit’s regional static IP ranges so egress can upload recordings.
◦ After ingestion, move or copy recordings from the public ingestion account to your private storage using internal Azure services you control (for example, Azure Functions, Logic Apps, Event Grid, or Storage replication/azcopy running from within your private network).
◦ Alternatively, ingest into a storage account in a cloud / region under your control that can accept public uploads and then replicate or transfer to the private-locked account via private networking routes.
• If absolute private-only ingestion is required (no public access at all), the recommended options are:
◦ Self-host egress in your environment (so uploads originate inside your Azure VNet), or
◦ Run a relay/ingestion service inside your network that LiveKit egress can post to (but note LiveKit Cloud egress cannot be configured to post to a custom Azure endpoint directly — you would need to implement an intermediate public-facing ingest endpoint, or self-host).
• The practical, commonly used approach is ingestion → secure automated transfer to private storage. This balances allowing LiveKit Cloud to perform uploads while preserving long-term private access and governance.
If you’d like, I can help with next steps:
• Tell me which LiveKit region/tenant you’ll use and I’ll point you to the exact static IP ranges for that region.
• If you want architecture guidance, share whether you prefer (a) a public ingestion account + automated internal transfer, (b) self-hosting egress inside your Azure VNet, or (c) an ingestion relay—I can outline the pros/cons and a sample flow for the option you pick.
I’m happy to walk through whichever option you prefer and provide links and a short architecture diagram for the chosen approach.
Sources: Checklist for Regional Deployments | LiveKitcolossal-electrician-19708
03/06/2026, 7:08 PMlivekit-egress worker in our Azure VNet against our LiveKit Cloud project, or does self-hosted egress require a fully self-hosted LiveKit server and Redis?tall-airline-16756
03/06/2026, 7:08 PMlivekit-egress worker in your Azure VNet while still using a LiveKit Cloud project.
Short answer: that hybrid model is not supported.
Why:
• The livekit-egress service requires direct connectivity to a self-hosted LiveKit server and Redis for coordination and queuing. It is designed to run as part of a fully self-hosted LiveKit deployment.
• LiveKit Cloud runs managed egress inside LiveKit’s infrastructure and does not allow external, self-hosted egress workers to join the Cloud project’s internal Redis/egress workflow.
What that means for you:
• If you want egress running inside your Azure VNet, you must self-host the entire LiveKit stack (LiveKit server + Redis + livekit-egress) in your environment.
• If you continue using LiveKit Cloud, egress will be the managed service provided by LiveKit Cloud (you cannot replace just the egress worker with a self-hosted instance).
Options you can consider:
• Self-host everything (LiveKit server, Redis, and livekit-egress) in your Azure VNet so egress uploads originate inside your private network.
• Use LiveKit Cloud’s managed egress and follow the earlier guidance for handling private Azure storage (allow-list LiveKit Cloud static outbound IPs or use a public ingestion account and then move files internally).
If you want, tell me which option you’re leaning toward (self-hosting the full stack vs staying on LiveKit Cloud), and I’ll outline the next deployment steps, required components, and any network/firewall details to plan for.
Sources: Universal Egress | livekit/livekit_composite | DeepWiki | Backup Egress Recordingscolossal-electrician-19708
03/09/2026, 7:03 AMtall-airline-16756
03/09/2026, 7:03 AMcolossal-electrician-19708
03/09/2026, 7:05 AMtall-airline-16756
03/09/2026, 7:05 AM