Włączanie usługi Private Link w klastrze usługi HDInsight

W tym artykule dowiesz się, jak używać usługi Azure Private Link do łączenia się z klastrem usługi HDInsight prywatnie w sieciach za pośrednictwem sieci szkieletowej firmy Microsoft. Ten artykuł stanowi rozszerzenie artykułu Ograniczanie łączności klastra w usłudze Azure HDInsight, który koncentruje się na ograniczaniu łączności publicznej. Jeśli chcesz, aby łączność publiczna z klastrami usługi HDInsight lub w klastrach usługi HDInsight i zasobach zależnych ograniczała łączność klastra, postępując zgodnie z wytycznymi w temacie Kontrolowanie ruchu sieciowego w usłudze Azure HDInsight.

Usługa Private Link może być używana w scenariuszach obejmujących wiele sieci, w których komunikacja równorzędna sieci wirtualnych nie jest dostępna ani włączona.

Uwaga

Ograniczenie łączności publicznej jest wymaganiem wstępnym dla włączenia usługi Private Link i nie powinno być uznawane za tę samą funkcję.

Używanie usługi Private Link do nawiązywania połączenia z klastrem usługi HDInsight jest funkcją opcjonalną i jest domyślnie wyłączone. Funkcja jest dostępna tylko wtedy, gdy resourceProviderConnection właściwość sieci jest ustawiona na ruch wychodzący, zgodnie z opisem w artykule Ograniczanie łączności klastra w usłudze Azure HDInsight.

Po privateLink ustawieniu jako włączonego tworzone są wewnętrzne standardowe moduły równoważenia obciążenia (SLB), a usługa Azure Private Link jest aprowizowana dla każdego modułu SLB. Usługa Private Link umożliwia dostęp do klastra usługi HDInsight z prywatnych punktów końcowych.

Pomyślnie utworzono klaster usługi Private Link, więc przedstawiliśmy je tutaj. Wykonaj każde z poniższych kroków, aby upewnić się, że wszystko jest poprawnie skonfigurowane.

Krok 1. Tworzenie wymagań wstępnych

Aby rozpocząć, wdróż następujące zasoby, jeśli jeszcze ich nie utworzono. Musisz mieć co najmniej jedną grupę zasobów, dwie sieci wirtualne i sieciową grupę zabezpieczeń, aby dołączyć ją do podsieci, w której zostanie wdrożony klaster usługi HDInsight, jak pokazano poniżej.

Type Nazwisko Purpose
Grupa zasobów hdi-privlink-rg Służy do utrzymywania wspólnych zasobów razem
Sieć wirtualna hdi-privlink-cluster-vnet Sieć wirtualna, w której zostanie wdrożony klaster
Sieć wirtualna hdi-privlink-client-vnet Sieć wirtualna, z której klienci będą łączyć się z klastrem
Sieciowa grupa zabezpieczeń hdi-privlink-cluster-vnet-nsg Domyślna sieciowa grupa zabezpieczeń zgodnie z wymaganiami wdrożenia klastra

Uwaga

Można po prostu wdrożyć sieciową grupę zabezpieczeń. Nie musimy modyfikować żadnych reguł sieciowej grupy zabezpieczeń na potrzeby wdrażania klastra.

Krok 2. Konfigurowanie podsieci usługi HDInsight

  • Wyłącz parametr privateLinkServiceNetworkPolicies w podsieci. Aby wybrać źródłowy adres IP dla usługi Private Link, wymagane jest jawne ustawienie privateLinkServiceNetworkPolicies wyłączenia w podsieci. Postępuj zgodnie z podanymi tutaj instrukcjami wyłączania zasad sieciowych dla usług Private Link.
  • Włącz punkty końcowe usługi w podsieci. W przypadku pomyślnego wdrożenia klastra usługi HDInsight usługi Private Link zalecamy dodanie Microsoft.SQLpunktów końcowych usługi Microsoft.Storage, i do Microsoft.KeyVault podsieci przed wdrożeniem klastra. Punkty końcowe usługi kierują ruch bezpośrednio z sieci wirtualnej do usługi w sieci szkieletowej platformy Microsoft Azure. Zachowywanie ruchu w sieci szkieletowej platformy Azure umożliwia kontynuowanie inspekcji i monitorowania wychodzącego ruchu internetowego z sieci wirtualnych za pośrednictwem tunelowania wymuszanego, bez wywierania wpływu na ruch usługi.

