Herstellen einer privaten Verbindung mit API Management mithilfe eines eingehenden privaten Endpunkts

GILT FÜR: Developer | Basic | Standard | Premium

Sie können einen eingehenden privaten Endpunkt für Ihre API Management-Instanz konfigurieren, damit Clients in Ihrem privaten Netzwerk sicher über Azure Private Link auf die Instanz zugreifen können.

  • Der private Endpunkt verwendet eine IP-Adresse aus einem Azure-VNet, in dem er gehostet wird.

  • Der Netzwerkdatenverkehr zwischen einem Client in Ihrem privaten Netzwerk und API Management wird über das virtuelle Netzwerk (VNet) und Private Link im Microsoft-Backbonenetzwerk übertragen und dadurch vom öffentlichen Internet isoliert.

  • Konfigurieren Sie benutzerdefinierte DNS-Einstellungen oder eine private Azure DNS-Zone, um den API Management-Hostnamen der privaten IP-Adresse des Endpunkts zuzuordnen.

Diagramm: Sichere eingehende Verbindung zu API Management mittels privatem Endpunkt

Ein privater Endpunkt und Private Link ermöglichen Ihnen Folgendes:

  • Erstellen mehrerer Private Link-Verbindungen mit einer API Management-Instanz

  • Verwenden des privaten Endpunkts, um eingehenden Datenverkehr über eine sichere Verbindung zu senden

  • Verwenden einer Richtlinie, um Datenverkehr vom privaten Endpunkt zu erkennen

  • Beschränken des eingehenden Datenverkehrs auf private Endpunkte, um eine Datenexfiltration zu verhindern

Wichtig

  • Sie können nur eine private Endpunktverbindung für eingehenden Datenverkehr zur API Management-Instanz konfigurieren. Ausgehender Datenverkehr wird derzeit nicht unterstützt.

    Sie können das externe oder interne virtuelle Netzwerkmodell verwenden, um von Ihrer API Management-Instanz ausgehende Konnektivität zu privaten Endpunkten herzustellen.

  • Wenn Sie eingehende private Endpunkte aktivieren möchten, darf die API Management-Instanz nicht in ein externes oder internes virtuelles Netzwerk eingefügt sein.

Begrenzungen

  • Eingehende Private Link-Verbindungen werden nur vom Gatewayendpunkt der API Management-Instanz unterstützt.
  • Jede API Management-Instanz unterstützt maximal 100 Private Link-Verbindungen.
  • Verbindungen werden auf dem selbstgehosteten Gateway oder auf einem Arbeitsbereichs-Gateway nicht unterstützt.

Voraussetzungen

  • Eine bestehende API Management-Instanz. Erstellen Sie eine, falls nicht schon geschehen.
    • Die API Management-Instanz muss auf der stv2Computeplattform gehostet werden.
    • Die Instanz darf nicht in einem externen oder internen virtuellen Netzwerk bereitgestellt (eingefügt) werden.
  • Ein virtuelles Netzwerk und Subnetz zum Hosten des privaten Endpunkts. Das Subnetz kann andere Azure-Ressourcen enthalten.
  • (Empfohlen) Eine VM im selben oder in einem anderen Subnetz im virtuellen Netzwerk, um den privaten Endpunkt zu testen.
  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.

  • Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.

    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.

Genehmigungsmethode für private Endpunkte

In der Regel werden private Endpunkte von einem Netzwerkadministrator erstellt. Abhängig von den über die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) in Azure erteilten Berechtigungen wird ein von Ihnen erstellter privater Endpunkt entweder automatisch genehmigt, sodass er Datenverkehr an die API Management-Instanz senden kann, oder der Ressourcenbesitzer muss die Verbindung manuell genehmigen.

Genehmigungsmethode RBAC-Mindestberechtigungen
Automatic Microsoft.Network/virtualNetworks/**
Microsoft.Network/virtualNetworks/subnets/**
Microsoft.Network/privateEndpoints/**
Microsoft.Network/networkinterfaces/**
Microsoft.Network/locations/availablePrivateEndpointTypes/read
Microsoft.ApiManagement/service/**
Microsoft.ApiManagement/service/privateEndpointConnections/**
Manuell Microsoft.Network/virtualNetworks/**
Microsoft.Network/virtualNetworks/subnets/**
Microsoft.Network/privateEndpoints/**
Microsoft.Network/networkinterfaces/**
Microsoft.Network/locations/availablePrivateEndpointTypes/read

Schritte zum Konfigurieren eines privaten Endpunkts

  1. Abrufen der verfügbaren Typen privater Endpunkte im Abonnement
  2. Deaktivieren von Netzwerkrichtlinien im Subnetz
  3. Erstellen eines privaten Endpunkts: Portal
  4. Auflisten der Verbindungen mit privatem Endpunkt mit der Instanz
  5. Genehmigen ausstehender Verbindungen mit privatem Endpunkt
  6. Deaktivieren des Zugriffs über öffentliche Netzwerke (optional)

Abrufen der verfügbaren Typen privater Endpunkte im Abonnement

Vergewissern Sie sich, dass der Typ des privaten API Management-Endpunkts in Ihrem Abonnement und an Ihrem Standort verfügbar ist. Sie finden diese Informationen im Private Link Center im Portal. Wählen Sie Unterstützte Ressourcen aus.

Sie können diese Informationen auch mithilfe der REST-API Verfügbare Typen privater Endpunkte – Auflisten abrufen.

GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{region}/availablePrivateEndpointTypes?api-version=2021-03-01

Die Ausgabe sollte den Endpunkttyp Microsoft.ApiManagement.service enthalten:

[...]

      "name": "Microsoft.ApiManagement.service",
      "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Network/AvailablePrivateEndpointTypes/Microsoft.ApiManagement.service",
      "type": "Microsoft.Network/AvailablePrivateEndpointTypes",
      "resourceName": "Microsoft.ApiManagement/service",
      "displayName": "Microsoft.ApiManagement/service",
      "apiVersion": "2021-04-01-preview"
    }
[...]

Deaktivieren von Netzwerkrichtlinien im Subnetz

Netzwerkrichtlinien (z. B. Netzwerksicherheitsgruppen) müssen in dem Subnetz, das für den privaten Endpunkt verwendet wird, deaktiviert werden.

Wenn Sie Tools wie Azure PowerShell, die Azure-Befehlszeilenschnittstelle (Azure CLI) oder die REST-API zum Konfigurieren privater Endpunkte verwenden, aktualisieren Sie die Subnetzkonfiguration manuell. Beispiele finden Sie unter Verwalten von Netzwerkrichtlinien für private Endpunkte.

Wenn Sie das Azure-Portal zum Erstellen eines privaten Endpunkts verwenden (dies wird im nächsten Abschnitt erläutert), werden Netzwerkrichtlinien im Rahmen des Erstellungsprozesses automatisch deaktiviert.

Erstellen eines privaten Endpunkts: Portal

  1. Navigieren Sie zu Ihrem API Management-Dienst im Azure-Portal.

  2. Wählen Sie im Menü auf der linken Seite unter Bereitstellung und Infrastruktur die Option Netzwerk aus.

  3. Wählen Sie Eingehende Verbindungen mit privatem Endpunkt>+ Endpunkt hinzufügen aus.

    Screenshot des Hinzufügens eines privaten Endpunkts im Azure-Portal.

  4. Geben Sie auf der Registerkarte Grundlagen unter Privaten Endpunkt erstellen die folgenden Informationen ein, oder wählen Sie sie aus:

    Einstellung Wert
    Projektdetails
    Subscription Wählen Sie Ihr Abonnement aus.
    Ressourcengruppe Wählen Sie eine vorhandene Ressourcengruppe aus, oder erstellen Sie eine neue. Sie muss sich in derselben Region befinden wie Ihr virtuelles Netzwerk.
    Instanzendetails
    Name Geben Sie einen Namen für den privaten Endpunkt ein, z. B. MeinPrivaterEndpunkt.
    Name der Netzwerkschnittstelle Geben Sie einen Namen für die Netzwerkschnittstelle ein, z. B. meineSchnittstelle.
    Region Wählen Sie einen Standort für den privaten Endpunkt aus. Er muss sich in derselben Region befinden wie Ihr virtuelles Netzwerk. Es muss sich dabei nicht um die Region handeln, die Sie zum Hosten Ihrer API Management-Instanz verwenden.
  5. Wählen Sie unten auf dem Bildschirm die Schaltfläche Weiter: Ressource aus. Die folgenden Informationen zu Ihrer API Management-Instanz sind bereits aufgefüllt:

    • Abonnement
    • Ressourcentyp
    • Ressourcenname
  6. Wählen Sie im Abschnitt Ressource unter Zielunterressource die Option Gateway aus.

    Screenshot der Einstellungen zum Erstellen eines privaten Endpunkts im Azure-Portal.

  7. Wählen Sie unten auf dem Bildschirm die Schaltfläche Weiter: Virtuelles Netzwerk aus.

  8. Geben Sie unter Netzwerk die folgenden Informationen ein, bzw. wählen Sie sie aus:

    Einstellung Wert
    Virtuelles Netzwerk Wählen Sie Ihr virtuelles Netzwerk aus.
    Subnet Wählen Sie das Subnetz aus.
    Konfiguration der privaten IP-Adresse Wählen Sie in den meisten Fällen IP-Adresse dynamisch zuweisen aus.
    Anwendungssicherheitsgruppe Wählen Sie optional eine Anwendungssicherheitsgruppe aus.
  9. Wählen Sie die Schaltfläche Weiter: DNS unten auf dem Bildschirm aus.

  10. Geben Sie unter Private DNS-Integration diese Informationen ein, oder wählen Sie sie aus:

    Einstellung Wert
    Integration in eine private DNS-Zone Übernehmen Sie den Standardwert Ja.
    Subscription Wählen Sie Ihr Abonnement aus.
    Ressourcengruppe Wählen Sie Ihre Ressourcengruppe aus.
    Private DNS-Zonen Der Standardwert wird angezeigt: (new) privatelink.azure-api.net.
  11. Wählen Sie die Schaltfläche Weiter: Registerkarten unten auf dem Bildschirm aus. Wenn Sie möchten, geben Sie Tags ein, um Ihre Azure-Ressourcen zu organisieren.

    1. Wählen Sie unten auf dem Bildschirm die Schaltfläche Weiter: Überprüfen und erstellen aus.
  12. Klicken Sie auf Erstellen.

Auflisten der Verbindungen mit privatem Endpunkt mit der Instanz

Nachdem der private Endpunkt erstellt und der Dienst aktualisiert wurde, wird der Endpunkt im Portal in der Liste auf der Seite Eingehende Verbindungen mit privatem Endpunkt der API Management-Instanz angezeigt.

Notieren Sie sich den Verbindungsstatus des Endpunkts:

  • Genehmigt gibt an, dass die Verbindung automatisch von der API Management-Ressource genehmigt wurde.
  • Ausstehend gibt an, dass die Verbindung manuell vom Ressourcenbesitzer genehmigt werden muss.

Genehmigen ausstehender Verbindungen mit privatem Endpunkt

Wenn sich eine Verbindung mit privatem Endpunkt im Status „Ausstehend“ befindet, muss ein Besitzer der API Management-Instanz diese Verbindung manuell genehmigen. Erst dann kann sie verwendet werden.

Wenn Sie über ausreichende Berechtigungen verfügen, genehmigen Sie eine Verbindung mit privatem Endpunkt im Portal auf der Seite Verbindungen mit privatem Endpunkt der API Management-Instanz. Wählen Sie im Kontextmenü (...) Genehmigen aus.

Sie können auch die API Management-REST-API Verbindung mit privatem Endpunkt – Erstellen oder aktualisieren verwenden, um ausstehende Verbindungen mit privatem Endpunkt zu genehmigen.

Deaktivieren des Zugriffs über öffentliche Netzwerke (optional)

Wenn Sie eingehenden Datenverkehr an die API Management-Instanz auf private Endpunkte beschränken möchten, können Sie optional den Zugriff über öffentliche Netzwerke deaktivieren.

Hinweis

Der Zugriff aus öffentlichen Netzwerken kann nur in API Management-Instanzen deaktiviert werden, die mit einem privaten Endpunkt konfiguriert sind, nicht aber mit anderen Netzwerkkonfigurationen wie VNet-Einschleusung.

Um den Zugriff aus öffentlichen Netzwerken mithilfe der Azure-Befehlszeilenschnittstelle zu deaktivieren, führen Sie den folgenden az apim update-Befehl aus, und ersetzen Sie die Namen Ihrer API Management-Instanz und Ihrer Ressourcengruppe:

az apim update --name my-apim-service --resource-group my-resource-group --public-network-access false

Sie können auch die REST-API API Management-Dienst – Aktualisieren zum Deaktivieren des öffentlichen Netzwerkzugriffs verwenden, indem Sie die publicNetworkAccess-Eigenschaft auf Disabled festlegen.

Überprüfen der Verbindung mit privatem Endpunkt

Nachdem der private Endpunkt erstellt wurde, bestätigen Sie im Portal seine DNS-Einstellungen:

  1. Navigieren Sie zu Ihrem API Management-Dienst im Azure-Portal.

  2. Wählen Sie im Menü auf der linken Seite unter Bereitstellung und Infrastruktur die Option Netzwerk>Eingehende Verbindungen mit privatem Endpunkt aus, und wählen Sie dann den erstellten privaten Endpunkt aus.

  3. Wählen Sie unter Einstellungen auf der linken Navigationsleiste die Option DNS-Konfiguration aus.

  4. Überprüfen Sie die DNS-Einträge und die IP-Adresse des privaten Endpunkts. Die IP-Adresse ist eine private Adresse im Adressraum des Subnetzes, in dem der private Endpunkt konfiguriert ist.

Testen im virtuellen Netzwerk

Stellen Sie eine Verbindung mit der VM her, die Sie im virtuellen Netzwerk eingerichtet haben.

Führen Sie ein Hilfsprogramm wie nslookup oder dig aus, um die IP-Adresse Ihres standardmäßigen Gatewayendpunkts über Private Link zu ermitteln. Beispiel:

nslookup my-apim-service.azure-api.net

Die Ausgabe sollte die private IP-Adresse enthalten, die dem privaten Endpunkt zugeordnet ist.

Innerhalb des virtuellen Netzwerks initiierte API-Aufrufe an den standardmäßigen Gatewayendpunkt sollten erfolgreich ausgeführt werden.

Testen über das Internet

Versuchen Sie, den standardmäßigen Gatewayendpunkt der API Management-Instanz außerhalb des Pfads des privaten Endpunkts aufzurufen. Wenn der öffentliche Zugriff deaktiviert ist, enthält die Ausgabe einen Fehler mit dem Statuscode 403 und einer Meldung, die in etwa wie folgt lautet:

Request originated from client public IP address xxx.xxx.xxx.xxx, public network access on this 'Microsoft.ApiManagement/service/my-apim-service' is disabled.
       
To connect to 'Microsoft.ApiManagement/service/my-apim-service', please use the Private Endpoint from inside your virtual network.