Multitenancy en Azure Private Link

Azure Private Link biedt privé-IP-adressering voor Azure-platformservices en voor uw eigen toepassingen die worden gehost op virtuele Azure-machines. U kunt Private Link gebruiken om privéconnectiviteit in te schakelen vanuit de Azure-omgevingen van uw tenants. Tenants kunnen ook Private Link gebruiken om toegang te krijgen tot uw oplossing vanuit hun on-premises omgevingen wanneer ze zijn verbonden via vpn-gateways (Virtual Private Network Gateway) of ExpressRoute.

Azure Private Link wordt gebruikt door veel grote SaaS-providers, waaronder Snowflake, Confluent Cloud en MongoDB Atlas.

In dit artikel bekijken we hoe u Private Link kunt configureren voor een door Azure gehoste multitenant-oplossing.

Belangrijkste overwegingen

Overlappende IP-adresruimten

Private Link biedt krachtige mogelijkheden voor multitenant-oplossingen, waar tenants toegang hebben tot de service via privéadresruimten.

Verschillende tenants gebruiken vaak dezelfde of overlappende privé-IP-adresruimten. Uw multitenant-oplossing kan bijvoorbeeld gebruikmaken van de IP-adresruimte van 10.1.0.0/16. Stel dat tenant A een eigen on-premises netwerk met dezelfde IP-adresruimte gebruikt en dat tenant B ook dezelfde IP-adresruimte gebruikt. U kunt uw netwerken niet rechtstreeks verbinden of koppelen omdat de IP-adresbereiken elkaar overlappen.

Wanneer u Private Link gebruikt om connectiviteit van elke tenant met de multitenant-oplossing mogelijk te maken, wordt automatisch nat (Network Address Translation) toegepast op het verkeer van elke tenant. Elke tenant kan een privé-IP-adres binnen hun eigen respectieve netwerk gebruiken en het verkeer stroomt transparant naar de multitenant-oplossing. Private Link voert NAT uit op verkeer, zelfs wanneer tenants en de serviceprovider allemaal overlappende IP-adresbereiken gebruiken:

Diagram showing connectivity between two tenants and a multitenant service, all of which use the same IP address space.

Wanneer verkeer binnenkomt in de multitenant-oplossing, is het al vertaald. Dit betekent dat verkeer afkomstig lijkt te zijn van de IP-adresruimte van het virtuele netwerk van de multitenant-service. Private Link biedt de functie TCP Proxy Protocol v2 , waarmee een multitenant-service de tenant kan kennen die de aanvraag heeft verzonden, en zelfs het oorspronkelijke IP-adres van het bronnetwerk.

Serviceselectie

Wanneer u Private Link gebruikt, is het belangrijk om rekening te houden met de service waarmee u binnenkomende connectiviteit wilt toestaan.

De Azure Private Link-service wordt gebruikt met virtuele machines achter een standaard load balancer.

U kunt Private Link ook gebruiken met andere Azure-services. Deze services omvatten platformen voor het hosten van toepassingen, zoals Azure-app Service. Ze omvatten ook Azure-toepassing Gateway of Azure API Management, die netwerk- en API-gateways zijn.

Het toepassingsplatform dat u gebruikt, bepaalt veel aspecten van uw Private Link-configuratie en de limieten die van toepassing zijn. Daarnaast bieden sommige services geen ondersteuning voor Private Link voor inkomend verkeer.

Limieten

Houd zorgvuldig rekening met het aantal privé-eindpunten dat u kunt maken, op basis van de architectuur van uw oplossing. Als u een PaaS-toepassingsplatform (Platform as a Service) gebruikt, is het belangrijk dat u rekening moet houden met het maximum aantal privé-eindpunten dat door één resource kan worden ondersteund. Als u virtuele machines uitvoert, kunt u een Private Link-service-exemplaar koppelen aan een standard load balancer (SLB). In deze configuratie kunt u over het algemeen een hoger aantal privé-eindpunten verbinden, maar de limieten zijn nog steeds van toepassing. Deze limieten kunnen bepalen hoeveel tenants u met behulp van Private Link verbinding met uw resources kunt maken. Bekijk azure-abonnements- en servicelimieten, quota en beperkingen om inzicht te hebben in de limieten voor het aantal eindpunten en verbindingen.

