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.
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.
- 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.SQL
endpoint di servizio ,Microsoft.Storage
eMicrosoft.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.
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.
È 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:
Cercare "Gateway NAT" nella portale di Azure e fare clic su Crea.
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 Al termine della distribuzione del gateway NAT, si è pronti per passare al passaggio successivo.
Per un'installazione di base per iniziare:
- Aggiungere una nuova subnet denominata AzureFirewallSubnet alla rete virtuale.
- Usare la nuova subnet per configurare un nuovo firewall e aggiungere i criteri del firewall.
- Usare l'indirizzo IP privato del nuovo firewall come
nextHopIpAddress
valore nella tabella di route. - 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.
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.
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.
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:
Aprire il portale di Azure e cercare "Collegamento privato".
Nei risultati fare clic sull'icona Collegamento privato.
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 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:
- Aprire la rete virtuale del client nella portale di Azure.
- Fare clic sulla scheda "Endpoint privati".
- Verranno visualizzate entrambe le interfacce di rete Ambari e SSH elencate.
- Fare clic su ognuno di essi e passare al pannello "Configurazione DNS" per visualizzare l'indirizzo IP privato.
- Prendere nota di questi indirizzi IP perché sono necessari per connettersi al cluster e configurare correttamente il DNS.
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.
Per configurare la risoluzione DNS tramite una zona DNS privato:
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 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 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
Importante
Se si usa il cluster HDInsight KafkaRestProxy, seguire questa procedura aggiuntiva per configurare DNS per la connessione tramite endpoint privato.
Associare la zona DNS privata alla rete virtuale del client aggiungendo un collegamento Rete virtuale.
- Aprire la zona DNS privata nel portale di Azure.
- Fare clic sulla scheda "Collegamenti di rete virtuale".
- Fare clic sul pulsante "Aggiungi".
- Compilare i dettagli: Nome del collegamento, Sottoscrizione e Rete virtuale (rete virtuale del client)
- Fare clic su Salva.
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:
- Aprire un Web browser nella macchina virtuale.
- Passare al nome di dominio completo normale del cluster:
https://<clustername>.azurehdinsight.net
- Se l'interfaccia utente di Ambari viene caricata, la configurazione è corretta per l'accesso ad Ambari.
Per testare l'accesso SSH:
- Aprire un prompt dei comandi per ottenere una finestra del terminale.
- 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) - Se è possibile connettersi, la configurazione è corretta per l'accesso SSH.
È 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.
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. |