Freigeben über


Mandantenübergreifender sicherer Zugriff auf Azure-Web-Apps und Funktions-Apps mit privaten Endpunkten

Azure App Service
Azure DNS
Azure-Funktionen
Azure Private Link

Wie bei den meisten Azure-PaaS-Diensten (Platform-as-a-Service) kann standardmäßig über das Internet auf Azure-Web-Apps und -Funktions-Apps zugegriffen werden. Für den Fall, dass Sie den eingehenden Datenverkehr für eine Web-App oder Funktions-App einschränken möchten, bietet Azure zwei integrierte Optionen: Zugriffseinschränkungen und private Endpunkte.

Wenn Sie Zugriffseinschränkungen verwenden, können Sie die interne Firewall der Ressource konfigurieren, indem Sie Listen mit Zulassungs- und Ablehnungsregeln definieren. Die Einschränkungen können auf IP-Adressen (IPv4 und IPv6) oder auf Diensttags basieren. Alternativ können Sie Dienstendpunkte verwenden, um den Zugriff einzuschränken. Bei Verwendung von Dienstendpunkten wird der Zugriff auf Ihre App nur für Datenverkehr aus ausgewählten Subnetzen und virtuellen Netzwerken gewährt. Für die Verwendung von Zugriffseinschränkungen fallen keine Kosten an, und sie sind in allen Azure App Service- und Azure Functions-Plänen verfügbar. Zugriffseinschränkungen haben jedoch einige Nachteile. Die Verwaltung von Zulassungs- und Ablehnungsregeln kann eine Herausforderung darstellen. Und wenn ein Drittanbieter Ihren Dienst nutzen möchte, müssen Sie seine IP-Adresse in einer Zulassungsregel angeben. Einige Drittanbieterdienste verfügen über dynamische IP-Adressen, und in manchen Organisationen sind IP-Adressen vertraulich.

Die zweite integrierte Option, ein privater Endpunkt, bietet Clients in Ihrem privaten Netzwerk sicheren Zugriff auf Ihre App über Azure Private Link. Ein privater 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. Bei dieser Lösung wird der Datenverkehr also vom öffentlichen Internet isoliert. Private Endpunkte können auch verwendet werden, um Ad-hoc-Verbindungen zwischen Azure-Mandanten herzustellen. Genauer gesagt können Sie einen sicheren Site-to-Point-VPN-Tunnel (virtuelles privates Netzwerk) erstellen. Der Tunnel kann von einem virtuellen Consumernetzwerk in einem Mandanten zu einer Azure-Web-App oder -Funktions-App in einem anderen Mandanten führen. Bei diesem Ansatz müssen keine Site-to-Site-VPNs oder VNet-Peerings eingerichtet und verwaltet werden.

In diesem Leitfaden wird eine Architektur mit privatem Endpunkt präsentiert. Der private Endpunkt macht eine Azure-Web-App in einem Mandanten auf sichere Weise für einen Client verfügbar, der die App in einem anderen Azure-Mandanten nutzt. Wenn Sie über einen Premium- oder App Service-Plan für Functions verfügen, kann dieser Ansatz kann auch für eine Funktions-App verwendet werden.

Aufbau

Architekturdiagramm: Sichere Verbindung zwischen einem Benutzer auf einem virtuellen Computer in einem Mandanten und einer Web-App in einem anderen Mandanten über einen privaten Endpunkt

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Ein Benutzer oder Dienst auf einem virtuellen Computer (virtual machine, VM) sendet eine DNS-Anforderung für eine Azure-Web-App unter webapp.azurewebsites.net. Die Web-App wird in einem Anbietermandanten ausgeführt.
  2. Der öffentliche Azure-DNS-Dienst verarbeitet die Abfrage für webapp.azurewebsites.net. Die Antwort ist ein CNAME-Eintrag: webapp.privatelink.azurewebsites.net.
  3. Eine private Azure DNS-Zone verarbeitet die DNS-Abfrage für webapp.privatelink.azurewebsites.net.
  4. Die Antwort ist ein A-Eintrag mit der IP-Adresse eines privaten Endpunkts.
  5. Der virtuelle Computer gibt über die IP-Adresse des privaten Endpunkts eine HTTPS-Anforderung an die Azure-Web-App aus.
  6. Die Web-App verarbeitet die Anforderung und antwortet dem virtuellen Computer.
  7. Wenn der Benutzer oder Dienst keinen Zugriff auf die private DNS-Zone hat, löst der öffentliche Azure-DNS-Dienst die DNS-Abfrage in webapp.privatelink.azurewebsites.net auf, indem er eine öffentliche IP-Adresse zurückgibt. Für HTTPS-Anforderungen an diese öffentliche IP-Adresse wird eine Antwort vom Typ 403 Verboten zurückgegeben.