Daarnaast is voor sommige services een gespecialiseerde netwerkconfiguratie vereist voor het gebruik van Private Link. Als u bijvoorbeeld Private Link gebruikt met Azure-toepassing Gateway, moet u een toegewezen subnet inrichten, naast het standaardsubnet voor de Application Gateway-resource.

Test uw oplossing zorgvuldig, inclusief uw implementatie en diagnostische configuratie, met uw Private Link-configuratie ingeschakeld. Sommige Azure-services blokkeren openbaar internetverkeer wanneer een privé-eindpunt is ingeschakeld, waarvoor u uw implementatie- en beheerprocessen kunt wijzigen.

U kunt ervoor kiezen om uw oplossing te implementeren om zowel internetgericht te zijn als om beschikbaar te worden gesteld via privé-eindpunten. Houd rekening met uw algehele netwerktopologie en de paden die het verkeer van elke tenant volgt.

Wanneer uw oplossing is gebaseerd op virtuele machines die zich achter een standaard load balancer bevinden, kunt u uw eindpunt beschikbaar maken via de Private Link-service. In dit geval maakt een webtoepassingsfirewall en toepassingsroutering waarschijnlijk al deel uit van de workload op basis van uw virtuele machine.

Veel Azure PaaS-services ondersteunen Private Link voor binnenkomende connectiviteit, zelfs in verschillende Azure-abonnementen en Microsoft Entra-tenants. U kunt de Private Link-mogelijkheden van die service gebruiken om uw eindpunt beschikbaar te maken.

Wanneer u andere internetservices gebruikt, zoals Azure Front Door, is het belangrijk om na te gaan of ze Private Link ondersteunen voor binnenkomend verkeer. Als dat niet zo is, kunt u overwegen hoe uw verkeer door elk pad naar uw oplossing loopt.

Stel dat u een internetgerichte toepassing bouwt die wordt uitgevoerd op een virtuele-machineschaalset. U gebruikt Azure Front Door, met inbegrip van de web application firewall (WAF), voor beveiliging en verkeersversnelling en configureert u Front Door om het verkeer via een privé-eindpunt naar uw back-endservice (origin) te verzenden. Tenant A maakt verbinding met uw oplossing met behulp van een openbaar eindpunt en tenant B maakt verbinding met behulp van een privé-eindpunt. Omdat Front Door geen ondersteuning biedt voor Private Link voor binnenkomende verbindingen, slaat het verkeer van tenant B uw Front Door en zijn WAF over:

Diagram showing requests coming through Azure Front Door, and also through a private endpoint, which bypasses Front Door.

Isolatiemodellen

Private Link is ontworpen ter ondersteuning van scenario's waarbij één toepassingslaag kan worden gebruikt door meerdere afzonderlijke clients, zoals uw tenants. Wanneer u isolatie voor Private Link overweegt, is de belangrijkste zorg rond het aantal resources dat u moet implementeren om uw vereisten te ondersteunen. De tenantisolatiemodellen die u voor Private Link kunt gebruiken, zijn afhankelijk van de service die u gebruikt.

Als u de Private Link-service gebruikt met virtuele machines achter een standard load balancer, zijn er verschillende isolatiemodellen die u kunt overwegen.

