Abilitare collegamento privato in un cluster HDInsight

Questo articolo illustra come usare collegamento privato di Azure per connettersi a un cluster HDInsight privatamente tra reti tramite la rete backbone Microsoft. Questo articolo è un'estensione dell'articolo Limitare la connettività del cluster in Azure HDInsight, che è incentrata sulla limitazione della connettività pubblica. Se si vuole la connettività pubblica a o all'interno dei cluster HDInsight e delle risorse dipendenti, è consigliabile limitare la connettività del cluster seguendo le linee guida in Controllare il traffico di rete in Azure HDInsight.

collegamento privato possono essere usati in scenari tra reti in cui il peering di rete virtuale non è disponibile o abilitato.

Nota

La limitazione della connettività pubblica è un prerequisito per l'abilitazione di collegamento privato e non deve essere considerata la stessa funzionalità.

L'uso di collegamento privato per connettersi a un cluster HDInsight è una funzionalità facoltativa ed è disabilitata per impostazione predefinita. La funzionalità è disponibile solo quando la proprietà di rete è impostata su in uscita, come descritto nell'articolo Limitare la resourceProviderConnection connettività del cluster in Azure HDInsight.

Quando privateLink viene impostato come abilitato, vengono creati servizi di bilanciamento del carico standard interni e viene effettuato il provisioning di un servizio collegamento privato di Azure per ogni bilanciamento del carico software. Il servizio collegamento privato consente di accedere al cluster HDInsight da endpoint privati.

La creazione di un cluster collegamento privato richiede molti passaggi, quindi sono stati descritti qui. Seguire ognuno dei passaggi seguenti per assicurarsi che tutto sia configurato correttamente.

Passaggio 1: Creare i prerequisiti

Per iniziare, distribuire le risorse seguenti se non sono già state create. È necessario avere almeno un gruppo di risorse, due reti virtuali e un gruppo di sicurezza di rete da collegare alla subnet in cui verrà distribuito il cluster HDInsight, come illustrato di seguito.

Type Nome Scopo
Gruppo di risorse hdi-privlink-rg Usato per tenere insieme le risorse comuni
Rete virtuale hdi-privlink-cluster-vnet Rete virtuale in cui verrà distribuito il cluster
Rete virtuale hdi-privlink-client-vnet Rete virtuale da cui i client si connetteranno al cluster
Gruppo di sicurezza di rete hdi-privlink-cluster-vnet-nsg Gruppo di sicurezza di rete predefinito come richiesto per la distribuzione del cluster

Nota

Il gruppo di sicurezza di rete (NSG) può essere semplicemente distribuito, non è necessario modificare le regole del gruppo di sicurezza di rete per la distribuzione del cluster.

Passaggio 2: Configurare la subnet HDInsight

  • Disabilitare privateLinkServiceNetworkPolicies nella subnet. Per scegliere un indirizzo IP di origine per il servizio collegamento privato, è necessaria un'impostazione privateLinkServiceNetworkPolicies di disabilitazione esplicita nella subnet. Seguire le istruzioni qui per disabilitare i criteri di rete per i servizi di collegamento privato.
  • Abilitare gli endpoint di servizio nella subnet. Per una corretta distribuzione di un cluster HDInsight collegamento privato, è consigliabile aggiungere gli Microsoft.SQLendpoint di servizio , Microsoft.Storagee Microsoft.KeyVault alla subnet prima della distribuzione del cluster. Gli endpoint di servizio instradano il traffico direttamente dalla rete virtuale al servizio nella rete backbone di Microsoft Azure. Mantenendo il traffico nella rete backbone di Azure è possibile continuare a monitorare e verificare il traffico Internet in uscita dalle reti virtuali, tramite il tunneling forzato, senza conseguenze per il traffico del servizio.

Passaggio 3: Distribuire il gateway NAT o il firewall

I servizi di bilanciamento del carico Standard non forniscono automaticamente NAT pubblico in uscita perché i servizi di bilanciamento del carico di base. Poiché i cluster di collegamento privato usano servizi di bilanciamento del carico standard, è necessario fornire una soluzione NAT personalizzata, ad esempio un gateway NAT o un NAT fornito dal firewall, per connettersi alle dipendenze HDInsight pubbliche e in uscita.

Distribuire un gateway NAT (opzione 1)