Komponenten

  • App Service und dessen Web-Apps-Feature stellen ein Framework zum Erstellen, Bereitstellen und Skalieren von Web-Apps bereit.
  • Azure Functions ist eine ereignisgesteuerte serverlose Computeplattform.
  • Azure Virtual Network ist der grundlegende Baustein für private Netzwerke in Azure. Über Virtual Network können Azure-Ressourcen (z. B. VMs) sicher untereinander sowie mit dem Internet und lokalen Netzwerken kommunizieren.
  • Private Link stellt einen privaten Endpunkt in einem virtuellen Netzwerk bereit. Sie können den privaten Endpunkt verwenden, um eine Verbindung mit Azure-PaaS-Diensten oder mit Kunden- oder Partnerdiensten herzustellen.
  • Azure DNS ist ein Hostingdienst für DNS-Domänen. Azure DNS verwendet Azure-Infrastruktur, um die Namensauflösung bereitzustellen. Der private Azure DNS-Dienst verwaltet Domänennamen in einem virtuellen Netzwerk und in verbundenen virtuellen Netzwerken und löst sie auf. Wenn Sie diesen Dienst nutzen, müssen Sie keine benutzerdefinierte DNS-Lösung konfigurieren.
  • Eine private Azure DNS-Zone enthält Einträge, die Sie aus dem Internet heraus nicht auflösen können. Die DNS-Auflösung funktioniert nur aus virtuellen Netzwerken, die mit der privaten Zone verknüpft sind.
  • Azure Virtual Machines bietet viele Größen und Typen skalierbarer On-Demand-Computeressourcen.

Anbietereinrichtung

Der erste Schritt besteht darin, die Azure-Web-App innerhalb des Mandanten zu schützen, zu dem sie gehört. Ziel ist es, sicherzustellen, dass die Web-App nicht mehr im öffentlichen Internet verfügbar ist. Dieses Ziel kann durch Erstellen eines privaten Endpunkts für die Azure-Web-App erreicht werden.

Wenn Web-Apps und Funktions-Apps einem privaten Endpunkt zugeordnet werden, sind sie ab sofort nicht mehr öffentlich zugänglich. Wenn Sie den öffentlichen Zugriff wieder ermöglichen möchten, können Sie dazu die Zugriffseinschränkungseinstellungen verwenden. Andere Azure-Dienste sind weiterhin öffentlich verfügbar, wenn sie einem privaten Endpunkt zugeordnet wurden. Für diese Dienste sind zusätzliche Zugriffssteuerungen erforderlich, um sie unzugänglich zu machen.

