Låsa en App Service-miljö

Viktigt!

Den här artikeln handlar om App Service-miljön v2 som används med isolerade App Service-planer. App Service-miljön v2 dras tillbaka den 31 augusti 2024. Det finns en ny version av App Service-miljön som är enklare att använda och köra på kraftfullare infrastruktur. Om du vill veta mer om den nya versionen börjar du med Introduktion till App Service-miljön. Om du för närvarande använder App Service-miljön v2 följer du stegen i den här artikeln för att migrera till den nya versionen.

Från och med den 29 januari 2024 kan du inte längre skapa nya App Service-miljön v2-resurser med någon av de tillgängliga metoderna, inklusive ARM/Bicep-mallar, Azure Portal, Azure CLI eller REST API. Du måste migrera till App Service-miljön v3 före den 31 augusti 2024 för att förhindra resursborttagning och dataförlust.

App Service-miljön (ASE) har många externa beroenden som krävs för att fungera korrekt. ASE finns i kundens Azure Virtual Network. Kunder måste tillåta ASE-beroendetrafik, vilket är ett problem för kunder som vill låsa alla utgående trafik från sitt virtuella nätverk.

Det finns många inkommande slutpunkter som används för att hantera en ASE. Inkommande hanteringstrafik kan inte skickas via en brandväggsenhet. Källadresserna för den här trafiken är kända och publiceras i dokumentet App Service-miljön hanteringsadresser. Det finns också en tjänsttagg med namnet AppServiceManagement, som kan användas med nätverkssäkerhetsgrupper (NSG:er) för att skydda inkommande trafik.

UTgående ASE-beroenden definieras nästan helt med FQDN, som inte har statiska adresser bakom sig. Bristen på statiska adresser innebär att nätverkssäkerhetsgrupper inte kan användas för att låsa utgående trafik från en ASE. Adresserna ändras tillräckligt ofta så att man inte kan konfigurera regler baserat på den aktuella lösningen och använda den för att skapa NSG:er.

Lösningen för att skydda utgående adresser används av en brandväggsenhet som kan styra utgående trafik baserat på domännamn. Azure Firewall kan begränsa utgående HTTP- och HTTPS-trafik baserat på målets fullständiga domännamn.

Systemarkitektur

Distribution av en ASE med utgående trafik som går via en brandväggsenhet kräver att vägar ändras i ASE-undernätet. Vägar fungerar på IP-nivå. Om du inte är försiktig med att definiera dina vägar kan du tvinga TCP-svarstrafiken till källan från en annan adress. När svarsadressen skiljer sig från den adress som trafiken skickades till kallas problemet asymmetrisk routning och det bryter TCP.

Det måste finnas vägar som definierats så att inkommande trafik till ASE kan svara på samma sätt som trafiken kom in. Vägar måste definieras för inkommande hanteringsbegäranden och för inkommande programbegäranden.

Trafiken till och från en ASE måste följa följande konventioner

  • Trafiken till Azure SQL, Storage och Event Hubs stöds inte med hjälp av en brandväggsenhet. Den här trafiken måste skickas direkt till dessa tjänster. Sättet att få det att hända är att konfigurera tjänstslutpunkter för dessa tre tjänster.
  • Routningstabellregler måste definieras som skickar inkommande hanteringstrafik tillbaka från den plats där den kom.
  • Routningstabellregler måste definieras som skickar inkommande programtrafik tillbaka från den plats där den kom.
  • All annan trafik som lämnar ASE kan skickas till brandväggsenheten med en routningstabellregel.

ASE with Azure Firewall connection flow

Låsa inkommande hanteringstrafik

Om ditt ASE-undernät inte redan har tilldelats en NSG skapar du en. I NSG anger du den första regeln för att tillåta trafik från tjänsttaggen med namnet AppServiceManagement på portarna 454, 455. Regeln för att tillåta åtkomst från Taggen AppServiceManagement är det enda som krävs från offentliga IP-adresser för att hantera din ASE. Adresserna som finns bakom servicetaggen används endast för att administrera Azure App Service. Hanteringstrafiken som flödar genom dessa anslutningar krypteras och skyddas med autentiseringscertifikat. Typisk trafik på den här kanalen omfattar saker som kundinitierade kommandon och hälsoavsökningar.