Krok 3. Wdrażanie bramy translatora adresów sieciowych lub zapory

Moduły równoważenia obciążenia w warstwie Standardowa nie zapewniają publicznej translatora adresów sieciowych wychodzących jako podstawowe moduły równoważenia obciążenia. Ponieważ klastry usługi Private Link używają standardowych modułów równoważenia obciążenia, należy zapewnić własne rozwiązanie NAT, takie jak brama translatora adresów sieciowych lub translator adresów sieciowych dostarczany przez zaporę, aby łączyć się publicznymi zależnościami usługi HDInsight ruchu wychodzącego.

Wdrażanie bramy translatora adresów sieciowych (opcja 1)

Możesz zdecydować się na użycie bramy translatora adresów sieciowych, jeśli nie chcesz konfigurować zapory ani wirtualnego urządzenia sieciowego (WUS) dla translatora adresów sieciowych. Aby rozpocząć, dodaj bramę translatora adresów sieciowych (z nowym publicznym adresem IP w sieci wirtualnej) do skonfigurowanej podsieci sieci wirtualnej. Ta brama jest odpowiedzialna za tłumaczenie prywatnego wewnętrznego adresu IP na adresy publiczne, gdy ruch musi znajdować się poza siecią wirtualną.

Aby rozpocząć pracę z podstawową konfiguracją:

  1. Wyszukaj frazę "Bramy translatora adresów sieciowych" w witrynie Azure Portal i kliknij pozycję Utwórz.

  2. Użyj następujących konfiguracji w bramie translatora adresów sieciowych. (W tym miejscu nie uwzględniamy wszystkich konfiguracji, więc można użyć wartości domyślnych).

    Config Wartość
    Nazwa bramy translatora adresów sieciowych hdi-privlink-nat-gateway
    Prefiksy publicznego adresu IP Tworzenie nowego prefiksu publicznego adresu IP
    Nazwa prefiksu publicznego adresu IP hdi-privlink-nat-gateway-prefix
    Rozmiar prefiksu publicznego adresu IP /28 (16 adresów)
    Sieć wirtualna hdi-privlink-cluster-vnet
    Nazwa podsieci domyślna
  3. Po zakończeniu wdrażania bramy translatora adresów sieciowych możesz przejść do następnego kroku.

Konfigurowanie zapory (opcja 2)

Aby rozpocząć pracę z podstawową konfiguracją:

  1. Dodaj nową podsieć o nazwie AzureFirewallSubnet do sieci wirtualnej.
  2. Użyj nowej podsieci, aby skonfigurować nową zaporę i dodać zasady zapory.
  3. Użyj prywatnego adresu IP nowej zapory jako nextHopIpAddress wartości w tabeli tras.
  4. Dodaj tabelę tras do skonfigurowanej podsieci sieci wirtualnej.

Klaster usługi HDInsight nadal potrzebuje dostępu do jego zależności wychodzących. Jeśli te zależności wychodzące nie są dozwolone, tworzenie klastra może zakończyć się niepowodzeniem. Aby uzyskać więcej informacji na temat konfigurowania zapory, zobacz Kontrolowanie ruchu sieciowego w usłudze Azure HDInsight.

Krok 4. Wdrażanie klastra łącza prywatnego

Na tym etapie wszystkie wymagania wstępne powinny być już spełnione i wszystko powinno być gotowe do wdrożenia klastra usługi Private Link. Na poniższym diagramie przedstawiono przykład konfiguracji sieci wymaganej przed utworzeniem klastra. W tym przykładzie cały ruch wychodzący jest wymuszany do usługi Azure Firewall za pośrednictwem trasy zdefiniowanej przez użytkownika. Wymagane zależności wychodzące powinny być dozwolone na zaporze przed utworzeniem klastra. W przypadku klastrów pakietu Enterprise Security komunikacja równorzędna sieci wirtualnych może zapewnić łączność sieciową z usługami Microsoft Entra Domain Services.

Diagram środowiska usługi Private Link przed utworzeniem klastra.

Tworzenie klastra

Poniższy fragment kodu JSON zawiera dwie właściwości sieci, które należy skonfigurować w szablonie usługi Azure Resource Manager, aby utworzyć prywatny klaster usługi HDInsight:

networkProperties: {
    "resourceProviderConnection": "Outbound",
    "privateLink": "Enabled"
}

Aby uzyskać kompletny szablon z wieloma funkcjami zabezpieczeń przedsiębiorstwa usługi HDInsight, w tym usługą Private Link, zobacz Szablon zabezpieczeń przedsiębiorstwa usługi HDInsight.

Aby utworzyć klaster przy użyciu programu PowerShell, zobacz przykład.

Aby utworzyć klaster przy użyciu interfejsu wiersza polecenia platformy Azure, zobacz przykład.

Krok 5.Tworzenie prywatnych punktów końcowych

Platforma Azure automatycznie tworzy usługę łącza prywatnego dla modułów równoważenia obciążenia systemu Ambari i protokołu SSH podczas wdrażania klastra usługi Private Link. Po wdrożeniu klastra utwórz dwa prywatne punkty końcowe w sieciach wirtualnych klienta: jeden dla systemu Ambari, a drugi na potrzeby dostępu za pomocą protokołu SSH. Następnie połącz je z usługami łączy prywatnych, które zostały utworzone w ramach wdrożenia klastra.

Aby utworzyć prywatne punkty końcowe:

  1. Otwórz witrynę Azure Portal i wyszukaj ciąg "Private link".

  2. W wynikach kliknij ikonę Link prywatny.

  3. Kliknij pozycję "Utwórz prywatny punkt końcowy" i użyj następujących konfiguracji, aby skonfigurować prywatny punkt końcowy systemu Ambari:

    Config Wartość
    Nazwisko hdi-privlink-cluster
    Typ zasobu Microsoft.Network/privateLinkServices
    Zasób gateway-* (Ta wartość powinna być zgodna z identyfikatorem wdrożenia usługi HDI klastra, na przykład gateway-4eafe3a2a67e4cd88762c22a55fe4654)
    Sieć wirtualna hdi-privlink-client-vnet
    Podsieć domyślna

    Diagram karty podstawowej usługi Private Link.Diagram karty zasób usługi Private Link.Diagram karty sieci wirtualnej usługi Private Link.Diagram karty punkt końcowy dns usługi Private Link.Diagram karty tagu usługi Private Link.Diagram karty recenzji usługi Private Link.

  4. Powtórz ten proces, aby utworzyć kolejny prywatny punkt końcowy dla dostępu SSH przy użyciu następujących konfiguracji:

    Config Wartość
    Nazwisko hdi-privlink-cluster-ssh
    Typ zasobu Microsoft.Network/privateLinkServices
    Zasób headnode-* (Ta wartość powinna być zgodna z identyfikatorem wdrożenia usługi HDI klastra, na przykład headnode-4eafe3a2a67e4cd88762c22a55fe4654)
    Sieć wirtualna hdi-privlink-client-vnet
    Podsieć domyślna

Ważne

Jeśli używasz klastra Platformy KafkaRestProxy HDInsight, wykonaj te dodatkowe kroki, aby włączyć prywatne punkty końcowe.

Po utworzeniu prywatnych punktów końcowych należy wykonać tę fazę instalacji. Jeśli nie zanotujesz prywatnych adresów IP przypisanych do punktów końcowych, wykonaj poniższe kroki:

  1. Otwórz sieć wirtualną klienta w witrynie Azure Portal.
  2. Kliknij kartę "Prywatne punkty końcowe".
  3. Powinny zostać wyświetlone zarówno interfejsy ambari, jak i ssh Network.
  4. Kliknij każdy z nich i przejdź do bloku "Konfiguracja DNS", aby wyświetlić prywatny adres IP.
  5. Zanotuj te adresy IP, ponieważ są one wymagane do nawiązania połączenia z klastrem i prawidłowego skonfigurowania systemu DNS.

Krok 6: Konfigurowanie systemu DNS do połączeń za pomocą prywatnych punktów końcowych

Aby uzyskać dostęp do klastrów prywatnych, można skonfigurować rozpoznawanie nazw DNS za pośrednictwem prywatnych stref DNS. Wpisy usługi Private Link utworzone w publicznej strefie azurehdinsight.net DNS zarządzanej przez platformę Azure są następujące:

<clustername>        CNAME    <clustername>.privatelink
<clustername>-int    CNAME    <clustername>-int.privatelink
<clustername>-ssh    CNAME    <clustername>-ssh.privatelink

Na poniższej ilustracji przedstawiono przykład prywatnych wpisów DNS skonfigurowanych w celu umożliwienia dostępu do klastra z sieci wirtualnej, która nie jest równorzędna lub nie ma bezpośredniego widoku do klastra. Strefę prywatną usługi Azure DNS można użyć do zastąpienia *.privatelink.azurehdinsight.net w pełni kwalifikowanych nazw domen (FQDN) i rozpoznawania prywatnych adresów IP punktów końcowych w sieci klienta. Konfiguracja jest dostępna <clustername>.azurehdinsight.net tylko w tym przykładzie, ale jest również rozszerzana na inne punkty końcowe klastra.

Diagram architektury usługi Private Link.

Aby skonfigurować rozpoznawanie nazw DNS za pośrednictwem strefy Prywatna strefa DNS:

  1. Utwórz strefę usługi Azure Prywatna strefa DNS. (W tym miejscu nie uwzględniamy wszystkich konfiguracji, wszystkie inne konfiguracje pozostają w wartościach domyślnych)

    Config Wartość
    Nazwisko privatelink.azurehdinsight.net

    Diagram prywatnej strefy DNS.

  2. Dodaj zestaw rekordów do strefy Prywatna strefa DNS dla systemu Ambari.

    Config Wartość
    Nazwisko YourPrivateLinkClusterName
    Typ A — rekord aliasu na adres IPv4
    TTL 1
    Jednostka TTL Godziny
    Adres IP Prywatny adres IP prywatnego punktu końcowego dla dostępu systemu Ambari

    Diagram dodawania rekordu prywatnej strefy DNS.

  3. Dodaj zestaw rekordów do strefy Prywatna strefa DNS dla protokołu SSH.

    Config Wartość
    Nazwisko YourPrivateLinkClusterName-ssh
    Typ A — rekord aliasu na adres IPv4
    TTL 1
    Jednostka TTL Godziny
    Adres IP Prywatny adres IP prywatnego punktu końcowego na potrzeby dostępu SSH

    Diagram strefy DNS łącza prywatnego dodaj rekord SSH.

Ważne

Jeśli używasz klastra usługi HDInsight platformy KafkaRestProxy, wykonaj następujące dodatkowe kroki, aby skonfigurować usługę DNS w celu nawiązania połączenia za pośrednictwem prywatnego punktu końcowego.

  1. Skojarz prywatną strefę DNS z siecią wirtualną klienta, dodając łącze sieci wirtualnej.

    1. Otwórz prywatną strefę DNS w witrynie Azure Portal.
    2. Kliknij kartę "Łącza sieci wirtualnej".
    3. Kliknij przycisk "Dodaj".
    4. Podaj szczegóły: Nazwa łącza, Subskrypcja i Sieć wirtualna (sieć wirtualna klienta)
    5. Kliknij przycisk Zapisz.

    Diagram łącza sieci wirtualnej.

Krok 7. Sprawdzanie łączności klastra

Ostatnim krokiem jest przetestowanie łączności z klastrem. Ponieważ ten klaster jest izolowany lub prywatny, nie możemy uzyskać dostępu do klastra przy użyciu publicznego adresu IP lub nazwy FQDN. Zamiast tego mamy kilka opcji:

  • Konfigurowanie dostępu sieci VPN do sieci wirtualnej klienta z sieci lokalnej
  • Wdrażanie maszyny wirtualnej w sieci wirtualnej klienta i uzyskiwanie dostępu do klastra z tej maszyny wirtualnej

W tym przykładzie wdrożymy maszynę wirtualną w sieci wirtualnej klienta przy użyciu następującej konfiguracji w celu przetestowania łączności.

Config Wartość
Virtual machine name hdi-privlink-client-vm
Obraz Windows 10 Pro, wersja 2004 — Gen1
Publiczne porty ruchu przychodzącego Zezwalaj na wybrane porty
Wybierz porty wejściowe RDP (3389)
Potwierdzam, że mam kwalifikującą się licencję systemu Windows 10... Zaznaczone
Sieć wirtualna hdi-privlink-client-vnet
Podsieć domyślna

Po wdrożeniu maszyny wirtualnej klienta można przetestować dostęp zarówno do systemu Ambari, jak i protokołu SSH.

Aby przetestować dostęp systemu Ambari:

  1. Otwórz przeglądarkę internetową na maszynie wirtualnej.
  2. Przejdź do standardowej nazwy FQDN klastra: https://<clustername>.azurehdinsight.net
  3. Jeśli interfejs użytkownika systemu Ambari zostanie załadowany, konfiguracja jest poprawna dla dostępu systemu Ambari.

Aby przetestować dostęp do protokołu SSH:

  1. Otwórz wiersz polecenia, aby uzyskać okno terminalu.
  2. W oknie terminalu spróbuj nawiązać połączenie z klastrem przy użyciu protokołu SSH: ssh sshuser@<clustername>.azurehdinsight.net (Zastąp ciąg "sshuser" użytkownikiem SSH utworzonym dla klastra)
  3. Jeśli możesz nawiązać połączenie, konfiguracja jest poprawna dla dostępu za pomocą protokołu SSH.

Zarządzanie prywatnymi punktami końcowymi dla usługi HDInsight

Możesz użyć prywatnych punktów końcowych dla klastrów usługi Azure HDInsight, aby umożliwić klientom w sieci wirtualnej bezpieczny dostęp do klastra za pośrednictwem usługi Private Link. Ruch sieciowy między klientami w sieci wirtualnej a klastrem usługi HDInsight przechodzi przez sieć szkieletową firmy Microsoft, eliminując narażenie z publicznego Internetu.

Diagram przedstawiający środowisko zarządzania prywatnymi punktami końcowymi.

Użytkownik usługi Private Link (na przykład Azure Data Factory) może wybrać jedną z dwóch metod zatwierdzania połączeń:

  • Automatyczne: jeśli użytkownik usługi ma uprawnienia kontroli dostępu opartej na rolach (RBAC) na platformie Azure w zasobie usługi HDInsight, użytkownik może wybrać metodę automatycznego zatwierdzania. W takim przypadku, gdy żądanie osiągnie zasób usługi HDInsight, nie jest wymagana żadna akcja z zasobu usługi HDInsight, a połączenie zostanie automatycznie zatwierdzone.
  • Ręczne: jeśli użytkownik usługi nie ma uprawnień RBAC platformy Azure w zasobie usługi HDInsight, użytkownik może wybrać metodę ręcznego zatwierdzania. W takim przypadku żądanie połączenia jest wyświetlane w zasobach usługi HDInsight jako Oczekujące. Aby można było ustanowić połączenia, zasób usługi HDInsight musi ręcznie zatwierdzić żądanie.

Aby zarządzać prywatnymi punktami końcowymi, w widoku klastra w witrynie Azure Portal przejdź do sekcji Sieć w obszarze Zabezpieczenia i sieć. W tym miejscu można wyświetlić wszystkie istniejące połączenia, stany połączenia i szczegóły prywatnego punktu końcowego.

Możesz również zatwierdzić, odrzucić lub usunąć istniejące połączenia. Podczas tworzenia połączenia prywatnego można określić, z którymi podźródłami usługi HDInsight (na przykład bramą lub węzłem głównym), z którymi chcesz się połączyć.

W poniższej tabeli przedstawiono różne akcje zasobów usługi HDInsight i wynikowe stany połączenia dla prywatnych punktów końcowych. Zasób usługi HDInsight może również zmienić stan połączenia prywatnego punktu końcowego w późniejszym czasie bez interwencji użytkownika. Akcja spowoduje zaktualizowanie stanu punktu końcowego po stronie konsumenta.

Akcja dostawcy usług Stan prywatnego punktu końcowego odbiorcy usługi Opis
None Oczekiwanie Połączenie ion jest tworzony ręcznie i oczekuje na zatwierdzenie przez właściciela zasobu usługi Private Link.
Zatwierdzanie Zatwierdzona Połączenie ion został automatycznie lub ręcznie zatwierdzony i jest gotowy do użycia.
Odrzuć Odrzucona Połączenie ion został odrzucony przez właściciela zasobu usługi Private Link.
Usuń Odłączony Połączenie ion został usunięty przez właściciela zasobu usługi Private Link. Prywatny punkt końcowy staje się informacyjny i powinien zostać usunięty w celu oczyszczenia.

Następne kroki