Bereiten Sie vor dem Aktivieren des privaten Endpunkts ein virtuelles Netzwerk und ein Subnetz vor, in dem Sie die NIC des privaten Endpunkts bereitstellen können. Durch diesen Schritt wird eine IP-Adresse des Subnetzes beansprucht. Definieren Sie außerdem Ihre DNS-Strategie. Sie müssen einen A-Eintrag der NIC in der DNS-Zone registrieren.

  • Bei Verwendung der standardmäßig von Azure bereitgestellten DNS-Dienste empfiehlt es sich, den Dienst für private Zonen von Azure DNS zu verwenden und bei der Erstellung des privaten Endpunkts die automatische Integration zuzulassen. Mit diesem Ansatz wird Folgendes sichergestellt:

    • Die private DNS-Zone (privatelink.azurewebsites.net) wird bei Bedarf automatisch erstellt.
    • Die DNS-Zone ist mit dem virtuellen Netzwerk der NIC des privaten Endpunkts verknüpft.
    • Der A-Eintrag wird in der privaten DNS-Zone registriert und automatisch verwaltet.
  • Wenn Sie nicht die standardmäßig von Azure bereitgestellten DNS-Dienste verwenden, müssen Sie Ihre eigenen DNS-Server und -Zonen konfigurieren und verwalten:

    1. Erstellen Sie folgende DNS-Zone: privatelink.azurewebsites.net.
    2. Stellen Sie sicher, dass privatelink.azurewebsites.net in den virtuellen Netzwerken, die die NIC des privaten Endpunkts auflösen müssen, aufgelöst werden kann.
    3. Registrieren Sie den A-Eintrag in der DNS-Zone privatelink.azurewebsites.net mit der IP-Adresse des privaten Endpunkts.
    4. Konfigurieren Sie je nach Setup ggf. eine DNS-Weiterleitung, um die öffentliche Azure DNS-Zone azurewebsites.net aufzulösen.

    Weitere Informationen finden Sie unter DNS-Konfiguration für private Azure-Endpunkte.

In beiden Fällen wird die öffentliche Azure DNS-Zone (azurewebsites.net) während der Erstellung des privaten Endpunkts automatisch mit dem CNAME-Eintrag aktualisiert, der auf die private DNS-Zone verweist. Benutzer können versuchen, die Web-App von Quellen aus zu erreichen, die die private DNS-Zone nicht auflösen können, um den tatsächlichen A-Eintrag und die zugehörige interne IP-Adresse abzurufen. Diese Benutzer erhalten zwar eine auflösbare öffentliche IP-Adresse, die Antwort lautet aber 403 Verboten.

Consumereinrichtung

Der nächste Schritt besteht darin, die Azure-Web-App des Anbieters für einen Client in einem anderen Mandanten erreichbar zu machen. Diese Einrichtung wird vom Consumer initiiert. Zum Aktivieren der Verbindung ist eine manuelle Genehmigung durch den Anbieter erforderlich.

Schritt 1 (Consumer): Erstellen eines privaten Endpunkts

Auf der Consumerseite beginnt der Einrichtungsprozess mit der Erstellung einer privaten Endpunktressource. Der Consumer muss genau wie der Anbieter über ein virtuelles Netzwerk und Subnetz verfügen, in dem die NIC des privaten Endpunkts bereitgestellt werden kann. Durch diesen Schritt wird eine IP-Adresse des Subnetzes beansprucht. Für den privaten IP-Adressbereich dieses virtuellen Netzwerks gelten keinerlei Einschränkungen. Die IP-Adressbereiche im Anbieter- und Consumermandanten dürfen sich überschneiden.

Da der Consumer die Zielressource nicht besitzt, muss die vollständige Ressourcen-ID der Azure-Web-App im Anbietermandanten verwendet werden. Diese Ressourcen-ID enthält die Abonnement-ID des Anbieters, den Namen der Ressourcengruppe und den Namen der Azure-Web-App-Ressource. Daher sollte der Anbieter diese Informationen auf sichere Weise an den Consumer weitergeben. Die Verwendung eines Alias ist derzeit nicht möglich. Einige Azure-Ressourcen verfügen über mehrere Unterressourcen. Beispielsweise verfügt eine Azure Storage-Ressource über Blob-, Tabellen-, Warteschlangen-, Datei-, Web- und DFS-Unterressourcen . Der Anbieter muss auch Informationen zu den Unterressourcen bereitstellen. Azure-Web-Apps und -Funktions-Apps verfügen nur über die Unterressource sites. Weitere Informationen zu Unterressourcen eines privaten Endpunkts und zu deren Werten finden Sie unter Private Link-Ressource. Da die Verbindung des privaten Endpunkts nicht automatisch genehmigt wird, kann der Consumer eine Nachricht bereitstellen, die vom Anbieter gelesen werden kann.