ASE:er som görs via portalen med ett nytt undernät görs med en NSG som innehåller tillåtningsregeln för Taggen AppServiceManagement.

Din ASE måste också tillåta inkommande begäranden från taggen Load Balancer på port 16001. Begäranden från lastbalanseraren på port 16001 håller sig vid liv mellan lastbalanseraren och ASE-klientdelarna. Om port 16001 blockeras blir ASE inte felfri.

Konfigurera Azure Firewall med din ASE

Stegen för att låsa utgående trafik från din befintliga ASE med Azure Firewall är:

  1. Aktivera tjänstslutpunkter till SQL, Storage och Event Hubs i ASE-undernätet. Om du vill aktivera tjänstslutpunkter går du till nätverksportalens > undernät och väljer Microsoft.EventHub, Microsoft.SQL och Microsoft.Storage i listrutan Tjänstslutpunkter. När du har tjänstslutpunkter aktiverade för Azure SQL måste även alla Azure SQL-beroenden som dina appar har konfigurerats med tjänstslutpunkter.

    select service endpoints

  2. Skapa ett undernät med namnet AzureFirewallSubnet i det virtuella nätverk där din ASE finns. Följ anvisningarna i Azure Firewall-dokumentationen för att skapa din Azure Firewall.

  3. I azure firewall UI > Rules > Application rule collection (Programregelsamling för Azure Firewall-regler) väljer du Lägg till programregelsamling. Ange ett namn, en prioritet och ange Tillåt. I avsnittet FQDN-taggar anger du ett namn, anger källadresserna till * och väljer taggen App Service-miljön FQDN och Windows Update.

    Add application rule

  4. I regelsamlingen Azure Firewall UI > Rules > Network väljer du Lägg till nätverksregelsamling. Ange ett namn, en prioritet och ange Tillåt. I avsnittet Regler under IP-adresser anger du ett namn, väljer ett protokoll med Alla, anger * till käll- och måladresser och anger portarna till 123. Med den här regeln kan systemet utföra klocksynkronisering med hjälp av NTP. Skapa en annan regel på samma sätt som port 12000 för att hjälpa till att sortera eventuella systemproblem.

    Add NTP network rule

  5. I regelsamlingen Azure Firewall UI > Rules > Network väljer du Lägg till nätverksregelsamling. Ange ett namn, en prioritet och ange Tillåt. I avsnittet Regler under Tjänsttaggar anger du ett namn, väljer ett protokoll med Alla, anger * till Källadresser, väljer en tjänsttagg för AzureMonitor och anger portarna till 80, 443. Med den här regeln kan systemet förse Azure Monitor med hälso- och måttinformation.

    Add NTP service tag network rule

  6. Skapa en routningstabell med en väg för AppServiceManagement-tjänsttaggen med nästa hopp av Internet. Den här routningstabellposten krävs för att undvika asymmetriska routningsproblem. Lägg till en virtuell installationsväg i routningstabellen för 0.0.0.0/0 och nästa hopp är din privata IP-adress för Azure Firewall. Du bör använda tjänsttaggen i stället för IP-adresserna för att undvika att behöva uppdatera routningstabellen när hanteringsadresserna ändras. Men om du behöver använda hanteringsadresserna kan du ladda ned referensfilen för tjänsttaggen för molnet som du använder från App Service-miljön hanteringsadresser och skapa dina vägar från dem.

  7. Tilldela routningstabellen som du skapade till ditt ASE-undernät.

Distribuera din ASE bakom en brandvägg

Stegen för att distribuera din ASE bakom en brandvägg är samma som att konfigurera din befintliga ASE med en Azure Firewall, förutom att du behöver skapa ditt ASE-undernät och sedan följa föregående steg. Om du vill skapa din ASE i ett befintligt undernät måste du använda en Resource Manager-mall enligt beskrivningen i dokumentet om Att skapa din ASE med en Resource Manager-mall.

Programtrafik

Stegen ovan gör att DIN ASE kan fungera utan problem. Du måste fortfarande konfigurera saker som passar dina programbehov. Det finns två problem för program i en ASE som har konfigurerats med Azure Firewall.

  • Programberoenden måste läggas till i Azure Firewall eller routningstabellen.
  • Vägar måste skapas för programtrafiken för att undvika asymmetriska routningsproblem