Overweging Gedeelde Private Link-service en gedeelde load balancer Toegewezen Private Link-service en toegewezen load balancer Toegewezen Private Link-service en gedeelde load balancer
Implementatiecomplexiteit Laag Gemiddeld hoog, afhankelijk van het aantal tenants Gemiddeld hoog, afhankelijk van het aantal tenants
Operationele complexiteit Laag Gemiddeld hoog, afhankelijk van het aantal resources Gemiddeld hoog, afhankelijk van het aantal resources
Limieten om rekening mee te houden Aantal privé-eindpunten in dezelfde Private Link-service Aantal Private Link-services per abonnement Aantal Private Link-services per standard load balancer
Voorbeeldscenario Grote multitenant-oplossing met gedeelde toepassingslaag Afzonderlijke implementatiestempels voor elke tenant Gedeelde toepassingslaag in één stempel, met grote aantallen tenants

In alle drie de modellen is het niveau van gegevensisolatie en prestaties afhankelijk van de andere elementen van uw oplossing en heeft de implementatie van de Private Link-service geen invloed op deze factoren.

U kunt overwegen om een gedeelde Private Link-service te implementeren die is verbonden met een standaard load balancer. Elk van uw tenants kan een privé-eindpunt maken en gebruiken om verbinding te maken met uw oplossing.

Eén Private Link-service-exemplaar ondersteunt een groot aantal privé-eindpunten. Als u de limiet hebt uitgeput, kunt u meer Private Link-service-exemplaren implementeren, hoewel er ook limieten zijn voor het aantal Private Link-services dat u op één load balancer kunt implementeren. Als u verwacht dat u deze limieten nadert, kunt u overwegen om een op implementaties gebaseerde benadering te gebruiken en gedeelde load balancers en Private Link-service-exemplaren in elke zegel te implementeren.

U kunt een toegewezen Private Link-service en een toegewezen load balancer implementeren voor elke tenant. Deze aanpak is logisch wanneer u een toegewezen set virtuele machines voor elke tenant hebt, bijvoorbeeld wanneer uw tenants strikte nalevingsvereisten hebben.

U kunt ook toegewezen Private Link-service-exemplaren implementeren voor elke tenant, met een gedeelde standaard load balancer. Dit model biedt echter waarschijnlijk niet veel voordeel. Omdat er bovendien een limiet is voor het aantal Private Link-services dat u op één standard load balancer kunt implementeren, is dit model waarschijnlijk niet groter dan een kleine multitenant-oplossing.

Vaker kunt u meerdere gedeelde Private Link-services implementeren. Met deze aanpak kunt u het aantal privé-eindpunten uitbreiden dat uw oplossing kan ondersteunen op één gedeelde load balancer.

Isolatiemodellen voor Azure PaaS-services met privé-eindpunten

Wanneer u PaaS-services (Platform as a Service) van Azure implementeert en tenants toegang wilt geven tot deze services met privé-eindpunten, moet u rekening houden met de mogelijkheden en beperkingen van de specifieke service. Daarnaast moet u overwegen of uw toepassingslaagresources zijn toegewezen aan een specifieke tenant of dat ze worden gedeeld tussen tenants.

Als u voor elke tenant een toegewezen set resources in de toepassingslaag implementeert, is het waarschijnlijk dat u één privé-eindpunt voor die tenant kunt implementeren om toegang te krijgen tot hun resources. Het is onwaarschijnlijk dat u eventuele private link-gerelateerde servicelimieten uitput, omdat voor elke tenant hun eigen resources zijn toegewezen.

Wanneer u resources voor de toepassingslaag tussen tenants deelt, kunt u overwegen een privé-eindpunt voor elke tenant te implementeren. Er zijn limieten voor het aantal privé-eindpunten dat kan worden gekoppeld aan één resource en deze limieten verschillen voor elke service.

Private Link heeft verschillende functies die nuttig zijn in een omgeving met meerdere tenants. De specifieke functies die voor u beschikbaar zijn, zijn echter afhankelijk van de service die u gebruikt. De basisservice van Azure Private Link, voor virtuele machines en load balancers, ondersteunt alle functies die hieronder worden beschreven. Andere services met Private Link-ondersteuning bieden mogelijk slechts een subset van deze functies.