È possibile scegliere di usare un gateway NAT se non si vuole configurare un firewall o un'appliance virtuale di rete per NAT. Per iniziare, aggiungere un gateway NAT (con un nuovo indirizzo IP pubblico nella rete virtuale) alla subnet configurata della rete virtuale. Questo gateway è responsabile della conversione dell'indirizzo IP interno privato in indirizzi pubblici quando il traffico deve uscire dalla rete virtuale.

Per un'installazione di base per iniziare:

  1. Cercare "Gateway NAT" nella portale di Azure e fare clic su Crea.

  2. Usare le configurazioni seguenti nel gateway NAT. In questo caso non sono incluse tutte le configurazioni, quindi è possibile usare i valori predefiniti.

    Config Valore
    Nome del gateway NAT hdi-privlink-nat-gateway
    Prefissi per indirizzi IP pubblici Creare un nuovo prefisso IP pubblico
    Nome prefisso IP pubblico hdi-privlink-nat-gateway-prefix
    Dimensioni del prefisso IP pubblico /28 (16 indirizzi)
    Rete virtuale hdi-privlink-cluster-vnet
    Nome subnet impostazione predefinita
  3. Al termine della distribuzione del gateway NAT, si è pronti per passare al passaggio successivo.

Configurare un firewall (opzione 2)

Per un'installazione di base per iniziare:

  1. Aggiungere una nuova subnet denominata AzureFirewallSubnet alla rete virtuale.
  2. Usare la nuova subnet per configurare un nuovo firewall e aggiungere i criteri del firewall.
  3. Usare l'indirizzo IP privato del nuovo firewall come nextHopIpAddress valore nella tabella di route.
  4. Aggiungere la tabella di route alla subnet configurata della rete virtuale.

Il cluster HDInsight deve comunque accedere alle dipendenze in uscita. Se queste dipendenze in uscita non sono consentite, la creazione del cluster potrebbe non riuscire. Per altre informazioni sulla configurazione di un firewall, vedere Controllare il traffico di rete in Azure HDInsight.

Passaggio 4: Distribuire un cluster di collegamento privato

A questo punto, tutti i prerequisiti dovrebbero essere stati rispettati e si è pronti per distribuire il cluster di collegamento privato. Il diagramma seguente illustra un esempio della configurazione di rete necessaria prima di creare il cluster. In questo esempio, tutto il traffico in uscita viene forzato a Firewall di Azure tramite una route definita dall'utente. Le dipendenze in uscita necessarie devono essere consentite nel firewall prima della creazione del cluster. Per i cluster Enterprise Security Package, il peering di rete virtuale può fornire la connettività di rete a Microsoft Entra Domain Services.

Diagramma dell'ambiente collegamento privato prima della creazione del cluster.

Creare il cluster

Il frammento di codice JSON seguente include le due proprietà di rete che è necessario configurare nel modello di Azure Resource Manager per creare un cluster HDInsight privato:

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

Per un modello completo con molte delle funzionalità di sicurezza aziendali di HDInsight, tra cui collegamento privato, vedere modello di sicurezza aziendale HDInsight.

Per creare un cluster usando PowerShell, vedere l'esempio.

Per creare un cluster usando l'interfaccia della riga di comando di Azure, vedere l'esempio.

Passaggio 5: Creare gli endpoint privati

Azure crea automaticamente un servizio di collegamento privato per i servizi di bilanciamento del carico Ambari e SSH durante la distribuzione del cluster di collegamento privato. Dopo la distribuzione del cluster, è necessario creare due endpoint privati nella rete virtuale client, uno per Ambari e uno per l'accesso SSH. Collegarli quindi ai servizi di collegamento privato creati nell'ambito della distribuzione del cluster.