Om dina program har beroenden måste de läggas till i Azure Firewall. Skapa programregler för att tillåta HTTP/HTTPS-trafik och nätverksregler för allt annat.

När du känner till adressintervallet som trafiken för programbegäran kommer från kan du lägga till det i routningstabellen som är tilldelad till ditt ASE-undernät. Om adressintervallet är stort eller ospecificerat kan du använda en nätverksinstallation som Application Gateway för att ge dig en adress att lägga till i routningstabellen. Mer information om hur du konfigurerar en Application Gateway med din ILB ASE finns i Integrera din ILB ASE med en Application Gateway

Den här användningen av Application Gateway är bara ett exempel på hur du konfigurerar systemet. Om du följde den här sökvägen skulle du behöva lägga till en väg till ASE-undernätets routningstabell så att svarstrafiken som skickas till Application Gateway skulle gå dit direkt.

Loggning

Azure Firewall kan skicka loggar till Azure Storage, Event Hubs eller Azure Monitor-loggar. Om du vill integrera din app med alla mål som stöds går du till Azure Firewall-portalens > diagnostikloggar och aktiverar loggarna för önskat mål. Om du integrerar med Azure Monitor-loggar kan du se loggning för all trafik som skickas till Azure Firewall. Om du vill se den trafik som nekas öppnar du log-portalloggarna > för Log Analytics-arbetsytan och anger en fråga som

AzureDiagnostics | where msg_s contains "Deny" | where TimeGenerated >= ago(1h)

Att integrera Azure Firewall med Azure Monitor-loggar är användbart när du först får ett program att fungera när du inte känner till alla programberoenden. Du kan lära dig mer om Azure Monitor-loggar från Analysera loggdata i Azure Monitor.

Konfigurera en brandvägg från tredje part med din ASE

Följande information krävs endast om du vill konfigurera en annan brandväggsenhet än Azure Firewall. För Azure Firewall, se avsnittet ovan.

Tänk på följande beroenden när du distribuerar en brandvägg från tredje part med din ASE:

  • Tjänstslutpunktskompatibla tjänster ska konfigureras med tjänstslutpunkter.
  • IP-adressberoenden gäller för icke-HTTP/S-trafik (både TCP- och UDP-trafik)
  • FQDN HTTP/HTTPS-slutpunkter kan placeras i brandväggsenheten.
  • HTTP/HTTPS-slutpunkter med jokertecken är beroenden som kan variera med din ASE baserat på många kvalificerare.
  • Linux-beroenden är bara ett problem om du distribuerar Linux-appar till din ASE. Om du inte distribuerar Linux-appar till din ASE behöver dessa adresser inte läggas till i brandväggen.

Tjänstslutpunktskompatibla beroenden

Slutpunkt
Azure SQL
Azure Storage
Azure Event Hubs

IP-adressberoenden

Slutpunkt Details
*:123 NTP-klockkontroll. Trafiken kontrolleras vid flera slutpunkter på port 123
*:12000 Den här porten används för viss systemövervakning. Om det blockeras är vissa problem svårare att sortera, men din ASE fortsätter att fungera
40.77.24.27:80 Behövs för att övervaka och avisera om ASE-problem
40.77.24.27:443 Behövs för att övervaka och avisera om ASE-problem
13.90.249.229:80 Behövs för att övervaka och avisera om ASE-problem
13.90.249.229:443 Behövs för att övervaka och avisera om ASE-problem
104.45.230.69:80 Behövs för att övervaka och avisera om ASE-problem
104.45.230.69:443 Behövs för att övervaka och avisera om ASE-problem
13.82.184.151:80 Behövs för att övervaka och avisera om ASE-problem
13.82.184.151:443 Behövs för att övervaka och avisera om ASE-problem

Med en Azure Firewall får du automatiskt följande konfigurerat med FQDN-taggarna.

FQDN HTTP/HTTPS-beroenden

