Säkerhet i Azure App Service
Den här artikeln visar hur Azure App Service hjälper dig att skydda din webbapp, mobilappens serverdel, API-app och funktionsapp. Den visar också hur du kan skydda din app ytterligare med de inbyggda App Service-funktionerna.
Plattformskomponenterna i App Service, däribland virtuella Azure-datorer, lagring, nätverksanslutningar, webbramverk, hanterings- och integreringsfunktioner, är aktivt skyddade och förstärkta. App Service genomgår kontinuerligt kraftfulla efterlevnadskontroller för att se till att:
- Dina appresurser skyddas från de andra kundernas Azure-resurser.
- VM-instanser och runtime-programvara uppdateras regelbundet för att åtgärda nyligen identifierade sårbarheter.
- Kommunikation av hemligheter (till exempel niska veze) mellan din app och andra Azure-resurser (till exempel SQL Database) finns kvar i Azure och går inte över några nätverksgränser. Hemligheter krypteras alltid när de lagras.
- All kommunikation via App Service-anslutningsfunktionerna, till exempel hybridanslutning, krypteras.
- Anslutningar med fjärrhanteringsverktyg som Azure PowerShell, Azure CLI, Azure SDK:er, REST-API:er krypteras alla.
- 24-timmars hothantering skyddar infrastrukturen och plattformen mot skadlig kod, distribuerad denial of service (DDoS), man-in-the-middle (MITM) och andra hot.
Mer information om infrastruktur- och plattformssäkerhet i Azure finns i Azure Trust Center.
I följande avsnitt visas hur du ytterligare skyddar din App Service-app mot hot.
HTTPS och certifikat
Med App Service kan du skydda dina appar med HTTPS. När appen har skapats är dess standarddomännamn (<app_name.azurewebsites.net>) redan tillgängligt med HTTPS. Om du konfigurerar en anpassad domän för din app bör du även skydda den med ett TLS/SSL-certifikat så att klientwebbläsare kan göra skyddade HTTPS-anslutningar till din anpassade domän. Det finns flera typer av certifikat som stöds av App Service:
- Kostnadsfri apptjänsthanterat certifikat
- App Service-certifikat
- Certifikat från tredje part
- Certifikat som importerats från Azure Key Vault
Mer information finns i Lägga till ett TLS/SSL-certifikat i Azure App Service.
Osäkra protokoll (HTTP, TLS 1.0, FTP)
För att skydda din app mot alla okrypterade (HTTP)-anslutningar tillhandahåller App Service konfiguration med ett klick för att framtvinga HTTPS. Oskyddade begäranden avvisas innan de ens når programkoden. Mer information finns i Framtvinga HTTPS.
TLS 1.0 anses inte längre vara säkert enligt branschstandarder, till exempel PCI DSS. Med App Service kan du inaktivera inaktuella protokoll genom att tillämpa TLS 1.1/1.2.
App Service stöder både FTP och FTPS för att distribuera dina filer. FTPS bör dock användas i stället för FTP, om det är möjligt. När ett eller båda av dessa protokoll inte används bör du inaktivera dem.
Statiska IP-begränsningar
Som standard accepterar App Service-appen begäranden från alla IP-adresser från Internet, men du kan begränsa åtkomsten till en liten delmängd AV IP-adresser. Med App Service i Windows kan du definiera en lista över IP-adresser som har åtkomst till din app. Listan över tillåtna kan innehålla enskilda IP-adresser eller ett intervall med IP-adresser som definierats av en nätmask. Mer information finns i Statiska IP-begränsningar för Azure App Service.
För App Service i Windows kan du också begränsa IP-adresser dynamiskt genom att konfigurera web.config. Mer information finns i Dynamisk IP-säkerhet <dynamicIpSecurity>.
Klientautentisering och auktorisering
Azure App Service tillhandahåller nyckelfärdig autentisering och auktorisering av användare eller klientappar. När den är aktiverad kan den logga in användare och klientappar med lite eller ingen programkod. Du kan implementera din egen autentiserings- och auktoriseringslösning eller låta App Service hantera den åt dig i stället. Modulen för autentisering och auktorisering hanterar webbbegäranden innan de skickas till din programkod och nekar obehöriga begäranden innan de når din kod.
App Service-autentisering och auktorisering stöder flera autentiseringsprovidrar, inklusive Microsoft Entra-ID, Microsoft-konton, Facebook, Google och X. Mer information finns i Autentisering och auktorisering i Azure App Service.
Tjänst-till-tjänst-autentisering
När du autentiserar mot en serverdelstjänst tillhandahåller App Service två olika mekanismer beroende på dina behov:
- Tjänstidentitet – Logga in på fjärrresursen med hjälp av själva appens identitet. Med App Service kan du enkelt skapa en hanterad identitet som du kan använda för att autentisera med andra tjänster, till exempel Azure SQL Database eller Azure Key Vault. En självstudiekurs från slutpunkt till slutpunkt om den här metoden finns i Skydda Azure SQL Database-anslutning från App Service med hjälp av en hanterad identitet.
- Å OBO :s vägnar – Ge delegerad åtkomst till fjärrresurser för användarens räkning. Med Microsoft Entra-ID som autentiseringsprovider kan din App Service-app utföra delegerad inloggning till en fjärrtjänst, till exempel Microsoft Graph eller en fjärransluten API-app i App Service. En självstudie om den här metoden finns i Autentisera och auktorisera användare från slutpunkt till slutpunkt i Azure App Service.
Anslutning till fjärrresurser
Det finns tre typer av fjärrresurser som appen kan behöva komma åt:
I vart och ett av dessa fall tillhandahåller App Service ett sätt för dig att upprätta säkra anslutningar, men du bör fortfarande följa rekommenderade säkerhetsmetoder. Använd till exempel alltid krypterade anslutningar även om serverdelsresursen tillåter okrypterade anslutningar. Se dessutom till att serverdelens Azure-tjänst tillåter den minsta uppsättningen IP-adresser. Du hittar utgående IP-adresser för din app på inkommande och utgående IP-adresser i Azure App Service.
Azure-resurser
När din app ansluter till Azure-resurser, till exempel SQL Database och Azure Storage, stannar anslutningen i Azure och går inte över några nätverksgränser. Anslutningen går dock via det delade nätverket i Azure, så se alltid till att anslutningen är krypterad.
Om din app finns i en App Service-miljö bör du ansluta till Azure-tjänster som stöds med hjälp av tjänstslutpunkter för virtuellt nätverk.
Resurser i ett virtuellt Azure-nätverk
Din app kan komma åt resurser i ett virtuellt Azure-nätverk via integrering av virtuella nätverk. Integreringen upprättas med ett virtuellt nätverk med hjälp av ett punkt-till-plats-VPN. Appen kan sedan komma åt resurserna i det virtuella nätverket med sina privata IP-adresser. Punkt-till-plats-anslutningen passerar dock fortfarande de delade nätverken i Azure.
Om du vill isolera resursanslutningen helt från de delade nätverken i Azure skapar du din app i en App Service-miljö. Eftersom en App Service-miljö alltid distribueras till ett dedikerat virtuellt nätverk är anslutningen mellan appen och resurserna i det virtuella nätverket helt isolerad. Andra aspekter av nätverkssäkerhet i en App Service-miljö finns i Nätverksisolering.
Lokala resurser
Du kan på ett säkert sätt komma åt lokala resurser, till exempel databaser, på tre sätt:
- Hybridanslutningar – Upprättar en punkt-till-punkt-anslutning till fjärrresursen via en TCP-tunnel. TCP-tunneln upprättas med hjälp av TLS 1.2 med sas-nycklar (signatur för delad åtkomst).
- Integrering av virtuellt nätverk med plats-till-plats-VPN – Enligt beskrivningen i Resurser i ett virtuellt Azure-nätverk, men det virtuella nätverket kan anslutas till ditt lokala nätverk via ett plats-till-plats-VPN. I den här nätverkstopologin kan din app ansluta till lokala resurser som andra resurser i det virtuella nätverket.
- App Service-miljö med plats-till-plats-VPN – Enligt beskrivningen i Resurser i ett virtuellt Azure-nätverk, men det virtuella nätverket kan anslutas till ditt lokala nätverk via ett plats-till-plats-VPN. I den här nätverkstopologin kan din app ansluta till lokala resurser som andra resurser i det virtuella nätverket.
Programhemligheter
Lagra inte programhemligheter, till exempel databasautentiseringsuppgifter, API-token och privata nycklar i koden eller konfigurationsfilerna. Den allmänt accepterade metoden är att komma åt dem som miljövariabler med hjälp av standardmönstret på valfritt språk. I App Service är sättet att definiera miljövariabler via appinställningar (och, särskilt för .NET-program, niska veze). Appinställningar och niska veze lagras krypterade i Azure och de dekrypteras bara innan de matas in i appens processminne när appen startar. Krypteringsnycklarna roteras regelbundet.
Du kan också integrera din App Service-app med Azure Key Vault för avancerad hantering av hemligheter. Genom att komma åt Key Vault med en hanterad identitet kan din App Service-app på ett säkert sätt komma åt de hemligheter du behöver.
Nätverksisolering
Förutom prisnivån Isolerad kör alla nivåer dina appar på den delade nätverksinfrastrukturen i App Service. Till exempel delas de offentliga IP-adresserna och klientdelens lastbalanserare med andra klienter. Den isolerade nivån ger dig fullständig nätverksisolering genom att köra dina appar i en dedikerad App Service-miljö. En App Service-miljö körs i din egen instans av Azure Virtual Network. Med den kan du:
- Hantera dina appar via en dedikerad offentlig slutpunkt med dedikerade klientdelar.
- Hantera interna program med hjälp av en intern lastbalanserare (ILB), som endast tillåter åtkomst inifrån ditt virtuella Azure-nätverk. ILB har en IP-adress från ditt privata undernät, vilket ger total isolering av dina appar från Internet.
- Använd en ILB bakom en brandvägg för webbprogram (WAF). WAF erbjuder skydd på företagsnivå för dina offentliga program, till exempel DDoS-skydd, URI-filtrering och SQL-inmatningsskydd.
DDoS-skydd
För webbarbetsbelastningar rekommenderar vi starkt att du använder Azure DDoS-skydd och en brandvägg för webbprogram för att skydda mot nya DDoS-attacker. Ett annat alternativ är att distribuera Azure Front Door tillsammans med en brandvägg för webbprogram. Azure Front Door erbjuder skydd på plattformsnivå mot DDoS-attacker på nätverksnivå.
Mer information finns i Introduktion till Azure App Service-miljöer.