Servicealiassen

Wanneer een tenant de toegang tot uw service configureert met behulp van Private Link, moeten ze uw service kunnen identificeren, zodat Azure de verbinding tot stand kan brengen.

Met de Private Link-service en bepaalde andere Private Link-compatibele Azure-services kunt u een alias configureren die u aan uw tenants verstrekt. Door een alias te gebruiken, vermijdt u dat uw Azure-abonnements-id's en resourcegroepnamen worden weergegeven.

Zichtbaarheid van service

Met de Private Link-service kunt u de zichtbaarheid van uw privé-eindpunt beheren. U kunt alle Azure-klanten toestaan verbinding te maken met uw service als ze de alias of resource-id kennen. U kunt ook de toegang beperken tot slechts een set bekende Azure-klanten.

U kunt ook een beperkt aantal vooraf goedgekeurde Azure-abonnements-id's opgeven die verbinding kunnen maken met uw privé-eindpunt. Als u ervoor kiest om deze methode te gebruiken, kunt u overwegen hoe u abonnements-id's verzamelt en autoriseert. U kunt bijvoorbeeld een gebruikersinterface voor beheer in uw toepassing opgeven om de abonnements-id van een tenant te verzamelen. Vervolgens kunt u uw Private Link-service-exemplaar dynamisch opnieuw configureren om die abonnements-id voor verbindingen vooraf goed te keuren.

goedkeuringen voor Verbinding maken ion

Nadat een verbinding is aangevraagd tussen een client (zoals een tenant) en een privé-eindpunt, vereist Private Link dat de verbinding wordt goedgekeurd. Totdat de verbinding is goedgekeurd, kan verkeer niet door de privé-eindpuntverbinding stromen.

De Private Link-service ondersteunt verschillende typen goedkeuringsstromen, waaronder:

  • Handmatige goedkeuring, waarbij uw team elke verbinding expliciet goedkeurt. Deze benadering is haalbaar wanneer u slechts een paar tenants hebt die uw service via Private Link gebruiken.
  • Op API gebaseerde goedkeuring, waarbij de Private Link-service de verbinding behandelt als een handmatige goedkeuring, en uw toepassing gebruikmaakt van de api voor het bijwerken van een privé-eindpunt Verbinding maken ion-API, de Azure CLI of Azure PowerShell om een verbinding goed te keuren. Deze benadering kan handig zijn wanneer u een lijst hebt met tenants die zijn gemachtigd om privé-eindpunten te gebruiken.
  • Automatische goedkeuring, waarbij de Private Link-service zelf de lijst met abonnements-id's onderhoudt waarvoor hun verbindingen automatisch moeten worden goedgekeurd.

Zie Toegang tot de service beheren voor meer informatie.

ProxyProtocol v2

Wanneer u de Private Link-service gebruikt, heeft uw toepassing standaard alleen zichtbaarheid van een IP-adres dat is gebruikt via NAT (Network Address Translation). Dit gedrag betekent dat verkeer vanuit uw eigen virtuele netwerk lijkt te stromen.

Met Private Link kunt u toegang krijgen tot het oorspronkelijke IP-adres van de client, in het virtuele netwerk van de tenant. Deze functie maakt gebruik van het TCP Proxy Protocol v2.

Stel dat de beheerders van uw tenants toegangsbeperkingen op basis van IP-adressen moeten toevoegen, zoals host 10.0.0.10, hebben toegang tot de service, maar host 10.0.0.20 niet. Wanneer u Proxy Protocol v2 gebruikt, kunt u uw tenants inschakelen om deze typen toegangsbeperkingen in uw toepassing te configureren. Uw toepassingscode moet echter het oorspronkelijke IP-adres van de client controleren en de beperkingen afdwingen.

Inzenders

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Belangrijkste auteurs:

Andere inzender:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen

Bekijk de netwerkmethoden voor multitenancy.