Slutpunkt
graph.microsoft.com:443
login.live.com:443
login.windows.com:443
login.windows.net:443
login.microsoftonline.com:443
*.login.microsoftonline.com:443
*.login.microsoft.com:443
client.wns.windows.com:443
definitionupdates.microsoft.com:443
go.microsoft.com:80
go.microsoft.com:443
www.microsoft.com:80
www.microsoft.com:443
wdcpalt.microsoft.com:443
wdcp.microsoft.com:443
ocsp.msocsp.com:443
ocsp.msocsp.com:80
oneocsp.microsoft.com:80
oneocsp.microsoft.com:443
mscrl.microsoft.com:443
mscrl.microsoft.com:80
crl.microsoft.com:443
crl.microsoft.com:80
www.thawte.com:443
crl3.digicert.com:80
ocsp.digicert.com:80
ocsp.digicert.com:443
csc3-2009-2.crl.verisign.com:80
crl.verisign.com:80
ocsp.verisign.com:80
cacerts.digicert.com:80
azperfcounters1.blob.core.windows.net:443
azurewatsonanalysis-prod.core.windows.net:443
global.metrics.nsatc.net:80
global.metrics.nsatc.net:443
az-prod.metrics.nsatc.net:443
antares.metrics.nsatc.net:443
azglobal-black.azglobal.metrics.nsatc.net:443
azglobal-red.azglobal.metrics.nsatc.net:443
antares-black.antares.metrics.nsatc.net:443
antares-red.antares.metrics.nsatc.net:443
prod.microsoftmetrics.com:443
maupdateaccount.blob.core.windows.net:443
clientconfig.passport.net:443
packages.microsoft.com:443
schemas.microsoft.com:80
schemas.microsoft.com:443
management.core.windows.net:443
management.core.windows.net:80
management.azure.com:443
www.msftconnecttest.com:80
shavamanifestcdnprod1.azureedge.net:443
validation-v2.sls.microsoft.com:443
flighting.cp.wd.microsoft.com:443
dmd.metaservices.microsoft.com:80
admin.core.windows.net:443
prod.warmpath.msftcloudes.com:443
prod.warmpath.msftcloudes.com:80
gcs.prod.monitoring.core.windows.net:80
gcs.prod.monitoring.core.windows.net:443
azureprofileruploads.blob.core.windows.net:443
azureprofileruploads2.blob.core.windows.net:443
azureprofileruploads3.blob.core.windows.net:443
azureprofileruploads4.blob.core.windows.net:443
azureprofileruploads5.blob.core.windows.net:443
azperfmerges.blob.core.windows.net:443
azprofileruploads1.blob.core.windows.net:443
azprofileruploads10.blob.core.windows.net:443
azprofileruploads2.blob.core.windows.net:443
azprofileruploads3.blob.core.windows.net:443
azprofileruploads4.blob.core.windows.net:443
azprofileruploads6.blob.core.windows.net:443
azprofileruploads7.blob.core.windows.net:443
azprofileruploads8.blob.core.windows.net:443
azprofileruploads9.blob.core.windows.net:443
azureprofilerfrontdoor.cloudapp.net:443
settings-win.data.microsoft.com:443
maupdateaccount2.blob.core.windows.net:443
maupdateaccount3.blob.core.windows.net:443
dc.services.visualstudio.com:443
gmstorageprodsn1.blob.core.windows.net:443
gmstorageprodsn1.file.core.windows.net:443
gmstorageprodsn1.queue.core.windows.net:443
gmstorageprodsn1.table.core.windows.net:443
rteventservice.trafficmanager.net:443
ctldl.windowsupdate.com:80
ctldl.windowsupdate.com:443
global-dsms.dsms.core.windows.net:443

HTTP/HTTPS-beroenden med jokertecken

Slutpunkt
gr-prod-*.cloudapp.net:443
gr-prod-*.azurewebsites.windows.net:443
*.management.azure.com:443
*.update.microsoft.com:443
*.windowsupdate.microsoft.com:443
*.identity.azure.net:443
*.ctldl.windowsupdate.com:80
*.ctldl.windowsupdate.com:443
*.prod.microsoftmetrics.com:443
*.dsms.core.windows.net:443
*.prod.warm.ingest.monitor.core.windows.net:443

Linux-beroenden

