Privé-eindpunten gebruiken voor App Service-apps

Belangrijk

Privé-eindpunt is beschikbaar voor Windows- en Linux-apps, in containers geplaatst of niet, gehost op deze App Service-abonnementen: Basic, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium (ook wel het Elastic Premium-abonnement genoemd).

U kunt een privé-eindpunt voor uw App Service-apps gebruiken om clients die zich in uw privénetwerk bevinden, veilig toegang te geven tot de app via Azure Private Link. Het privé-eindpunt maakt gebruik van een IP-adres uit de adresruimte van uw virtuele Azure-netwerk. Netwerkverkeer tussen een client in uw privénetwerk en de app loopt via het virtuele netwerk en een Private Link in het Microsoft backbone-netwerk, waardoor blootstelling van het openbare internet wordt geëlimineerd.

Als u een privé-eindpunt voor uw app gebruikt, kunt u het volgende doen:

  • Beveilig uw app door het privé-eindpunt te configureren en openbare netwerktoegang uit te schakelen om openbare blootstelling te elimineren.
  • Maak veilig verbinding met uw app vanuit on-premises netwerken die verbinding maken met het virtuele netwerk met behulp van een VPN- of ExpressRoute-privépeering.
  • Vermijd gegevensexfiltratie vanuit uw virtuele netwerk.

Conceptueel overzicht

Een privé-eindpunt is een speciale netwerkinterface (NIC) voor uw App Service-app in een subnet in uw virtuele netwerk. Wanneer u een privé-eindpunt voor uw app maakt, biedt het beveiligde connectiviteit tussen clients in uw privénetwerk en uw app. Aan het privé-eindpunt wordt een IP-adres toegewezen uit het IP-adresbereik van uw virtuele netwerk. De verbinding tussen het privé-eindpunt en de app maakt gebruik van een beveiligde Private Link. Privé-eindpunt wordt alleen gebruikt voor binnenkomend verkeer naar uw app. Uitgaand verkeer gebruikt dit privé-eindpunt niet. U kunt uitgaand verkeer naar uw netwerk in een ander subnet injecteren via de functie voor integratie van virtuele netwerken.

Elke site van een app wordt afzonderlijk geconfigureerd. U kunt maximaal 100 privé-eindpunten per sleuf aansluiten. U kunt geen privé-eindpunt delen tussen sites. De subresourcenaam van een site is sites-<slot-name>.

Het subnet waarin u het privé-eindpunt aansluit, kan andere resources bevatten. U hebt geen toegewezen, leeg subnet nodig. U kunt het privé-eindpunt ook implementeren in een andere regio dan uw app.

Notitie

De functie voor integratie van virtuele netwerken kan niet hetzelfde subnet gebruiken als privé-eindpunt. Dit is een beperking van de functie voor de integratie van virtuele netwerken.

Vanuit beveiligingsperspectief:

  • Privé-eindpunt en openbare toegang kunnen naast elkaar bestaan in een app. Zie voor meer informatie een overzicht van toegangsbeperkingen
  • Wanneer u privé-eindpunten voor uw app inschakelt, moet u ervoor zorgen dat openbare netwerktoegang is uitgeschakeld om isolatie te garanderen.
  • U kunt meerdere privé-eindpunten inschakelen in andere virtuele netwerken en subnetten, inclusief virtueel netwerk in andere regio's.
  • De regels voor toegangsbeperkingen van uw app worden niet geëvalueerd voor verkeer via het privé-eindpunt.
  • U kunt het risico van gegevensexfiltratie van het virtuele netwerk elimineren door alle NSG-regels te verwijderen waarbij de bestemming internet- of Azure-services tagt.

In de web-HTTP-logboeken van uw app vindt u het IP-adres van de clientbron. Deze functie wordt geïmplementeerd met behulp van het TCP-proxyprotocol en stuurt de client-IP-eigenschap door naar de app. Zie Verbindingsgegevens ophalen met TCP Proxy v2 voor meer informatie.

Globaal overzicht van privé-eindpunten voor App Service-apps

DNS

Wanneer u een privé-eindpunt gebruikt voor App Service-apps, moet de aangevraagde URL overeenkomen met de naam van uw app. Standaard mywebappname.azurewebsites.net.

Standaard is de openbare naam van uw web-app zonder privé-eindpunt een canonieke naam voor het cluster. De naamomzetting is bijvoorbeeld:

Name Type Waarde
mywebapp.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 40.122.110.154

Wanneer u een privé-eindpunt implementeert, wordt de DNS-vermelding bijgewerkt zodat deze verwijst naar de canonieke naam mywebapp.privatelink.azurewebsites.net. De naamomzetting is bijvoorbeeld:

Name Type Weergegeven als Opmerking
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net
mywebapp.privatelink.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 40.122.110.154 <--Dit openbare IP-adres is niet uw privé-eindpunt, u ontvangt een 403-fout

U moet een privé-DNS-server of een privézone van Azure DNS instellen. Voor tests kunt u de hostvermelding van uw testmachine wijzigen. De DNS-zone die u moet maken, is: privatelink.azurewebsites.net. Registreer de record voor uw app met een A-record en het IP-adres van het privé-eindpunt. De naamomzetting is bijvoorbeeld:

Name Type Weergegeven als Opmerking
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net <--Azure maakt deze CNAME-vermelding in openbare AZURE DNS om het app-adres te laten verwijzen naar het privé-eindpuntadres
mywebapp.privatelink.azurewebsites.net A 10.10.10.8 <--U beheert deze vermelding in uw DNS-systeem om te verwijzen naar het IP-adres van uw privé-eindpunt

Na deze DNS-configuratie kunt u uw app privé bereiken met de standaardnaam mywebappname.azurewebsites.net. U moet deze naam gebruiken, omdat het standaardcertificaat is uitgegeven voor *.azurewebsites.net.

Als u een aangepaste DNS-naam wilt gebruiken, moet u de aangepaste naam toevoegen in uw app en moet u de aangepaste naam valideren zoals elke aangepaste naam, met behulp van openbare DNS-omzetting. Zie aangepaste DNS-validatie voor meer informatie.

Voor de Kudu-console of Kudu REST API (implementatie met zelf-hostende Azure DevOps-agents) moet u bijvoorbeeld twee records maken die verwijzen naar het privé-eindpunt-IP in uw Azure DNS-privézone of uw aangepaste DNS-server. De eerste is voor uw app, de tweede is voor de SCM van uw app.

Name Type Weergegeven als
mywebapp.privatelink.azurewebsites.net A PrivateEndpointIP
mywebapp.scm.privatelink.azurewebsites.net A PrivateEndpointIP

Speciale overwegingen voor App Service Environment v3

Als u een privé-eindpunt wilt inschakelen voor apps die worden gehost in een IsolatedV2-plan (App Service Environment v3), moet u de ondersteuning voor privé-eindpunten inschakelen op het niveau van de App Service-omgeving. U kunt de functie activeren via Azure Portal in het configuratievenster van De App Service Environment of via de volgende CLI:

az appservice ase update --name myasename --allow-new-private-endpoint-connections true

Specifieke vereisten

Als het virtuele netwerk zich in een ander abonnement bevindt dan de app, moet u ervoor zorgen dat het abonnement met het virtuele netwerk is geregistreerd voor de Microsoft.Web resourceprovider. U kunt de provider expliciet registreren door deze documentatie te volgen, maar u registreert de provider ook automatisch wanneer u de eerste web-app in een abonnement maakt.

Prijzen

Zie prijzen van Azure Private Link voor meer informatie over prijzen.

Beperkingen

  • Wanneer u Azure Function in Elastic Premium-abonnement met een privé-eindpunt gebruikt om de functie in Azure Portal uit te voeren of uit te voeren, moet u directe netwerktoegang hebben of u ontvangt een HTTP 403-fout. Met andere woorden, uw browser moet het privé-eindpunt kunnen bereiken om de functie uit te voeren vanuit Azure Portal.
  • U kunt maximaal 100 privé-eindpunten verbinden met een bepaalde app.
  • De functionaliteit voor foutopsporing op afstand is niet beschikbaar via het privé-eindpunt. De aanbeveling is om de code te implementeren in een site en externe fouten erin op te sporen.
  • FTP-toegang wordt geboden via het binnenkomende openbare IP-adres. Privé-eindpunt biedt geen ondersteuning voor FTP-toegang tot de app.
  • SSL op basis van IP wordt niet ondersteund met privé-eindpunten.
  • Apps die u configureert met privé-eindpunten, kunnen geen openbaar verkeer ontvangen dat afkomstig is van subnetten waarvoor Microsoft.Web service-eindpunt is ingeschakeld en kunnen geen toegangsbeperkingsregels op basis van service-eindpunten gebruiken.
  • Naamgeving van privé-eindpunten moet voldoen aan de regels die zijn gedefinieerd voor resources van het type Microsoft.Network/privateEndpoints. Naamgevingsregels vindt u hier.

We verbeteren de functie Azure Private Link en het privé-eindpunt regelmatig. Raadpleeg dit artikel voor actuele informatie over beperkingen.

Volgende stappen