Die Einrichtung der DNS-Zonenintegration kann nicht automatisiert werden. Daher muss der Consumer die DNS-Einträge manuell konfigurieren, wie in Schritt 3 erläutert.

Wenn die Ressource für den privaten Endpunkt erstellt wurde, lautet der Verbindungsstatus Ausstehend. Die Verbindung bleibt in diesem nicht verwendbaren Zustand, bis der Anbieter die Anforderung genehmigt.

Schritt 2 (Anbieter): Überprüfen und Genehmigen der Verbindungsanforderung

Der Anbieter wird nicht benachrichtigt, dass eine ausstehende Verbindungsanforderung für einen privaten Endpunkt vorhanden ist. Der Consumer muss den Anbieter informieren, wenn eine Anforderung übermittelt wurde.

Der Anbieter kann ausstehende Anforderungen im Azure-Portal an einem der folgenden Orte abrufen, überprüfen und genehmigen oder ablehnen:

  • Auf der Seite Private Link Center. Die genehmigende Person kann auf dieser Seite eine Genehmigungsnachricht eingeben.
  • Auf dem Blatt Netzwerk der Web-App durch Auswählen von Private Endpunkte.

Alternativ kann der Anbieter die Azure CLI oder Azure PowerShell verwenden, um die ausstehenden Anforderungen abzurufen, zu überprüfen und zu genehmigen oder abzulehnen.

Der Anbieter kann die Nachricht lesen, die bei der Erstellung des privaten Endpunkts angegeben wurde. Dem Anbieter wird auch der Namen angezeigt, den der Consumer dem privaten Endpunkt gegeben hat. In der Azure CLI und in Azure PowerShell sind auch die Mandanten-ID des Consumers, der Ressourcengruppenname und der Name der Ressource für den privaten Endpunkt verfügbar. Im Azure-Portal sind diese Informationen etwas versteckt. Hier wird ein Link zum privaten Endpunkt des Consumers erstellt. Da sich der Consumer in einem anderen Mandanten befindet, kann der Anbieter in der Regel nicht darauf zugreifen.

Die Genehmigung privater Endpunktverbindungen kann nicht automatisiert werden. Bei Private Link können Sie dagegen die Eigenschaft für die automatische Genehmigung verwenden, um vorab eine Reihe von Abonnements zu genehmigen und automatisierten Zugriff auf den Dienst zu ermöglichen.

Schritt 3 (Consumer): DNS-Einrichtung

Die Schritte in diesem Abschnitt können direkt im Anschluss an die Erstellung der Ressource für den privaten Endpunkt (Schritt 1) ausgeführt werden. Es empfiehlt sich allerdings zu warten, bis der Anbieter die Verbindung genehmigt, um zu vermeiden, dass Aufgaben wiederholt werden müssen.

Der Consumer muss die private DNS-Zone einrichten und konfigurieren, um sicherzustellen, dass seine Clients die NIC des privaten Endpunkts finden können. Die erforderlichen Schritte hängen genau wie beim Anbieter von der DNS-Strategie des Mandanten ab.

  • Wenn der Consumer die standardmäßig von Azure bereitgestellten DNS-Dienste verwendet, empfiehlt es sich, den Dienst für private Zonen von Azure DNS zu verwenden. Bei Bedarf erstellt der Consumer die private DNS-Zone privatelink.azurewebsites.net und verknüpft sie mit einem virtuellen Netzwerk, das die NIC des privaten Endpunkts enthält. Für diese DNS-Zone ist keine automatische Registrierung erforderlich. Im nächsten Schritt muss der Consumer eine neue DNS-Konfiguration hinzufügen:

    1. Suchen Sie im Azure-Portal nach dem privaten Endpunkt, und wählen Sie ihn aus.
    2. Öffnen Sie das Blatt DNS-Konfiguration.
    3. Wählen Sie die private DNS-Zone aus, und geben Sie einen Verbindungsnamen an, um eine neue DNS-Konfiguration hinzuzufügen.

    Mit diesen Schritten wird der A-Eintrag in der privaten DNS-Zone erstellt. Der FQDN wird automatisch aufgefüllt, wenn die Verbindung genehmigt wird.

  • Wenn der Consumer seine eigenen DNS-Zonen verwaltet, muss er seine Umgebung wie weiter oben unter Anbietereinrichtung beschrieben konfigurieren.