Slutpunkt
wawsinfraprodbay063.blob.core.windows.net:443
registry-1.docker.io:443
auth.docker.io:443
production.cloudflare.docker.com:443
download.docker.com:443
us.archive.ubuntu.com:80
download.mono-project.com:80
packages.treasuredata.com:80
security.ubuntu.com:80
oryx-cdn.microsoft.io:443
*.cdn.mscr.io:443
*.data.mcr.microsoft.com:443
mcr.microsoft.com:443
*.data.mcr.microsoft.com:443
packages.fluentbit.io:80
packages.fluentbit.io:443
apt-mo.trafficmanager.net:80
apt-mo.trafficmanager.net:443
azure.archive.ubuntu.com:80
azure.archive.ubuntu.com:443
changelogs.ubuntu.com:80
13.74.252.37:11371
13.75.127.55:11371
13.76.190.189:11371
13.80.10.205:11371
13.91.48.226:11371
40.76.35.62:11371
104.215.95.108:11371

Konfigurera en brandvägg med ASE i US Gov-regioner

För ASE:er i US Gov-regioner följer du anvisningarna i avsnittet Konfigurera Azure Firewall med din ASE i det här dokumentet för att konfigurera en Azure Firewall med din ASE.

När du vill använda en brandvägg från tredje part i US Gov måste du överväga följande beroenden:

  • Tjänstslutpunktskompatibla tjänster ska konfigureras med tjänstslutpunkter.
  • FQDN HTTP/HTTPS-slutpunkter kan placeras i brandväggsenheten.
  • HTTP/HTTPS-slutpunkter med jokertecken är beroenden som kan variera med din ASE baserat på många kvalificerare.

Linux är inte tillgängligt i US Gov-regioner och visas därför inte som en valfri konfiguration.

Tjänstslutpunktskompatibla beroenden

Slutpunkt
Azure SQL
Azure Storage
Azure Event Hubs

IP-adressberoenden

Slutpunkt Details
*:123 NTP-klockkontroll. Trafiken kontrolleras vid flera slutpunkter på port 123
*:12000 Den här porten används för viss systemövervakning. Om det blockeras är vissa problem svårare att sortera, men din ASE fortsätter att fungera
40.77.24.27:80 Behövs för att övervaka och avisera om ASE-problem
40.77.24.27:443 Behövs för att övervaka och avisera om ASE-problem
13.90.249.229:80 Behövs för att övervaka och avisera om ASE-problem
13.90.249.229:443 Behövs för att övervaka och avisera om ASE-problem
104.45.230.69:80 Behövs för att övervaka och avisera om ASE-problem
104.45.230.69:443 Behövs för att övervaka och avisera om ASE-problem
13.82.184.151:80 Behövs för att övervaka och avisera om ASE-problem
13.82.184.151:443 Behövs för att övervaka och avisera om ASE-problem

FQDN HTTP/HTTPS-beroenden

Slutpunkt
admin.core.usgovcloudapi.net:80
azperfmerges.blob.core.windows.net:80
azperfmerges.blob.core.windows.net:80
azprofileruploads1.blob.core.windows.net:80
azprofileruploads10.blob.core.windows.net:80
azprofileruploads2.blob.core.windows.net:80
azprofileruploads3.blob.core.windows.net:80
azprofileruploads4.blob.core.windows.net:80
azprofileruploads5.blob.core.windows.net:80
azprofileruploads6.blob.core.windows.net:80
azprofileruploads7.blob.core.windows.net:80
azprofileruploads8.blob.core.windows.net:80
azprofileruploads9.blob.core.windows.net:80
azureprofilerfrontdoor.cloudapp.net:80
azurewatsonanalysis.usgovcloudapp.net:80
cacerts.digicert.com:80
client.wns.windows.com:80
crl.microsoft.com:80
crl.verisign.com:80
crl3.digicert.com:80
csc3-2009-2.crl.verisign.com:80
ctldl.windowsupdate.com:80
definitionupdates.microsoft.com:80
download.windowsupdate.com:80
fairfax.warmpath.usgovcloudapi.net:80
flighting.cp.wd.microsoft.com:80
gcwsprodgmdm2billing.queue.core.usgovcloudapi.net:80
gcwsprodgmdm2billing.table.core.usgovcloudapi.net:80
global.metrics.nsatc.net:80
go.microsoft.com:80
gr-gcws-prod-bd3.usgovcloudapp.net:80
gr-gcws-prod-bn1.usgovcloudapp.net:80
gr-gcws-prod-dd3.usgovcloudapp.net:80
gr-gcws-prod-dm2.usgovcloudapp.net:80
gr-gcws-prod-phx20.usgovcloudapp.net:80
gr-gcws-prod-sn5.usgovcloudapp.net:80
login.live.com:80
login.microsoftonline.us:80
management.core.usgovcloudapi.net:80
management.usgovcloudapi.net:80
maupdateaccountff.blob.core.usgovcloudapi.net:80
mscrl.microsoft.com:80
ocsp.digicert.com:80
ocsp.verisign.com:80
rteventse.trafficmanager.net:80
settings-n.data.microsoft.com:80
shavamafestcdnprod1.azureedge.net:80
shavanifestcdnprod1.azureedge.net:80
v10ortex-win.data.microsoft.com:80
wp.microsoft.com:80
dcpalt.microsoft.com:80
www.microsoft.com:80
www.msftconnecttest.com:80
www.thawte.com:80
admin.core.usgovcloudapi.net:443
azperfmerges.blob.core.windows.net:443
azperfmerges.blob.core.windows.net:443
azprofileruploads1.blob.core.windows.net:443
azprofileruploads10.blob.core.windows.net:443
azprofileruploads2.blob.core.windows.net:443
azprofileruploads3.blob.core.windows.net:443
azprofileruploads4.blob.core.windows.net:443
azprofileruploads5.blob.core.windows.net:443
azprofileruploads6.blob.core.windows.net:443
azprofileruploads7.blob.core.windows.net:443
azprofileruploads8.blob.core.windows.net:443
azprofileruploads9.blob.core.windows.net:443
azureprofilerfrontdoor.cloudapp.net:443
azurewatsonanalysis.usgovcloudapp.net:443
cacerts.digicert.com:443
client.wns.windows.com:443
crl.microsoft.com:443
crl.verisign.com:443
crl3.digicert.com:443
csc3-2009-2.crl.verisign.com:443
ctldl.windowsupdate.com:443
definitionupdates.microsoft.com:443
download.windowsupdate.com:443
fairfax.warmpath.usgovcloudapi.net:443
gcs.monitoring.core.usgovcloudapi.net:443
flighting.cp.wd.microsoft.com:443
gcwsprodgmdm2billing.queue.core.usgovcloudapi.net:443
gcwsprodgmdm2billing.table.core.usgovcloudapi.net:443
global.metrics.nsatc.net:443
prod.microsoftmetrics.com:443
go.microsoft.com:443
gr-gcws-prod-bd3.usgovcloudapp.net:443
gr-gcws-prod-bn1.usgovcloudapp.net:443
gr-gcws-prod-dd3.usgovcloudapp.net:443
gr-gcws-prod-dm2.usgovcloudapp.net:443
gr-gcws-prod-phx20.usgovcloudapp.net:443
gr-gcws-prod-sn5.usgovcloudapp.net:443
login.live.com:443
login.microsoftonline.us:443
management.core.usgovcloudapi.net:443
management.usgovcloudapi.net:443
maupdateaccountff.blob.core.usgovcloudapi.net:443
mscrl.microsoft.com:443
ocsp.digicert.com:443
ocsp.msocsp.com:443
ocsp.msocsp.com:80
oneocsp.microsoft.com:80
oneocsp.microsoft.com:443
ocsp.verisign.com:443
rteventservice.trafficmanager.net:443
settings-win.data.microsoft.com:443
shavamanifestcdnprod1.azureedge.net:443
shavamanifestcdnprod1.azureedge.net:443
v10.vortex-win.data.microsoft.com:443
wdcp.microsoft.com:443
wdcpalt.microsoft.com:443
www.microsoft.com:443
www.msftconnecttest.com:443
www.thawte.com:443
global-dsms.dsms.core.usgovcloudapi.net:443

HTTP/HTTPS-beroenden med jokertecken

Slutpunkt
*.ctldl.windowsupdate.com:80
*.management.usgovcloudapi.net:80
*.update.microsoft.com:80
*ctldl.windowsupdate.com:443
*.management.usgovcloudapi.net:443
*.update.microsoft.com:443
*.prod.microsoftmetrics.com:443
*.prod.warm.ingest.monitor.core.usgovcloudapi.net:443