Verwenden privater Endpunkte für App Service-Apps

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 elastischer Premium-Plan bezeichnet).

Sie können private Endpunkte für Ihre App Service-Apps verwenden, um Clients in Ihrem privaten Netzwerk den sicheren Zugriff auf die App über Azure Private Link zu ermöglichen. 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 wird über das virtuelle Netzwerk und Private Link im Microsoft-Backbone-Netzwerk geleitet, sodass keine Offenlegung im öffentlichen Internet erfolgt.

Die Verwendung privater Endpunkte 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 einbinden, kann über andere Ressourcen verfügen. Sie benötigen also kein dediziertes leeres Subnetz. Sie können den privaten Endpunkt auch in einer anderen Region als Ihre App bereitstellen.

Hinweis

Die Funktion für die Integration in ein virtuelles Netzwerk kann nicht dasselbe Subnetz wie der private Endpunkt verwenden. Dies ist eine Einschränkung dieser Funktion.

Unter dem Aspekt der Sicherheit:

  • App können gleichzeitig einen privaten Endpunkt und öffentlicher Zugriff nutzen. Weitere Informationen finden Sie unter Ü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 NSG-Regeln 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.

Privater Endpunkt einer App Service-App – globale Übersicht

DNS

Wenn Sie einen privaten Endpunkt für App Service-Apps verwenden, muss die angeforderte URL dem Namen Ihrer App entsprechen. Der Standardname lautet mywebappname.azurewebsites.net.

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 Ein 40.122.110.154

Wenn Sie einen privaten Endpunkt bereitstellen, wird der DNS-Eintrag so aktualisiert, dass er auf den kanonischen Namen mywebapp.privatelink.azurewebsites.net verweist. 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 Ein 40.122.110.154 <: 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 mywebappname.azurewebsites.net erreichen. Dieser Name muss verwendet werden, da das Standardzertifikat für „*.azurewebsites.net“ ausgestellt wird.

Wenn Sie einen benutzerdefinierten DNS-Namen verwenden müssen, müssen Sie den benutzerdefinierten Namen in Ihrer App hinzufügen und ihn wie jeden benutzerdefinierten Namen mithilfe der öffentlichen DNS-Auflösung validieren. 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) 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, 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, müssen Sie die Unterstützung privater Endpunkte auf der Ebene der App Service-Umgebung aktivieren. 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, müssen Sie sicherstellen, dass das Abonnement beim virtuellen Netzwerk für den Ressourcenanbieter Microsoft.Web registriert ist. Sie können den Anbieter explizit registrieren, wie in dieser Dokumentation beschrieben. Der Anbieter wird jedoch auch automatisch registriert, 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 in einem Plan vom Typ „Elastisch Premium“ mit einem privaten Endpunkt verwenden, um die Funktion im Azure-Portal auszuführen, benötigen Sie direkten Netzwerkzugriff. Andernfalls tritt ein HTTP-Fehler vom Typ „403“ auf. Anders ausgedrückt, muss Ihr Browser 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. Daher wird empfohlen, den Code für ein Einschubfach bereitzustellen und dort ein Remotedebugging durchzuführen.
  • FTP-Zugriff wird über die eingehende öffentliche IP-Adresse gewährt. Der private Endpunkt unterstützt keinen FTP-Zugriff auf die App.
  • IP-basiertes SSL 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 können keine auf Dienstendpunkten basierenden Zugriffseinschränkungsregeln verwendet.
  • Die Benennung privater Endpunkte muss den Regeln entsprechen, die für Ressourcen des Typs Microsoft.Network/privateEndpoints definiert sind. Benennungsregeln finden Sie hier.

Wir verbessern regelmäßig die Funktionen von Azure Private Link und von privaten Endpunkten. Aktuelle Informationen zu Einschränkungen finden Sie in diesem Artikel.

Nächste Schritte