Privé-eindpunten gebruiken voor App Service-apps
Notitie
Vanaf 1 juni 2024 hebben alle nieuw gemaakte App Service-apps de mogelijkheid om een unieke standaardhostnaam te genereren met behulp van de naamconventie <app-name>-<random-hash>.<region>.azurewebsites.net
. Bestaande app-namen blijven ongewijzigd.
Voorbeeld: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Raadpleeg de unieke standaardhostnaam voor App Service-resource voor meer informatie.
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 naam van een subresource 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 op gegevensexfiltratie van het virtuele netwerk elimineren door alle NSG-regels (Network Security Group) 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.
DNS
Wanneer u een privé-eindpunt gebruikt voor App Service-apps, moet de aangevraagde URL overeenkomen met de naam van uw app. <app-name>.azurewebsites.net
Standaard . Wanneer u een unieke standaardhostnaam gebruikt, heeft uw app-naam de indeling<app-name>-<random-hash>.<region>.azurewebsites.net
. In de onderstaande voorbeelden kan mywebapp ook de volledige ge regionaliseerde unieke hostnaam vertegenwoordigen.
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 mywebapp.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 Agents van Azure DevOps Services) 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 gebruikt met een privé-eindpunt, moet u de functie uitvoeren of uitvoeren in Azure Portal, u moet 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 sleuf 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
- Als u een privé-eindpunt voor uw app wilt implementeren via de portal, raadpleegt u Hoe u privé verbinding maakt met een app met Azure Portal
- Als u een privé-eindpunt voor uw app wilt implementeren met behulp van Azure CLI, raadpleegt u Hoe u privé verbinding maakt met een app met Azure CLI
- Als u een privé-eindpunt voor uw app wilt implementeren met behulp van PowerShell, raadpleegt u Hoe u privé verbinding maakt met een app met PowerShell
- Als u een privé-eindpunt voor uw app wilt implementeren met behulp van een Azure-sjabloon, raadpleegt u Hoe u privé verbinding maakt met een app met een Azure-sjabloon
- End-to-end-voorbeeld: een front-end-app verbinden met een beveiligde back-end-app met integratie van een virtueel netwerk en een privé-eindpunt met een ARM-sjabloon. Zie deze quickstart
- End-to-end-voorbeeld: een front-end-app verbinden met een beveiligde back-end-app met integratie van virtuele netwerken en privé-eindpunten met Terraform. Zie dit voorbeeld