Hi @Pim Beliën,
Thanks for reviewing the earlier given solution and below are the detailed steps which answers your additional question -
Your idea of using Azure Private Link Service with a Load Balancer is creative and technically possible, but there are some important considerations:
How It Works
- You expose the PostgreSQL server in Tenant B behind an Internal Load Balancer.
- Create a Private Link Service on that Load Balancer.
- In Tenant A, create a Private Endpoint that connects to the Private Link Service.
- This allows Tenant A’s VNET to reach the Load Balancer in Tenant B over a private connection without VNET peering.
Key Constraints
- PostgreSQL Protocol Support
- The Load Balancer must forward TCP traffic correctly to PostgreSQL (port 5432).
- No Layer 7 inspection—this is pure TCP forwarding.
- DNS Resolution
- You’ll need to configure Private DNS Zones so that the PostgreSQL hostname resolves to the Private Endpoint IP in Tenant A.
- Authentication
- Ensure PostgreSQL accepts connections from the Load Balancer’s IP (or configure firewall rules accordingly).
- Operational Complexity
- This adds an extra hop (Load Balancer → PostgreSQL), which could slightly impact latency.
- You’ll need to manage health probes and ensure the LB doesn’t interfere with PostgreSQL traffic.
- This adds an extra hop (Load Balancer → PostgreSQL), which could slightly impact latency.
- The Load Balancer must forward TCP traffic correctly to PostgreSQL (port 5432).
Microsoft Guidance
This approach is supported because Private Link Service is designed for cross-tenant connectivity scenarios. It’s often used for exposing services privately across tenants without peering.
Reference:
- https://learn.microsoft.com/en-us/azure/private-link/private-link-service-overview
- Quickstart - Create a Private Link service - Azure portal - Azure Private Link | Microsoft Learn
Hope the above steps were helpful. If you have any other questions, please feel free to contact us.
Thanks,
Vrishabh