Per creare gli endpoint privati:

  1. Aprire il portale di Azure e cercare "Collegamento privato".

  2. Nei risultati fare clic sull'icona Collegamento privato.

  3. Fare clic su "Crea endpoint privato" e usare le configurazioni seguenti per configurare l'endpoint privato Ambari:

    Config valore
    Nome hdi-privlink-cluster
    Tipo di risorsa Microsoft.Network/privateLinkServices
    Conto risorse gateway-* (questo valore deve corrispondere all'ID di distribuzione HDI del cluster, ad esempio gateway-4eafe3a2a67e4cd88762c22a55fe4654)
    Rete virtuale hdi-privlink-client-vnet
    Subnet impostazione predefinita

    Diagramma della scheda di base collegamento privato.Diagramma della scheda della risorsa collegamento privato.Diagramma della scheda collegamento privato rete virtuale.Diagramma della scheda del punto finale dns collegamento privato.Diagramma della scheda tag collegamento privato.Diagramma della collegamento privato scheda revisione.

  4. Ripetere il processo per creare un altro endpoint privato per l'accesso SSH usando le configurazioni seguenti:

    Config valore
    Nome hdi-privlink-cluster-ssh
    Tipo di risorsa Microsoft.Network/privateLinkServices
    Conto risorse headnode-* (questo valore deve corrispondere all'ID di distribuzione HDI del cluster, ad esempio headnode-4eafe3a2a67e4cd88762c22a55fe4654)
    Rete virtuale hdi-privlink-client-vnet
    Subnet impostazione predefinita

Importante

Se si usa il cluster HDInsight KafkaRestProxy, seguire questa procedura aggiuntiva per abilitare gli endpoint privati.

Dopo aver creato gli endpoint privati, questa fase della configurazione viene completata. Se non è stata creata una nota degli indirizzi IP privati assegnati agli endpoint, seguire questa procedura:

  1. Aprire la rete virtuale del client nella portale di Azure.
  2. Fare clic sulla scheda "Endpoint privati".
  3. Verranno visualizzate entrambe le interfacce di rete Ambari e SSH elencate.
  4. Fare clic su ognuno di essi e passare al pannello "Configurazione DNS" per visualizzare l'indirizzo IP privato.
  5. Prendere nota di questi indirizzi IP perché sono necessari per connettersi al cluster e configurare correttamente il DNS.

Passaggio 6: Configurare DNS per connettersi agli endpoint privati

Per accedere ai cluster privati, è possibile configurare la risoluzione DNS tramite zone DNS private. Le collegamento privato voci create nella zona azurehdinsight.net DNS pubblica gestita da Azure sono le seguenti:

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

L'immagine seguente mostra un esempio delle voci DNS private configurate per abilitare l'accesso a un cluster da una rete virtuale che non è con peering o non ha una linea diretta di visualizzazione al cluster. È possibile usare una zona privata DNS di Azure per eseguire l'override *.privatelink.azurehdinsight.net dei nomi di dominio completi (FQDN) e risolvere gli indirizzi IP degli endpoint privati nella rete del client. La configurazione è solo per <clustername>.azurehdinsight.net nell'esempio, ma si estende anche ad altri endpoint del cluster.

Diagramma dell'architettura collegamento privato.

Per configurare la risoluzione DNS tramite una zona DNS privato:

  1. Creare una zona DNS privata di Azure. (Non sono incluse tutte le configurazioni qui, tutte le altre configurazioni vengono lasciate ai valori predefiniti)

    Config valore
    Nome privatelink.azurehdinsight.net

    Diagramma della zona DNS privato.

  2. Aggiungere un set di record alla zona DNS privato per Ambari.

    Config valore
    Nome YourPrivateLinkClusterName
    Type A - Record alias nell'indirizzo IPv4
    TTL 1
    Unità TTL Ore
    Indirizzo IP IP privato dell'endpoint privato per l'accesso ad Ambari

    Diagramma dell'aggiunta di record della zona DNS privata.

  3. Aggiungere un set di record alla zona DNS privato per SSH.

    Config valore
    Nome YourPrivateLinkClusterName-ssh
    Type A - Record alias nell'indirizzo IPv4
    TTL 1
    Unità TTL Ore
    Indirizzo IP IP privato dell'endpoint privato per l'accesso SSH

    Diagramma della zona DNS del collegamento privato per aggiungere un record SSH.

Importante

Se si usa il cluster HDInsight KafkaRestProxy, seguire questa procedura aggiuntiva per configurare DNS per la connessione tramite endpoint privato.

  1. Associare la zona DNS privata alla rete virtuale del client aggiungendo un collegamento Rete virtuale.

    1. Aprire la zona DNS privata nel portale di Azure.
    2. Fare clic sulla scheda "Collegamenti di rete virtuale".
    3. Fare clic sul pulsante "Aggiungi".
    4. Compilare i dettagli: Nome del collegamento, Sottoscrizione e Rete virtuale (rete virtuale del client)
    5. Fare clic su Salva.

    Diagramma del collegamento alla rete virtuale.

Passaggio 7: Controllare la connettività del cluster

L'ultimo passaggio consiste nel testare la connettività al cluster. Poiché questo cluster è isolato o privato, non è possibile accedervi usando qualsiasi nome di dominio completo o IP pubblico. Sono invece disponibili due opzioni:

  • Configurare l'accesso VPN alla rete virtuale client dalla rete locale
  • Distribuire una macchina virtuale nella rete virtuale client e accedere al cluster da questa macchina virtuale

Per questo esempio si distribuirà una macchina virtuale nella rete virtuale client usando la configurazione seguente per testare la connettività.

Config Valore
Virtual machine name hdi-privlink-client-vm
Immagine Windows 10 Pro, versione 2004 - Gen1
Porte in ingresso pubbliche Consenti porte selezionate
Selezionare le porte in ingresso RDP (3389)
Conferma di avere una licenza di Windows 10 idonea... Selezionato
Rete virtuale hdi-privlink-client-vnet
Subnet impostazione predefinita

Dopo aver distribuito la macchina virtuale client, è possibile testare sia L'accesso Ambari che SSH.

Per testare l'accesso ad Ambari:

  1. Aprire un Web browser nella macchina virtuale.
  2. Passare al nome di dominio completo normale del cluster: https://<clustername>.azurehdinsight.net
  3. Se l'interfaccia utente di Ambari viene caricata, la configurazione è corretta per l'accesso ad Ambari.

Per testare l'accesso SSH:

  1. Aprire un prompt dei comandi per ottenere una finestra del terminale.
  2. Nella finestra del terminale provare a connettersi al cluster con SSH: ssh sshuser@<clustername>.azurehdinsight.net (sostituire "sshuser" con l'utente ssh creato per il cluster)
  3. Se è possibile connettersi, la configurazione è corretta per l'accesso SSH.

Gestire gli endpoint privati per HDInsight

È possibile usare endpoint privati per i cluster Azure HDInsight per consentire ai client in una rete virtuale di accedere in modo sicuro al cluster tramite collegamento privato. Il traffico di rete tra i client nella rete virtuale e il cluster HDInsight attraversa la rete backbone Microsoft, eliminando l'esposizione dalla rete Internet pubblica.

Diagramma dell'esperienza di gestione degli endpoint privati.

Un consumer del servizio collegamento privato (ad esempio, Azure Data Factory) può scegliere tra due metodi di approvazione della connessione:

  • Automatico: se il consumer del servizio dispone di autorizzazioni di controllo degli accessi in base al ruolo di Azure per la risorsa HDInsight, il consumer può scegliere il metodo di approvazione automatica. In questo caso, quando la richiesta raggiunge la risorsa HDInsight, non è necessaria alcuna azione dalla risorsa HDInsight e la connessione viene approvata automaticamente.
  • Manuale: se il consumer del servizio non dispone delle autorizzazioni di Controllo degli accessi in base al ruolo di Azure per la risorsa HDInsight, il consumer può scegliere il metodo di approvazione manuale. In questo caso, la richiesta di connessione viene visualizzata nelle risorse HDInsight come In sospeso. La risorsa HDInsight deve approvare manualmente la richiesta prima di poter stabilire le connessioni.

Per gestire gli endpoint privati, nella visualizzazione cluster nella portale di Azure passare alla sezione Rete in Sicurezza e rete. Qui è possibile visualizzare tutte le connessioni esistenti, gli stati di connessione e i dettagli dell'endpoint privato.

È anche possibile approvare, rifiutare o rimuovere connessioni esistenti. Quando si crea una connessione privata, è possibile specificare a quale sottorisorsa HDInsight (ad esempio, gateway o nodo head) si vuole connettersi.

La tabella seguente illustra le varie azioni delle risorse HDInsight e gli stati di connessione risultanti per gli endpoint privati. Una risorsa HDInsight può anche modificare lo stato di connessione della connessione dell'endpoint privato in un secondo momento senza l'intervento del consumer. L'azione aggiornerà lo stato dell'endpoint sul lato consumer.

Azione del provider di servizi Stato dell'endpoint privato del consumer del servizio Descrizione
Nessuna In sospeso La connessione viene creata manualmente ed è in attesa di approvazione da parte del proprietario della risorsa collegamento privato.
Approvazione Approvato La connessione è stata approvata automaticamente o manualmente ed è pronta per essere usata.
Rifiuto Rifiutato La connessione è stata rifiutata dal proprietario della risorsa collegamento privato.
Rimuovi Disconnesso La connessione è stata rimossa dal proprietario della risorsa collegamento privato. L'endpoint privato diventa informativo e deve essere eliminato a scopo di pulizia.

Passaggi successivi