An Azure service that stores unstructured data in the cloud as blobs.
Hi @John L
Welcome to Microsoft Q&A.
When using a Private Endpoint for Azure Storage, you cannot access the container directly via the VM’s private IP, the Private Endpoint IP, or 127.0.0.1. Azure Storage requires requests to be made against the storage account’s endpoint (FQDN), and the Private Endpoint ensures that traffic to that FQDN is routed privately within your VNet.
Why your attempts failed:
- VM private IP / loopback (127.0.0.1): These addresses only resolve to the VM itself, not the storage service.
- Private Endpoint IP: This IP is not meant to be accessed directly. It is bound to the storage account’s DNS name, and Azure automatically maps that name to the Private Endpoint IP via private DNS.
- Connection refused/No route to host: These errors occur because the request bypasses DNS and does not reach the storage service correctly.
Correct way to access files:
- Ensure you have a Private DNS Zone linked to your VNet for privatelink.blob.core.windows.net.
This allows the storage account FQDN (e.g., mystorageaccount.blob.core.windows.net) to resolve to the Private Endpoint IP. - From your Linux VM, use curl with the storage account’s blob endpoint:
curl -H "Authorization: Bearer <token>" \
https://mystorageaccount.blob.core.windows.net/mycontainer/myfile.txt
Replace <token> with a valid SAS token or OAuth token.
- Verify NSG rules allow outbound traffic to the Private Endpoint subnet.
- Test DNS resolution:
nslookup mystorageaccount.blob.core.windows.net
It should resolve to the Private Endpoint IP.
Please upvote and accept the answer if it helps!!