In der Architektur dieses Leitfadens verwendet der virtuelle Consumercomputer den privaten Endpunkt, um auf die Azure-Web-App zuzugreifen. Dieser Zugriff ist möglich, sobald die Verbindung genehmigt und das DNS ordnungsgemäß konfiguriert wurde.

Verbindungsverwaltung

Sowohl der Anbieter als auch der Consumer kann die private Endpunktverbindung verwalten, nachdem sie erstellt und genehmigt wurde.

  • Der Consumer kann die Verbindung direkt über die Ressource für den privaten Endpunkt, über die Seite Private Link Center, über die Azure CLI oder mithilfe von Azure PowerShell entfernen. Der Producer muss nicht eingebunden werden.
  • Der Anbieter kann die Verbindungen mit seinem Dienst über das Blatt Netzwerk der Azure-Web-App, über die Azure CLI oder mithilfe von Azure PowerShell entfernen. Sobald der private Endpunkt gelöscht wurde, kann der Consumer nicht mehr auf den Dienst zugreifen. Der Consumer sieht, dass die Verbindung für den privaten Endpunkt den Status Getrennt hat und der DNS-Eintrag aus der privaten DNS-Zone entfernt wurde. Die Ressource für den privaten Endpunkt muss vom Consumer manuell gelöscht werden.

Es ist nicht möglich, eine Verbindung vorübergehend anzuhalten oder zu deaktivieren. Wenn der Consumer oder der Anbieter eine Verbindung gelöscht hat, müssen Sie einen neuen privaten Endpunkt erstellen, um die Verbindung wiederherzustellen.

Kostenoptimierung

Anders als bei den kostenlosen Zugriffseinschränkungen fallen bei privaten Endpunkten sowohl für den Anbieter als auch für den Consumer Fixkosten und variable Kosten an.

Fixkosten

Variable Kosten

Virtuelle Computer sind in dieser Preisübersicht nicht enthalten, da sie keine absolute Anforderung für die Architektur sind.

Weitere Überlegungen

  • Der Anbieter muss die Abonnement-ID, den Ressourcengruppennamen und den Namen der Azure-Web-App-Ressource an den Consumer weitergeben. Analog dazu gibt der Consumer die Abonnement-ID, den Ressourcengruppennamen und den Namen der Ressource für den privaten Endpunkt an den Anbieter weiter.
  • Die Anzahl privater Endpunkte, die in einem Abonnement erstellt werden können, ist begrenzt. Da die privaten Endpunkte jedoch in den Consumerabonnements erstellt werden, sollte dieser Grenzwert kein Problem sein. Weitere Informationen finden Sie unter Grenzwerte für Azure-Abonnements, -Dienste und -Kontingente sowie allgemeine Beschränkungen.
  • Das Abonnement mit der Private Link-Ressource muss beim Microsoft-Netzwerkressourcenanbieter registriert werden. Das Abonnement mit dem privaten Endpunkt muss beim Microsoft-Netzwerkressourcenanbieter registriert werden. Weitere Informationen finden Sie unter Azure-Ressourcenanbieter und -typen.
  • Sollten bei Ihnen Konnektivitätsprobleme auftreten, helfen Ihnen die Informationen unter Behandeln von Problemen mit der Konnektivität privater Azure-Endpunkte weiter. Überprüfen Sie insbesondere die DNS-Konfiguration.

Bereitstellen dieses Szenarios

Ein GitHub-Repository mit Bicep-Vorlagen zum Bereitstellen dieser Architektur finden Sie unter Project Cross-Tenant Secure Access to Azure Web Apps and Azure Functions with Private Endpoints (Projekt: Mandantenübergreifender sicherer Zugriff auf Azure-Web-Apps und Azure Functions mit privaten Endpunkten).

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Andere Mitwirkende:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte