Ansluta på ett säkert sätt till serverdelsresurser från en App Service-miljö

Viktigt!

Den här artikeln handlar om App Service-miljön v1. App Service-miljön v1 går i pension 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 v1 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 v1-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.

Eftersom en App Service-miljön alltid skapas i ett virtuellt Azure Resource Manager-nätverk eller i ett klassiskt virtuellt distributionsmodellnätverk kan utgående anslutningar från en App Service-miljön till andra serverdelsresurser flöda uteslutande över det virtuella nätverket. Från och med juni 2016 kan ASE:er också distribueras till virtuella nätverk som använder offentliga adressintervall eller RFC1918 adressutrymmen (privata adresser).

Det kan till exempel finnas en SQL Server som körs på ett kluster med virtuella datorer med port 1433 låst. Slutpunkten kan vara ACLd för att endast tillåta åtkomst från andra resurser i samma virtuella nätverk.

Som ett annat exempel kan känsliga slutpunkter köras lokalt och anslutas till Azure via antingen plats-till-plats- eller Azure ExpressRoute-anslutningar. Därför kan endast resurser i virtuella nätverk som är anslutna till tunnlarna plats-till-plats eller ExpressRoute komma åt lokala slutpunkter.

För alla dessa scenarier kan appar som körs på en App Service-miljön säkert ansluta till de olika servrarna och resurserna. Om utgående trafik från appar körs i ett App Service-miljön till privata slutpunkter i samma virtuella nätverk eller anslutet till samma virtuella nätverk flödar den bara över det virtuella nätverket. Utgående trafik till privata slutpunkter flödar inte över det offentliga Internet.

Ett problem gäller utgående trafik från en App Service-miljön till slutpunkter i ett virtuellt nätverk. App Service-miljön kan inte nå slutpunkter för virtuella datorer som finns i samma undernät som App Service-miljön. Den här begränsningen bör normalt inte vara ett problem om App Service-miljön distribueras till ett undernät som är reserverat för användning exklusivt av App Service-miljön.

Kommentar

Även om den här artikeln handlar om webbappar, så gäller den även för API-appar och mobilappar.

Krav för utgående anslutning och DNS

För att en App Service-miljön ska fungera korrekt krävs utgående åtkomst till olika slutpunkter. En fullständig lista över de externa slutpunkter som används av en ASE finns i avsnittet "Nödvändigt nätverk Anslut ivity" i artikeln Nätverkskonfiguration för ExpressRoute.

App Service-miljön kräver en giltig DNS-infrastruktur som konfigurerats för det virtuella nätverket. Om DNS-konfigurationen ändras när en App Service-miljön har skapats kan utvecklare tvinga en App Service-miljön att hämta den nya DNS-konfigurationen. Längst upp på bladet App Service-miljön hantering i portalen väljer du ikonen Starta om för att utlösa en omstart av den rullande miljön, vilket gör att miljön hämtar den nya DNS-konfigurationen.

Vi rekommenderar också att alla anpassade DNS-servrar på det virtuella nätverket konfigureras i förväg innan du skapar en App Service-miljön. Om dns-konfigurationen för ett virtuellt nätverk ändras när en App Service-miljön skapas kommer det att leda till att App Service-miljön skapandeprocessen misslyckas. Om det finns en anpassad DNS-server som inte kan nås eller inte är tillgänglig i andra änden av en VPN-gateway misslyckas även processen för att skapa App Service-miljön.

Anslut till en SQL Server

En vanlig SQL Server-konfiguration har en slutpunkt som lyssnar på port 1433:

SQL Server Endpoint

Det finns två metoder för att begränsa trafik till den här slutpunkten:

Begränsa åtkomst med en nätverks-ACL

Port 1433 kan skyddas med hjälp av en lista över nätverksåtkomstkontroll. Exemplet nedan lägger till tilldelningsbehörigheter som klientadresserna kommer från i ett virtuellt nätverk och blockerar åtkomst till alla andra klienter.

Network Access Control List Example

Alla program som körs i App Service-miljön, i samma virtuella nätverk som SQL Server, kan ansluta till SQL Server-instansen. Använd det virtuella nätverkets interna IP-adress för den virtuella SQL Server-datorn.

Exemplet anslutningssträng nedan refererar till SQL Server med dess privata IP-adress.

Server=tcp:10.0.1.6;Database=MyDatabase;User ID=MyUser;Password=PasswordHere;provider=System.Data.SqlClient

Även om den virtuella datorn också har en offentlig slutpunkt avvisas anslutningsförsök att använda den offentliga IP-adressen på grund av nätverks-ACL:n.

Begränsa åtkomst med en nätverkssäkerhetsgrupp

En alternativ metod för att skydda åtkomst är med en nätverkssäkerhetsgrupp. Nätverkssäkerhetsgrupper kan tillämpas på enskilda virtuella datorer eller på ett undernät som innehåller virtuella datorer.

Först måste du skapa en nätverkssäkerhetsgrupp:

New-AzureNetworkSecurityGroup -Name "testNSGexample" -Location "South Central US" -Label "Example network security group for an app service environment"

Att begränsa åtkomsten till endast intern VNet-trafik är enkelt med en nätverkssäkerhetsgrupp. Standardreglerna i en nätverkssäkerhetsgrupp tillåter endast åtkomst från andra nätverksklienter i samma virtuella nätverk.

Därför är det enkelt att låsa åtkomsten till SQL Server. Använd bara en nätverkssäkerhetsgrupp med dess standardregler på antingen de virtuella datorer som kör SQL Server eller det undernät som innehåller de virtuella datorerna.

Exemplet nedan tillämpar en nätverkssäkerhetsgrupp på det innehållande undernätet:

Get-AzureNetworkSecurityGroup -Name "testNSGExample" | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName 'testVNet' -SubnetName 'Subnet-1'

Slutresultatet är en uppsättning säkerhetsregler som blockerar extern åtkomst, samtidigt som VNet får intern åtkomst:

Default Network Security Rules

Komma igång

Information om hur du kommer igång med App Service-miljön finns i Introduktion till App Service-miljön

Mer information om hur du styr inkommande trafik till App Service-miljön finns i Kontrollera inkommande trafik till en App Service-miljön

Kommentar

Om du vill komma igång med Azure App Service innan du registrerar dig för ett Azure-konto kan du gå till Prova App Service. Där kan du direkt skapa en tillfällig startwebbapp i App Service. Inga kreditkort krävs. Inga åtaganden.