Hi Nassim Cherifi ,
Thanks for the question.
How Workaround 1 works (technically)
In Workaround 1, AzCopy is the component that initiates all network traffic. A private endpoint does not initiate traffic by itself—it is simply a private IP mapped to the Azure Storage service. This is expected behavior for Azure Private Endpoint.
When AzCopy runs from a VM or host that:
Is placed in a VNet with access to both storage accounts
Resolves both storage account DNS names to their private endpoint IPs
AzCopy establishes two outbound connections:
One to the source storage account private endpoint
One to the destination storage account private endpoint
Data is streamed through the AzCopy client (source → AzCopy → destination). There is no direct storage-to-storage communication between private endpoints.
Why your assumption is correct
You are right that traffic is not initiated by the private endpoint. Private Endpoints only accept inbound connections; the client (AzCopy) always drives the data transfer.
Why this approach is scalable
Only the AzCopy execution environment requires network access to both storage accounts. This avoids needing multiple private endpoint peerings across VNets, making the setup more scalable.
References
Copy blobs between storage accounts with network restrictions
https://learn.microsoft.com/troubleshoot/azure/azure-storage/blobs/connectivity/copy-blobs-between-storage-accounts-network-restriction
Azure Private Endpoint overview
https://learn.microsoft.com/azure/private-link/private-endpoint-overview
Private Endpoint DNS behavior
https://learn.microsoft.com/azure/private-link/private-endpoint-dns
AzCopy networking and authentication overview
https://learn.microsoft.com/azure/storage/common/storage-use-azcopy-v10
I hope this clarifies. If the answer is helpful, please accept it to close the thread.