Sicherheit in Azure App Service
In diesem Artikel erfahren Sie, wie Azure App Service zum Schutz Ihrer Web-App, Ihres Mobile App-Back-Ends, Ihrer API-App sowie Ihrer Funktions-App beiträgt. Außerdem erfahren Sie, wie Sie Ihre App mithilfe der integrierten App Service-Features noch besser schützen können.
Die Plattformkomponenten von App Service werden aktiv geschützt und gehärtet. Zu diesen Komponenten zählen unter anderem virtuelle Azure-Computer, Speicher, Netzwerkverbindungen und Webframeworks sowie Verwaltungs- und Integrationsfeatures. Die Konformität von App Service wird kontinuierlich und streng geprüft, um Folgendes zu gewährleisten:
- Ihre App-Ressourcen sind zu ihrem Schutz von den Azure-Ressourcen anderer Kunden isoliert.
- VM-Instanzen und Laufzeitsoftware werden regelmäßig aktualisiert, um auf neu entdeckte Sicherheitsrisiken zu reagieren.
- Die Weitergabe von Geheimnissen (etwa Verbindungszeichenfolgen) zwischen Ihrer App und anderen Azure-Ressourcen (etwa SQL-Datenbank) erfolgt innerhalb von Azure und überschreitet keine Netzwerkgrenzen. Gespeicherte Geheimnisse werden immer verschlüsselt.
- Die gesamte Kommunikation über die App Service-Verbindungsfeatures (beispielsweise Hybridverbindung) wird verschlüsselt.
- Verbindungen mit Remoteverwaltungstools wie Azure PowerShell, Azure CLI, Azure SDKs und REST-APIs werden jeweils verschlüsselt.
- Das Bedrohungsmanagement schützt die Infrastruktur und die Plattform rund um die Uhr vor Schadsoftware sowie vor DDoS-Angriffen (Distributed Denial of Service), MITM-Angriffen (Man in the Middle) und anderen Bedrohungen.
Weitere Informationen zur Infrastruktur und Plattform-Sicherheit in Azure finden Sie unter Azure Trust Center.
In den folgenden Abschnitten wird gezeigt, wie Sie Ihre App Service-App noch besser vor Bedrohungen schützen.
HTTPS und Zertifikate
App Service ermöglicht den Schutz von Apps mit HTTPS. Der Standarddomänenname (<App-Name>.azurewebsites.net) Ihrer App ist nach der App-Erstellung bereits über HTTPS zugänglich. Wenn Sie eine benutzerdefinierte Domäne für Ihre App konfigurieren, sollten Sie sie auch mit einem TLS-/SSL-Zertifikat schützen, damit Clientbrowser sichere HTTPS-Verbindungen mit Ihrer benutzerdefinierten Domäne herstellen können. Es gibt mehrere Arten von Zertifikaten, die von App Service unterstützt werden:
- Kostenloses, von App Service verwaltetes Zertifikat
- App Service-Zertifikat
- Zertifikat von Drittanbietern
- Aus Azure Key Vault importiertes Zertifikat
Weitere Informationen finden Sie unter Hinzufügen eines TLS-/SSL-Zertifikats in Azure App Service.
Unsichere Protokolle (HTTP, TLS 1.0, FTP)
Mit App Service können Sie mit nur einem Klick HTTPS erzwingen, um Ihre App vor allen unverschlüsselten Verbindungen (HTTP) zu schützen. Unsichere Anforderungen werden abgelehnt, bevor sie Ihren Anwendungscode erreichen. Weitere Informationen finden Sie unter Erzwingen von HTTPS.
TLS 1.0 ist laut Branchenstandards wie PCI-DSS nicht mehr sicher. App Service ermöglicht die Deaktivierung veralteter Protokolle durch Erzwingung von TLS 1.1/1.2.
Für die Dateibereitstellung unterstützt App Service sowohl FTP als auch FTPS. Nach Möglichkeit sollte jedoch immer FTPS anstelle von FTP verwendet werden. Wenn Sie eines dieser Protokolle (oder beide) nicht verwenden, sollten Sie die nicht verwendeten Protokolle deaktivieren.
Einschränkungen für statische IP-Adressen
Standardmäßig akzeptiert Ihre App Service-App Anforderungen von allen IP-Adressen aus dem Internet, der Zugriff kann aber auf eine kleine Teilmenge von IP-Adressen beschränkt werden. In App Service unter Windows können Sie eine Liste mit IP-Adressen definieren, die auf Ihre App zugreifen dürfen. Die Liste mit den zulässigen IP-Adressen kann einzelne IP-Adressen oder einen durch eine Subnetzmaske definierten IP-Adressbereich enthalten. Weitere Informationen finden Sie unter Statische Azure App Service-IP-Einschränkungen.
Für App Service unter Windows können Sie IP-Adressen auch dynamisch einschränken, indem Sie web.config konfigurieren. Weitere Informationen finden Sie unter Dynamische IP-Sicherheit <dynamicIpSecurity>.
Clientauthentifizierung und -autorisierung
Azure App Service bietet eine vorgefertigte Authentifizierung und Autorisierung von Benutzern und Client-Apps. Im aktivierten Zustand kann dieses Feature Benutzer und Client-Apps mit wenig oder ganz ohne Anwendungscode anmelden. Sie können Ihre eigene Authentifizierungs- und Autorisierungslösung implementieren oder App Service mit der Authentifizierung und Autorisierung betrauen. Das Authentifizierungs- und Autorisierungsmodul verarbeitet Webanforderungen vor der Weitergabe an Ihren Anwendungscode und lehnt nicht autorisierte Anforderungen ab, bevor sie Ihren Code erreichen.
App Service-Authentifizierung und Autorisierung unterstützen mehrere Authentifizierungsanbieter, einschließlich Microsoft Entra-ID, Microsoft-Konten, Facebook, Google und X. Weitere Informationen finden Sie unter Authentifizierung und Autorisierung in Azure App Service.
Dienst-zu-Dienst-Authentifizierung
Für die Authentifizierung bei einem Back-End-Dienst bietet App Service zwei unterschiedliche bedarfsspezifische Mechanismen:
- Dienstidentität: Melden Sie sich unter Verwendung der Identität der App bei der Remoteressource an. Mit App Service können Sie ganz einfach eine verwaltete Identität erstellen und für die Authentifizierung bei anderen Diensten (beispielsweise Azure SQL-Datenbank oder Azure Key Vault) verwenden. Ein umfassendes Tutorial für diesen Ansatz finden Sie unter Tutorial: Schützen der SQL-Datenbank-Verbindung mittels verwalteter Identität.
- Im Namen von (on behalf of, OBO): Greifen Sie unter Verwendung von delegiertem Zugriff im Namen des Benutzers auf Remoteressourcen zu. Mit Microsoft Entra ID als Authentifizierungsanbieter kann Ihre App Service-App eine delegierte Anmeldung bei einem Remotedienst durchführen – etwa bei Microsoft Graph oder bei einer Remote-API-App in App Service. Ein umfassendes Tutorial für diesen Ansatz finden Sie unter Tutorial: Umfassendes Authentifizieren und Autorisieren von Benutzern in Azure App Service.
Konnektivität mit Remoteressourcen
Es gibt drei Arten von Remoteressourcen, auf die Ihre App ggf. Zugriff benötigt:
In jedem dieser Fälle bietet App Service eine Möglichkeit zur Herstellung sicherer Verbindungen. Nichtsdestotrotz sollten Sie sich an die bewährten Methoden für die Sicherheit halten. Verwenden Sie also beispielsweise immer verschlüsselte Verbindungen, auch wenn die Back-End-Ressource nicht verschlüsselte Verbindungen zulässt. Achten Sie zudem darauf, dass Ihr Azure-Back-End-Dienst den Mindestsatz an IP-Adressen zulässt. Die ausgehenden IP-Adressen für Ihre App finden Sie unter Ein- und ausgehende IP-Adressen in Azure App Service.
Azure-Ressourcen
Wenn Ihre App eine Verbindung mit Azure-Ressourcen (etwa mit SQL-Datenbank und Azure Storage) herstellt, bleibt die Verbindung innerhalb von Azure und überschreitet keine Netzwerkgrenzen. Die Verbindung durchläuft jedoch die gemeinsam genutzten Netzwerke in Azure. Stellen Sie daher sicher, dass Ihre Verbindung verschlüsselt ist.
Wenn Ihre App in einer App Service-Umgebung gehostet wird, sollten Sie über Virtual Network-Dienstendpunkte eine Verbindung mit unterstützten Azure-Diensten herstellen.
Ressourcen in einer Azure Virtual Network-Instanz
Ihre App kann mittels Virtual Network-Integration auf Ressourcen in einer Azure Virtual Network-Instanz zugreifen. Die Virtual Network-Integration wird über ein Point-to-Site-VPN implementiert. Die App kann daraufhin unter Verwendung der privaten IP-Adressen auf die Ressourcen in der Virtual Network-Instanz zugreifen. Die Point-to-Site-Verbindung durchläuft allerdings die gemeinsam genutzten Netzwerke in Azure.
Wenn Sie die Ressourcenkonnektivität vollständig von den gemeinsam genutzten Netzwerken in Azure isolieren möchten, müssen Sie Ihre App in einer App Service-Umgebung erstellen. Da eine App Service-Umgebung immer in einer dedizierten Virtual Network-Instanz bereitgestellt wird, ist die Konnektivität zwischen Ihrer App und den Ressourcen innerhalb der Virtual Network-Instanz vollständig isoliert. Informationen zu anderen Aspekten der Netzwerksicherheit in einer App Service-Umgebung finden Sie unter Netzwerkisolation.
Lokale Ressourcen
Für den sicheren Zugriff auf lokale Ressourcen (beispielsweise Datenbanken) stehen drei Optionen zur Verfügung:
- Hybridverbindungen: Bei dieser Option wird über einen TCP-Tunnel eine Point-to-Point-Verbindung mit Ihrer Remoteressource hergestellt. Für den TCP-Tunnel wird TLS 1.2 mit SAS-Schlüsseln (Shared Access Signature) verwendet.
- Virtual Network-Integration mit Site-to-Site-VPN: Diese Option entspricht der Beschreibung unter Ressourcen in einer Azure Virtual Network-Instanz, die Virtual Network-Instanz kann allerdings über ein Site-to-Site-VPN mit Ihrem lokalen Netzwerk verbunden werden. In dieser Netzwerktopologie kann Ihre App auf die gleiche Weise eine Verbindung mit lokalen Ressourcen herstellen wie mit anderen Ressourcen in der Virtual Network-Instanz.
- App Service-Umgebung mit Site-to-Site-VPN: Diese Option entspricht der Beschreibung unter Ressourcen in einer Azure Virtual Network-Instanz, die Virtual Network-Instanz kann allerdings über ein Site-to-Site-VPN mit Ihrem lokalen Netzwerk verbunden werden. In dieser Netzwerktopologie kann Ihre App auf die gleiche Weise eine Verbindung mit lokalen Ressourcen herstellen wie mit anderen Ressourcen in der Virtual Network-Instanz.
Anwendungsgeheimnisse
Speichern Sie Anwendungsgeheimnisse wie Datenbank-Anmeldeinformationen, API-Token und private Schlüssel nicht in Ihrem Code oder in Konfigurationsdateien. Für den Zugriff auf diese Geheimnisse hat es sich bewährt, Umgebungsvariablen mit dem Standardmuster in der Sprache Ihrer Wahl zu verwenden. In App Service werden Umgebungsvariablen über App-Einstellungen (und speziell für .NET-Anwendungen über Verbindungszeichenfolgen) definiert. App-Einstellungen und Verbindungszeichenfolgen werden in Azure verschlüsselt gespeichert und erst entschlüsselt, wenn sie beim Start der App in ihren Prozessspeicher eingefügt werden. Die Verschlüsselungsschlüssel werden regelmäßig rotiert.
Wenn Sie eine erweiterte Geheimnisverwaltung benötigen, können Sie Ihre App Service-App auch in Azure Key Vault integrieren. Durch den Zugriff auf Key Vault mit einer verwalteten Identität kann Ihre App Service-App sicher auf die benötigten Geheimnisse zugreifen.
Netzwerkisolation
Mit Ausnahme des Tarifs Isoliert wird Ihre App bei allen Tarifen in der gemeinsam genutzten Netzwerkinfrastruktur in App Service ausgeführt. So werden beispielsweise die öffentlichen IP-Adressen und Front-End-Lastenausgleichsmodule gemeinsam mit anderen Mandanten genutzt. Im Tarif Isoliert werden Ihre Apps in einer dedizierten App Service-Umgebung ausgeführt, wodurch eine vollständige Netzwerkisolation erreicht wird. Eine App Service-Umgebung wird in Ihrer eigenen Instanz von Azure Virtual Network betrieben. Dadurch haben Sie folgende Möglichkeiten:
- Sie können Ihre Apps über einen dedizierten öffentlichen Endpunkt mit dedizierten Front-Ends bereitstellen.
- Sie können interne Anwendungen unter Verwendung eines internen Lastenausgleichsmoduls (internal load balancer, ILB) bereitstellen, wodurch der Zugriff nur innerhalb Ihrer Azure Virtual Network-Instanz möglich ist. Das interne Lastenausgleichsmodul besitzt eine IP-Adresse aus Ihrem privaten Subnetz, sodass Ihre Apps vollständig vom Internet isoliert sind.
- Sie können ein internes Lastenausgleichsmodul hinter einer Web Application Firewall (WAF) verwenden. Die WAF bietet professionellen Schutz für Ihre öffentlichen Anwendungen – beispielsweise DDoS-Schutz, URI-Filterung und Verhinderung der Einschleusung von SQL-Befehlen.
DDoS-Schutz
Für Web-Workloads wird dringend empfohlen, den Azure DDoS-Schutz und eine Web Application Firewall zum Schutz vor neu aufkommenden DDoS-Angriffen zu verwenden. Eine weitere Option besteht darin, Azure Front Door zusammen mit einer Webanwendungsfirewall bereitzustellen. Azure Front Door bietet auf Plattformebene den Schutz vor DDoS-Angriffen auf Netzwerkebene.
Weitere Informationen finden Sie in der Einführung in die App Service-Umgebungen.