Aktivieren von Private Link in einem HDInsight-Cluster
In diesem Artikel erfahren Sie, wie Sie Azure Private Link nutzen, um netzwerkübergreifend eine private Verbindung mit einem HDInsight-Cluster über das Microsoft-Backbonenetzwerk herzustellen. Dieser Artikel ist eine Erweiterung des Artikels Einschränken der öffentlichen Clusterkonnektivität in Azure HDInsight, in dem es primär um die Einschränkung der öffentlichen Konnektivität geht. Falls öffentliche Konnektivität zwischen Ihren HDInsight-Clustern und abhängigen Ressourcen erwünscht ist, sollten Sie die Konnektivität des Clusters einschränken, indem Sie die Richtlinien zum Steuern des Netzwerkdatenverkehrs in Azure HDInsight befolgen.
Private Link kann in netzwerkübergreifenden Szenarios genutzt werden, in denen das Peering virtueller Netzwerke nicht verfügbar oder aktiviert ist.
Hinweis
Das Einschränken der öffentlichen Konnektivität ist nicht das Gleiche wie Private Link, sondern eine Voraussetzung für dessen Aktivierung.
Die Verwendung von Private Link zum Herstellen einer Verbindung mit einem HDInsight-Cluster ist ein optionales Feature und standardmäßig deaktiviert. Das Feature ist nur verfügbar, wenn die Netzwerkeigenschaft resourceProviderConnection
auf ausgehend festgelegt ist, wie im Artikel Einschränken der Clusterkonnektivität in Azure HDInsight beschrieben.
Wenn privateLink
auf Enabled (Aktiviert) festgelegt ist, werden interne Standard-Lastenausgleichsmodule erstellt, und für jedes dieser Module wird ein Azure Private Link-Dienst bereitgestellt. Der Private Link-Dienst ermöglicht Ihnen den Zugriff auf den HDInsight-Cluster von privaten Endpunkten.
Bereitstellungsschritte für eine private Verbindung
Für die erfolgreiche Erstellung eines Private Link-Clusters sind zahlreiche Schritte erforderlich. Diese sind im Anschluss aufgeführt. Führen Sie jeden der folgenden Schritte aus, um sicherzustellen, dass alles ordnungsgemäß eingerichtet ist:
Schritt 1: Erstellen der erforderlichen Komponenten
Stellen Sie zunächst die folgenden Ressourcen bereit, falls Sie sie noch nicht erstellt haben. Sie benötigen mindestens eine Ressourcengruppe, zwei virtuelle Netzwerke und eine Netzwerksicherheitsgruppe für das Subnetz, in dem der HDInsight-Cluster wie unten gezeigt bereitgestellt werden soll.
type | Name | Zweck |
---|---|---|
Resource group | hdi-privlink-rg | Wird verwendet, um gemeinsame Ressourcen zusammenzufassen. |
Virtuelles Netzwerk | hdi-privlink-cluster-vnet | Das VNet, in dem der Cluster bereitgestellt wird. |
Virtuelles Netzwerk | hdi-privlink-client-vnet | Das VNet, von dem aus Clients eine Verbindung mit dem Cluster herstellen. |
Netzwerksicherheitsgruppe | hdi-privlink-cluster-vnet-nsg | Für die Clusterbereitstellung erforderliche Standard-NSG. |
Hinweis
Die Netzwerksicherheitsgruppe (NSG) kann einfach bereitgestellt werden. Es müssen keine NSG-Regeln für die Clusterbereitstellung geändert werden.
Schritt 2: Konfigurieren des HDInsight-Subnetzes
- Deaktivieren von „privateLinkServiceNetworkPolicies“ im Subnetz Damit Sie eine Quell-IP-Adresse für den Private Link-Dienst auswählen können, ist im Subnetz die explizite Einstellung zum Deaktivieren (
privateLinkServiceNetworkPolicies
) erforderlich. Folgen Sie der Anleitung zum Deaktivieren von Netzwerkrichtlinien für Private Link-Dienste. - Aktivieren Sie Dienstendpunkte im Subnetz. Für eine erfolgreiche Bereitstellung eines Privaten Link HDInsight-Clusters empfehlen wir, die Dienstendpunkte
Microsoft.SQL
,Microsoft.Storage
undMicrosoft.KeyVault
vor der Clusterbereitstellung zu Ihrem Subnetz hinzuzufügen. Dienstendpunkte leiten Datenverkehr direkt aus Ihrem virtuellen Netzwerk an den Dienst im Microsoft Azure-Backbone-Netzwerk weiter. Die Verwaltung von Datenverkehr im Azure-Backbonenetzwerk ermöglicht Ihnen weiterhin die Überwachung und Überprüfung von ausgehendem Internet-Datenverkehr aus Ihren virtuellen Netzwerken durch die Tunnelerzwingung, ohne dass sich dies auf den Datenverkehr der Dienste auswirkt.
Schritt 3: Bereitstellen von NAT-Gateway oder Firewall
Standard-Lastenausgleichsmodule stellen nicht automatisch eine öffentliche Netzwerkadressenübersetzung in ausgehender Richtung bereit, so wie es bei Basic-Lastenausgleichsmodulen der Fall ist. Da von Private Link-Clustern standardmäßige Lastenausgleichsmodule verwendet werden, müssen Sie eine eigene NAT-Lösung (beispielsweise eine NAT Gateway-Instanz oder eine von Ihrer Firewall bereitgestellte Adressübersetzung) bereitstellen, um eine Verbindung mit ausgehenden öffentlichen HDInsight-Abhängigkeiten herzustellen.
Bereitstellen eines NAT-Gateway (Option 1)
Sie können ein NAT-Gateway verwenden, wenn Sie keine Firewall oder ein virtuelles Netzwerkgerät (Network Virtual Appliance, NVA) für NAT konfigurieren möchten. Fügen Sie zum Einstieg ein NAT-Gateway (mit einer neuen öffentlichen IP-Adresse in Ihrem virtuellen Netzwerk) zum konfigurierten Subnetz Ihres virtuellen Netzwerks hinzu. Dieses Gateway ist für die Übersetzung Ihrer privaten internen IP-Adresse in öffentliche Adressen zuständig, wenn Datenverkehr Ihr virtuelles Netzwerk verlassen muss.
Ein grundlegendes Setup für die ersten Schritte:
Suchen Sie im Azure-Portal nach „NAT Gateways“, und klicken Sie auf Erstellen.
Verwenden Sie in der NAT Gateway-Instanz die folgenden Konfigurationen. (Wir nehmen hier nicht alle Konfigurationen auf, sodass Sie die Standardwerte verwenden können).
Konfigurationen Wert Name des NAT-Gateways hdi-privlink-nat-gateway Präfixe von öffentlichen IP-Adressen Erstellen Sie ein neues Präfix für die öffentliche IP-Adresse. Name des Präfixes für die öffentliche IP-Adresse hdi-privlink-nat-gateway-prefix Präfixgröße für öffentliche IP-Adressen /28 (16 Adressen) Virtuelles Netzwerk hdi-privlink-cluster-vnet Subnetzname default Nach Abschluss der Bereitstellung von NAT Gateway können Sie mit dem nächsten Schritt fortfahren.
Konfigurieren einer Firewall (Option 2)
Ein grundlegendes Setup für die ersten Schritte:
- Fügen Sie Ihrem virtuellen Netzwerk ein neues Subnetz mit dem Namen AzureFirewallSubnet hinzu.
- Verwenden Sie das neue Subnetz, um eine neue Firewall zu konfigurieren und Ihre Firewallrichtlinien hinzuzufügen.
- Verwenden Sie die private IP-Adresse der neuen Firewall als
nextHopIpAddress
-Wert in der Routentabelle. - Fügen Sie diese Routingtabelle dem konfigurierten Subnetz Ihres virtuellen Netzwerks hinzu.
Ihr HDInsight-Cluster benötigt weiterhin Zugriff auf seine ausgehenden Abhängigkeiten. Falls diese ausgehenden Abhängigkeiten nicht zulässig sind, kann der Cluster ggf. nicht erstellt werden. Weitere Informationen zum Einrichten einer Firewall finden Sie unter Steuern des Netzwerkdatenverkehrs in Azure HDInsight.
Schritt 4: Bereitstellen des Clusters für eine private Verbindung
An diesem Punkt sollten alle Voraussetzungen erfüllt sein, und der Private Link-Cluster kann bereitgestellt werden. Das folgende Diagramm zeigt ein Beispiel für die Netzwerkkonfiguration, die zum Erstellen des Clusters benötigt wird. In diesem Beispiel wird der gesamte ausgehende Datenverkehr für Azure Firewall über eine benutzerdefinierte Route erzwungen. Die erforderlichen ausgehenden Abhängigkeiten sollten vor der Clustererstellung in der Firewall zulässig sein. Bei Clustern mit Enterprise-Sicherheitspaket kann das Peering virtueller Netzwerke die Netzwerkkonnektivität mit Microsoft Entra Domain Services bereitstellen.
Erstellen Sie den Cluster.
Der folgende JSON-Codeausschnitt enthält die beiden Netzwerkeigenschaften, die Sie in Ihrer Azure Resource Manager-Vorlage konfigurieren müssen, um einen privaten HDInsight-Cluster zu erstellen:
networkProperties: {
"resourceProviderConnection": "Outbound",
"privateLink": "Enabled"
}
Eine vollständige Vorlage mit vielen dieser HDInsight-Sicherheitsfunktionen für Unternehmen, z. B. Private Link, finden Sie im Artikel zur Enterprise-Sicherheitsvorlage für HDInsight.
Informationen zum Erstellen eines Clusters mithilfe von PowerShell finden Sie im Beispiel.
Informationen zum Erstellen eines Clusters mithilfe von Azure CLI finden Sie im Beispiel.
Schritt 5: Erstellen privater Endpunkte
Im Zuge der Bereitstellung des Private Link-Clusters wird von Azure automatisch ein Private Link-Dienst für die Ambari- und SSH-Lastenausgleichsmodule erstellt. Nach der Bereitstellung des Clusters müssen Sie in den Client-VNETs zwei private Endpunkte erstellen – einen für Ambari und einen für SSH-Zugriff. Diese müssen dann mit den Private Link-Diensten verknüpft werden, die im Rahmen der Clusterbereitstellung erstellt wurden.
So erstellen Sie die privaten Endpunkte:
Öffnen Sie das Azure-Portal, und suchen Sie nach „Private Link“.
Klicken Sie in den Ergebnissen auf das Symbol für Private Link.
Klicken Sie auf „Privaten Endpunkt erstellen“, und richten Sie den privaten Ambari-Endpunkt ein. Verwenden Sie dabei die folgenden Konfigurationen:
Konfigurationen Wert Name hdi-privlink-cluster Ressourcentyp Microsoft.Network/privateLinkServices Resource gateway-* (Dieser Wert muss der HDI-Bereitstellungs-ID Ihres Clusters entsprechen. Beispiel: gateway-4eafe3a2a67e4cd88762c22a55fe4654) Virtuelles Netzwerk hdi-privlink-client-vnet Subnet default Wiederholen Sie den Prozess, um einen weiteren privaten Endpunkt für den SSH-Zugriff zu erstellen. Verwenden Sie dabei die folgenden Konfigurationen:
Konfigurationen Wert Name hdi-privlink-cluster-ssh Ressourcentyp Microsoft.Network/privateLinkServices Resource headnode-* (Dieser Wert muss der HDI-Bereitstellungs-ID Ihres Clusters entsprechen. Beispiel: headnode-4eafe3a2a67e4cd88762c22a55fe4654) Virtuelles Netzwerk hdi-privlink-client-vnet Subnet default
Wichtig
Wenn Sie KafkaRestProxy HDInsight-Cluster verwenden, führen Sie diese zusätzlichen Schritte zum Aktivieren privater Endpunkte aus.
Nachdem die privaten Endpunkte erstellt wurden, ist diese Phase des Setups abgeschlossen. Falls Sie sich die den Endpunkten zugewiesenen privaten IP-Adressen nicht notiert haben, können Sie die folgenden Schritte ausführen:
- Öffnen Sie im Azure-Portal das Client-VNet.
- Klicken Sie auf die Registerkarte „Private Endpunkte“.
- Es sollte sowohl die Ambari- als auch die SSH-Netzwerkschnittstelle aufgelistet werden.
- Klicken Sie auf jede Option, und navigieren Sie zum Blatt „DNS-Konfiguration“, um die private IP-Adresse zu sehen.
- Notieren Sie sich diese IP-Adressen. Sie werden benötigt, um eine Verbindung mit dem Cluster herzustellen und das DNS ordnungsgemäß zu konfigurieren.
Schritt 6: Konfigurieren des DNS für die Verbindungsherstellung über private Endpunkte
Für den Zugriff auf private Cluster können Sie die DNS-Auflösung über private DNS-Zonen konfigurieren. In der von Azure verwalteten öffentlichen DNS-Zone azurehdinsight.net
werden die folgenden Private Link-Einträge erstellt:
<clustername> CNAME <clustername>.privatelink
<clustername>-int CNAME <clustername>-int.privatelink
<clustername>-ssh CNAME <clustername>-ssh.privatelink
Die folgende Abbildung zeigt ein Beispiel für die privaten DNS-Einträge, die für den Zugriff auf einen Cluster aus einem virtuellen Netzwerk konfiguriert werden, das weder per Peering verbunden ist noch über eine direkte Sichtverbindung mit dem Cluster verfügt. Sie können eine private Azure DNS-Zone verwenden, um vollqualifizierte Domänennamen (FQDNs) vom Typ *.privatelink.azurehdinsight.net
außer Kraft zu setzen und IP-Adressen für private Endpunkte im Netzwerk des Clients aufzulösen. Die Konfiguration gilt nur für <clustername>.azurehdinsight.net
im Beispiel, gilt aber auch für andere Clusterendpunkte.
So konfigurieren Sie die DNS-Auflösung über eine private DNS-Zone:
Erstellen Sie eine private Azure DNS-Zone. (Für Konfigurationen, die hier nicht angegeben sind, wird jeweils der Standardwert verwendet.)
Konfigurationen Wert Name privatelink.azurehdinsight.net Fügen Sie der privaten DNS-Zone für Ambari einen Ressourceneintragssatz hinzu.
Konfigurationen Wert Name YourPrivateLinkClusterName (Name Ihres Private Link-Clusters) type A: Aliaseintrag für die IPv4-Adresse TTL 1 TTL-Einheit Stunden IP-Adresse Private IP-Adresse des privaten Endpunkts für Ambari-Zugriff Fügen Sie der privaten DNS-Zone für SSH einen Ressourceneintragssatz hinzu.
Konfigurationen Wert Name YourPrivateLinkClusterName-ssh ( -ssh) type A: Aliaseintrag für die IPv4-Adresse TTL 1 TTL-Einheit Stunden IP-Adresse Private IP-Adresse des privaten Endpunkts für SSH-Zugriff
Wichtig
Wenn Sie den KafkaRestProxy HDInsight-Cluster verwenden, folgen Sie diesen zusätzlichen Schritten zum Konfigurieren von DNS zum Herstellen einer Verbindung über einen privaten Endpunkt.
Ordnen Sie die private DNS-Zone dem Client-VNet zu, indem Sie eine VNet-Verknüpfung hinzufügen.
- Öffnen Sie die private DNS-Zone im Azure-Portal.
- Klicken Sie auf die Registerkarte „VNET-Verknüpfungen“.
- Klicken Sie auf die Schaltfläche „Hinzufügen“.
- Geben Sie folgende Details an: Name der Verknüpfung, Abonnement und virtuelles Netzwerk (Ihr Client-VNet).
- Klicken Sie auf Speichern.
Schritt 7: Überprüfen der Clusterkonnektivität
Der letzte Schritt besteht darin, die Konnektivität mit dem Cluster zu testen. Da dieser Cluster isoliert oder privat ist, kann nicht über eine öffentliche IP-Adresse oder über einen FQDN auf den Cluster zugegriffen werden. Stattdessen stehen folgende Möglichkeiten zur Verfügung:
- Einrichten von VPN-Zugriff auf das Client-VNet über Ihr lokales Netzwerk
- Bereitstellen eines virtuellen Computers im Client-VNet und Zugreifen auf den Cluster über diesen virtuellen Computer
In diesem Beispiel wird zum Testen der Konnektivität im Client-VNet ein virtueller Computer mit folgender Konfiguration bereitgestellt:
Konfigurationen | Wert |
---|---|
Name des virtuellen Computers | hdi-privlink-client-vm |
Image | Windows 10 Pro, Version 2004 – Gen1 |
Öffentliche Eingangsports | Ausgewählte Ports zulassen |
Eingangsports auswählen | RDP (3389) |
Ich bestätige, dass ich über eine berechtigte Windows 10-Lizenz (...) verfüge. | Aktiviert |
Virtuelles Netzwerk | hdi-privlink-client-vnet |
Subnet | default |
Nachdem der virtuelle Clientcomputer bereitgestellt wurde, können Sie sowohl den Ambari- als auch den SSH-Zugriff testen.
So testen Sie den Ambari-Zugriff
- Öffnen Sie auf dem virtuellen Computer einen Webbrowser.
- Navigieren Sie zum regulären FQDN Ihres Clusters:
https://<clustername>.azurehdinsight.net
. - Wenn die Ambari-Benutzeroberfläche geladen wird, ist der Ambari-Zugriff ordnungsgemäß konfiguriert.
So testen Sie den SSH-Zugriff
- Öffnen Sie eine Eingabeaufforderung, um ein Terminalfenster zu erhalten.
- Versuchen Sie im Terminalfenster, eine SSH-Verbindung mit Ihrem Cluster herzustellen:
ssh sshuser@<clustername>.azurehdinsight.net
. (Ersetzen Sie „sshuser“ durch den SSH-Benutzer, den Sie für Ihren Cluster erstellt haben.) - Wenn Sie eine Verbindung herstellen können, ist der SSH-Zugriff ordnungsgemäß konfiguriert.
Anhang: Verwalten privater Endpunkte für Azure HDInsight
Sie können private Endpunkte für Ihre Azure HDInsight-Cluster verwenden, um Clients in einem virtuellen Netzwerk sicheren Zugriff auf Ihren Cluster über Private Link zu ermöglichen. Der Netzwerkdatenverkehr zwischen den Clients im virtuellen Netzwerk und dem HDInsight-Cluster durchquert das Microsoft-Backbonenetzwerk, ohne in das öffentliche Internet zu gelangen.
Es gibt zwei Methoden zur Genehmigung von Verbindungen, aus denen ein Private Link-Dienstconsumer (z. B. Azure Data Factory) auswählen kann:
- Automatisch: Wenn der Dienstconsumer für die HDInsight-Ressource über Berechtigungen der rollenbasierten Zugriffssteuerung (RBAC) in Azure verfügt, kann der Consumer die automatische Genehmigungsmethode auswählen. In diesem Fall ist keine Aktion seitens der HDInsight-Ressource erforderlich, wenn die Anforderung diese Ressource erreicht, und die Verbindung wird automatisch genehmigt.
- Manuell: Der Dienstconsumer kann die manuelle Genehmigungsmethode auswählen, wenn der Consumer nicht über Azure RBAC-Berechtigungen für die HDInsight-Ressource verfügt. In diesem Fall wird die Verbindungsanforderung in den HDInsight-Ressourcen als Ausstehend angezeigt. Die HDInsight-Ressource muss die Anforderung manuell genehmigen, bevor Verbindungen hergestellt werden können.
Wechseln Sie in Ihrer Clusteransicht im Azure-Portal zum Abschnitt Netzwerk unter Sicherheit + Netzwerkbetrieb, um private Endpunkte zu verwalten. Hier können Sie alle vorhandenen Verbindungen, Verbindungszustände und Details zu privaten Endpunkten anzeigen.
Sie können vorhandene Verbindungen auch genehmigen, ablehnen oder entfernen. Wenn Sie eine private Verbindung herstellen, können Sie angeben, mit welcher HDInsight-Unterressource (z. B. Gateway oder Hauptknoten) auch eine Verbindung hergestellt werden soll.
Die folgende Tabelle zeigt die verschiedenen HDInsight-Ressourcenaktionen und die resultierenden Verbindungszustände für private Endpunkte. Die HDInsight-Ressource kann den Verbindungszustand der privaten Endpunktverbindung auch zu einem späteren Zeitpunkt ohne Eingriff des Consumers ändern. Durch die Aktion wird der Zustand des Endpunkts auf der Consumerseite aktualisiert.
Dienstanbieteraktion | Zustand des privaten Endpunkts des Dienstconsumers | BESCHREIBUNG |
---|---|---|
Keine | Ausstehend | Die Verbindung wird manuell erstellt, und die Genehmigung des Besitzers der Private Link-Ressource steht aus. |
Genehmigen | Genehmigt | Die Verbindung wurde automatisch oder manuell genehmigt und ist zur Verwendung bereit. |
Reject | Rejected (Abgelehnt) | Die Verbindung wurde vom Besitzer der Private Link-Ressource abgelehnt. |
Remove (Entfernen) | Getrennt | Die Verbindung wurde vom Besitzer der Private Link-Ressource entfernt. Der private Endpunkt dient nur noch Informationszwecken und sollte zur Bereinigung gelöscht werden. |