Använda privata slutpunkter för App Service-appar
Kommentar
Från och med den 1 juni 2024 kan nyligen skapade App Service-appar generera ett unikt standardvärdnamn som använder namngivningskonventionen <app-name>-<random-hash>.<region>.azurewebsites.net
. Befintliga appnamn förblir oförändrade. Till exempel:
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Mer information finns i Unikt standardvärdnamn för App Service-resurs.
Viktigt!
Privata slutpunkter är tillgängliga för Windows- och Linux-appar, containerbaserade eller inte, som finns i dessa App Service-planer: Basic, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium (kallas ibland Elastic Premium-planen).
Du kan använda en privat slutpunkt för dina App Service-appar. Med den privata slutpunkten kan klienter som finns i ditt privata nätverk få säker åtkomst till appen via Azure Private Link. Den privata slutpunkten använder en IP-adress från ditt virtuella Azure-nätverksadressutrymme. Nätverkstrafik mellan en klient i ditt privata nätverk och appen passerar över det virtuella nätverket och en Private Link i Microsofts stamnätverk. Den här konfigurationen eliminerar exponeringen från det offentliga Internet.
Med hjälp av en privat slutpunkt för din app kan du:
- Skydda din app genom att konfigurera den privata slutpunkten och inaktivera åtkomsten till det offentliga nätverket för att eliminera offentlig exponering.
- Anslut på ett säkert sätt till din app från lokala nätverk som ansluter till det virtuella nätverket med hjälp av en privat VPN- eller ExpressRoute-peering.
- Undvik dataexfiltrering från ditt virtuella nätverk.
Begreppsmässig översikt
En privat slutpunkt är ett särskilt nätverksgränssnitt (NIC) för din App Service-app i ett undernät i ditt virtuella nätverk. När du skapar en privat slutpunkt för din app ger den säker anslutning mellan klienter i ditt privata nätverk och din app. Den privata slutpunkten tilldelas en IP-adress från IP-adressintervallet för ditt virtuella nätverk. Anslutningen mellan den privata slutpunkten och appen använder en säker privat länk. Privat slutpunkt används endast för inkommande trafik till din app. Utgående trafik använder inte den här privata slutpunkten. Du kan mata in utgående trafik till nätverket i ett annat undernät via integreringsfunktionen för virtuella nätverk.
Varje plats i en app konfigureras separat. Du kan använda upp till 100 privata slutpunkter per fack. Du kan inte dela en privat slutpunkt mellan platser. Underresursnamnet för ett fack är sites-<slot-name>
.
Det undernät där du ansluter den privata slutpunkten kan ha andra resurser i den. Du behöver inte ett dedikerat tomt undernät. Du kan också distribuera den privata slutpunkten i en annan region än din app.
Kommentar
Integreringsfunktionen för virtuella nätverk kan inte använda samma undernät som privat slutpunkt.
Ur ett säkerhetsperspektiv:
- Privat slutpunkt och offentlig åtkomst kan samexistera i en app. Mer information finns i den här översikten över åtkomstbegränsningar.
- Se till att åtkomsten till det offentliga nätverket är inaktiverad för att säkerställa isolering när du aktiverar privata slutpunkter till din app.
- Du kan aktivera flera privata slutpunkter i andra virtuella nätverk och undernät, inklusive virtuella nätverk i andra regioner.
- Åtkomstbegränsningarna för din app utvärderas inte för trafik via den privata slutpunkten.
- Du kan eliminera dataexfiltreringsrisken från det virtuella nätverket genom att ta bort alla NSG-regler (Network Security Group) där målet är taggen Internet eller Azure-tjänster.
I appens HTTP-webbloggar hittar du klientkällans IP-adress. Den här funktionen implementeras med hjälp av TCP Proxy-protokollet och vidarebefordrar klientens IP-egenskap till appen. Mer information finns i Hämta anslutningsinformation med TCP Proxy v2.
DNS
När du använder privat slutpunkt för App Service-appar måste den begärda URL:en matcha namnet på din app. Som standard . <app-name>.azurewebsites.net
När du använder ett unikt standardvärdnamn har appnamnet formatet <app-name>-<random-hash>.<region>.azurewebsites.net
. I följande exempel kan mywebapp också representera det fullständiga regionaliserade unika värdnamnet.
Utan en privat slutpunkt är det offentliga namnet på webbappen som standard ett kanoniskt namn på klustret. Namnmatchningen är till exempel:
Namn | Typ | Värde |
---|---|---|
mywebapp.azurewebsites.net | CNAME | clustername.azurewebsites.windows.net |
clustername.azurewebsites.windows.net | CNAME | cloudservicename.cloudapp.net |
cloudservicename.cloudapp.net | A | 192.0.2.13 |
När du distribuerar en privat slutpunkt uppdaterar metoden DNS-posten så att den pekar på det kanoniska namnet: mywebapp.privatelink.azurewebsites.net
.
Namnmatchningen är till exempel:
Namn | Typ | Värde | Anmärkning |
---|---|---|---|
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 | 192.0.2.13 | <--Den här offentliga IP-adressen är inte din privata slutpunkt, du får ett 403-fel |
Du måste konfigurera en privat DNS-server eller en privat Azure DNS-zon. För tester kan du ändra värdposten för testdatorn.
Den DNS-zon som du behöver skapa är: privatelink.azurewebsites.net
. Registrera posten för din app med en A-post och ip-adressen för den privata slutpunkten.
Namnmatchningen är till exempel:
Namn | Typ | Värde | Anmärkning |
---|---|---|---|
mywebapp.azurewebsites.net | CNAME | mywebapp.privatelink.azurewebsites.net | <--Azure skapar den här CNAME-posten i Azure Public DNS för att peka appadressen till den privata slutpunktsadressen |
mywebapp.privatelink.azurewebsites.net | A | 10.10.10.8 | <--Du hanterar den här posten i DNS-systemet för att peka på din privata slutpunkts-IP-adress |
Efter den här DNS-konfigurationen kan du nå din app privat med standardnamnet mywebapp.azurewebsites.net. Du måste använda det här namnet eftersom standardcertifikatet har utfärdats för *.azurewebsites.net
.
Om du behöver använda ett anpassat DNS-namn lägger du till det anpassade namnet i appen och måste verifiera det anpassade namnet som alla anpassade namn med hjälp av offentlig DNS-matchning. Mer information finns i anpassad DNS-validering.
För Kudu-konsolen eller Kudu REST API (distribution med lokala Azure DevOps Services-agenter) måste du till exempel skapa två poster som pekar på ip-adressen för den privata slutpunkten i din privata Azure DNS-zon eller din anpassade DNS-server. Den första är för din app och den andra gäller för appens SCM.
Namn | Typ | Värde |
---|---|---|
mywebapp.privatelink.azurewebsites.net | A | PrivateEndpointIP |
mywebapp.scm.privatelink.azurewebsites.net | A | PrivateEndpointIP |
App Service-miljön v3 särskilt övervägande
För att aktivera privat slutpunkt för appar som finns i en IsolatedV2-plan (App Service-miljön v3) aktiverar du stöd för den privata slutpunkten på App Service-miljön nivå. Du kan aktivera funktionen via Azure Portal i konfigurationsfönstret App Service-miljön eller via följande CLI:
az appservice ase update --name myasename --allow-new-private-endpoint-connections true
Specifika krav
Om det virtuella nätverket finns i en annan prenumeration än appen kontrollerar du att prenumerationen med det virtuella nätverket är registrerad för resursprovidern Microsoft.Web
. Information om hur du registrerar providern finns i Registrera resursprovider. Du registrerar providern automatiskt när du skapar den första webbappen i en prenumeration.
Prissättning
Prisinformation finns i Priser för Azure Private Link.
Begränsningar
- När du använder Azure Function i Elastic Premium-abonnemanget med en privat slutpunkt måste du ha direkt nätverksåtkomst för att kunna köra funktionen i Azure Portal. Annars får du ett HTTP 403-fel. Webbläsaren måste kunna nå den privata slutpunkten för att kunna köra funktionen från Azure Portal.
- Du kan ansluta upp till 100 privata slutpunkter till en viss app.
- Fjärrfelsökningsfunktioner är inte tillgängliga via den privata slutpunkten. Vi rekommenderar att du distribuerar koden till ett fack och fjärrfelsöker den där.
- FTP-åtkomst tillhandahålls via den inkommande offentliga IP-adressen. En privat slutpunkt stöder inte FTP-åtkomst till appen.
- IP-baserad TLS stöds inte med privata slutpunkter.
- Appar som du konfigurerar med privata slutpunkter kan inte ta emot offentlig trafik som kommer från undernät med
Microsoft.Web
tjänstslutpunkten aktiverad och som inte kan använda tjänstslutpunktsbaserade regler för åtkomstbegränsning. - Namngivning av privata slutpunkter måste följa de regler som definierats för resurser av typen
Microsoft.Network/privateEndpoints
. Mer information finns i Namngivningsregler och begränsningar.
Uppdaterad information om begränsningar finns i Begränsningar.
Relaterat innehåll
- Information om hur du distribuerar privat slutpunkt för din app via portalen finns i Så här ansluter du privat till en app med Azure Portal.
- Information om hur du distribuerar en privat slutpunkt för din app med Azure CLI finns i Så här ansluter du privat till en app med Azure CLI.
- Information om hur du distribuerar en privat slutpunkt för din app med PowerShell finns i Så här ansluter du privat till en app med PowerShell.
- Information om hur du distribuerar en privat slutpunkt för din app med hjälp av Azure-mallen finns i Så här ansluter du privat till en app med Azure-mall.
- Information om hur du ansluter en klientdelsapp till en skyddad serverdelsapp med integrering av virtuella nätverk och privat slutpunkt med ARM-mall finns i den här snabbstarten.
- Information om hur du ansluter en klientdelsapp till en skyddad serverdelsapp med integrering av virtuella nätverk och privat slutpunkt med terraform finns i det här exemplet.