Freigeben über


Verwenden privater Endpunkte für App-Service-Apps

Hinweis

Ab dem 1. Juni 2024 können neu erstellte App Service-Apps einen eindeutigen Standardhostnamen mit der Namenskonvention <app-name>-<random-hash>.<region>.azurewebsites.net erstellen. Vorhandene App-Namen bleiben unverändert. Zum Beispiel:

myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Weitere Informationen finden Sie unter Eindeutiger Standardhostname für App Service-Ressourcen.

Wichtig

Private Endpunkte sind für Windows- und Linux-Apps unabhängig von der Containerisierung verfügbar und werden unter den folgenden App Service-Plänen gehostet: Basic, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium (gelegentlich als Elastic Premium-Plan bezeichnet).

Sie können einen privaten Endpunkt für Ihre App Service-Apps verwenden. Der private Endpunkt ermöglicht Clients, die sich in Ihrem privaten Netzwerk befinden, sicher über Azure Private Link auf die App zuzugreifen. Der private Endpunkt verwendet eine IP-Adresse aus dem Adressraum Ihres virtuellen Azure-Netzwerks. Der Netzwerkdatenverkehr zwischen einem Client in Ihrem privaten Netzwerk und der App durchläuft das virtuelle Netzwerk und Private Link im Microsoft-Backbonenetzwerk. Durch diese Konfiguration besteht keine Gefährdung durch das öffentliche Internet.

Die Verwendung eines privaten Endpunkts für Ihre App bietet Ihnen folgende Möglichkeiten:

  • Schützen Ihrer App durch Konfigurieren eines privaten Endpunkts und Deaktivieren des Zugriffs auf öffentliche Netzwerke, um eine Offenlegung zu vermeiden
  • Sicheres Verbinden mit Ihrer App aus lokalen Netzwerken, die eine Verbindung mit dem virtuellen Netzwerk über VPN oder ExpressRoute mit privatem Peering herstellen
  • Vermeiden Sie die Exfiltration von Daten aus Ihrem virtuellen Netzwerk.

Konzeptionelle Übersicht

Ein privater Endpunkt ist eine spezielle Netzwerkschnittstelle (NIC, Netzwerkadapter) für Ihre App Service-App in einem Subnetz Ihres virtuellen Netzwerks. Wenn Sie einen privaten Endpunkt für Ihre App erstellen, stellt dieser eine sichere Verbindung zwischen Clients in Ihrem privaten Netzwerk und Ihrer App bereit. Dem privaten Endpunkt wird eine IP-Adresse aus dem IP-Adressbereich Ihres virtuellen Netzwerks zugewiesen. Für die Verbindung zwischen dem privaten Endpunkt und der App wird eine sichere private Verbindung per Private Link verwendet. Der private Endpunkt wird nur für eingehenden Datenverkehr zu Ihrer App verwendet. Ausgehender Datenverkehr verwendet diesen privaten Endpunkt nicht. Sie können ausgehenden Datenverkehr über die Funktion für die Integration in ein virtuelles Netzwerk in Ihr Netzwerk in ein anderes Subnetz einfügen.

Jeder Slot einer App wird separat konfiguriert. Sie können bis zu 100 private Endpunkte pro Slot einrichten. Ein privater Endpunkt kann nicht von mehreren Slots gemeinsam verwendet werden. Der Unterressourcenname eines Slots lautet sites-<slot-name>.

Das Subnetz, in dem Sie den privaten Endpunkt bereitstellen, kann andere Ressourcen enthalten. Sie benötigen kein dediziertes leeres Subnetz. Sie können den privaten Endpunkt auch in einer anderen Region als Ihre App bereitstellen.

Hinweis

Das Feature für die Integration des virtuellen Netzwerks kann nicht dasselbe Subnetz wie der private Endpunkt verwenden.

Unter dem Aspekt der Sicherheit:

  • Apps können gleichzeitig einen privaten Endpunkt und den öffentlichen Zugriff nutzen. Weitere Informationen finden Sie in dieser Übersicht über Zugriffsbeschränkungen.
  • Wenn Sie private Endpunkte für Ihre App aktivieren, stellen Sie sicher, dass der Zugriff auf öffentliche Netzwerke deaktiviert ist, um die Isolation sicherzustellen.
  • Sie können mehrere private Endpunkte in anderen virtuellen Netzwerken und Subnetzen aktivieren, einschließlich virtueller Netzwerk in anderen Regionen.
  • Die Regeln für Zugriffsbeschränkungen Ihrer App werden für Datenverkehr über den privaten Endpunkt nicht ausgewertet.
  • Sie können das Risiko der Datenexfiltration aus dem virtuellen Netzwerk beseitigen, indem Sie alle Regeln der Netzwerksicherheitsgruppe (Network Security Group, NSG) entfernen, in denen das Zieltag das Internet oder Azure-Dienste sind.

In den HTTP-Webprotokollen Ihrer Web-App finden Sie die Quell-IP-Adresse des Clients. Dieses Feature wird mithilfe des TCP-Proxyprotokolls implementiert, das die Client-IP-Eigenschaft an die App weiterleitet. Weitere Informationen finden Sie unter Abrufen von Verbindungsinformationen mithilfe von TCP-Proxy v2.

Globale Übersicht über private Endpunkte einer App Service-App

DNS

Wenn Sie einen privaten Endpunkt für App Service-Apps verwenden, muss die angeforderte URL dem Namen Ihrer App entsprechen. Standardmäßig ist dies <app-name>.azurewebsites.net. Wenn Sie einen eindeutigen Standardhostnamen verwenden, hat Ihr App-Name das Format <app-name>-<random-hash>.<region>.azurewebsites.net. In den folgenden Beispielen kann mywebapp auch den vollständig regionalisierten eindeutigen Hostnamen darstellen.

Standardmäßig ist der öffentliche Name Ihrer Web-App ohne einen privaten Endpunkt ein kanonischer Name für den Cluster. Der Name wird beispielsweise wie folgt aufgelöst:

Name type Wert
mywebapp.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 192.0.2.13

Wenn Sie einen privaten Endpunkt bereitstellen, wird der DNS-Eintrag so geändert, dass er auf den kanonischen Namen verweist: mywebapp.privatelink.azurewebsites.net. Der Name wird beispielsweise wie folgt aufgelöst:

Name type Wert Anmerkung
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 <: Diese öffentliche IP-Adresse ist nicht der private Endpunkt. Sie erhalten eine Fehlermeldung vom Typ „403“.

Sie müssen einen privaten DNS-Server oder eine private Azure DNS-Zone einrichten. Zu Testzwecken können Sie den Hosteintrag Ihres Testcomputers ändern. Die DNS-Zone, die Sie erstellen müssen, ist: privatelink.azurewebsites.net. Registrieren Sie den Eintrag für Ihre App mit einem A-Datensatz und der IP-Adresse des privaten Endpunkts. Der Name wird beispielsweise wie folgt aufgelöst:

Name type Wert Anmerkung
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net <- Azure erstellt diesen CNAME-Eintrag im öffentlichen Azure-DNS, um die App-Adresse auf die Adresse des privaten Endpunkts umzuleiten.
mywebapp.privatelink.azurewebsites.net Ein 10.10.10.8 <- Sie verwalten diesen Eintrag in Ihrem DNS-System, sodass er auf die IP-Adresse Ihres privaten Endpunkts verweist

Nachdem Sie diese DNS-Konfiguration vorgenommen haben, können Sie Ihre App privat unter dem Standardnamen „mywebapp.azurewebsites.net“ erreichen. Dieser Name muss verwendet werden, da das Standardzertifikat für *.azurewebsites.net ausgestellt wurde.

Wenn Sie einen benutzerdefinierten DNS-Namen verwenden müssen, fügen Sie den benutzerdefinierten Namen in Ihrer App hinzu und validieren ihn wie jeden benutzerdefinierten Namen mithilfe der öffentlichen DNS-Auflösung. Weitere Informationen finden Sie unter Benutzerdefinierte DNS-Validierung.

Für die Kudu-Konsole oder die Kudu-REST-API (z. B. für die Bereitstellung mit selbstgehosteten Agents von Azure DevOps Services) müssen Sie zwei Einträge erstellen, die auf die private Endpunkt-IP-Adresse in Ihrer privaten Azure DNS-Zone oder Ihren benutzerdefinierten DNS-Server verweisen. Der erste gilt für Ihre App und der zweite für den SCM Ihrer App.

Name type Wert
mywebapp.privatelink.azurewebsites.net Ein PrivateEndpointIP
mywebapp.scm.privatelink.azurewebsites.net Ein PrivateEndpointIP

App Service-Umgebung v3: besondere Überlegungen

Um den privaten Endpunkt für Apps zu aktivieren, die in einem IsolatedV2-Plan (App Service-Umgebung v3) gehostet werden, aktivieren Sie die Unterstützung privater Endpunkte auf der Ebene der App Service-Umgebung. Sie können das Feature über das Azure-Portal im Konfigurationsbereich der App Service-Umgebung oder über die folgende CLI aktivieren:

az appservice ase update --name myasename --allow-new-private-endpoint-connections true

Spezifische Anforderungen

Wenn sich das virtuelle Netzwerk in einem anderen Abonnement als die App befindet, stellen Sie sicher, dass das Abonnement mit dem virtuellen Netzwerk für den Ressourcenanbieter Microsoft.Web registriert ist. Weitere Informationen zum expliziten Registrieren des Anbieters finden Sie unter Registrieren von Ressourcenanbietern. Sie registrieren den Anbieter automatisch, wenn Sie die erste Web-App in einem Abonnement erstellen.

Preise

Ausführliche Preisinformationen finden Sie unter Azure Private Link – Preise.

Einschränkungen

  • Wenn Sie Azure Functions im Elastic Premium-Plan mit einem privaten Endpunkt verwenden, benötigen Sie direkten Netzwerkzugriff, um die Funktion im Azure-Portal auszuführen. Andernfalls wird ein HTTP 403-Fehler angezeigt. Ihr Browser muss den privaten Endpunkt erreichen können, um die Funktion aus dem Azure-Portal ausführen zu können.
  • Sie können bis zu 100 private Endpunkte mit einer einzigen App verbinden.
  • Remotedebugfunktionen sind über den privaten Endpunkt nicht verfügbar. Es wird empfohlen, den Code auf einem Slot bereitzustellen und dort remote zu debuggen.
  • FTP-Zugriff wird über die eingehende öffentliche IP-Adresse gewährt. Private Endpunkte unterstützen keinen FTP-Zugriff auf die App.
  • IP-basierte TLS wird bei privaten Endpunkten nicht unterstützt.
  • Apps, die Sie mit privaten Endpunkten konfigurieren, können keinen öffentlichen Datenverkehr von Subnetzen mit aktiviertem Microsoft.Web-Dienstendpunkt empfangen und keine auf Dienstendpunkten basierenden Zugriffseinschränkungsregeln verwenden.
  • Die Benennung privater Endpunkte muss den Regeln entsprechen, die für Ressourcen des Typs Microsoft.Network/privateEndpoints definiert sind. Weitere Informationen finden Sie unter Benennungsregeln und -einschränkungen.

Aktuelle Informationen zu Einschränkungen finden Sie unter Einschränkungen.