Creare e configurare un endpoint privato per IoT Central
È possibile connettere i dispositivi all'applicazione IoT Central usando un endpoint privato in un'Rete virtuale di Azure.
Gli endpoint privati usano indirizzi IP privati da uno spazio indirizzi di rete virtuale per connettere i dispositivi privatamente all'applicazione IoT Central. Il traffico di rete tra dispositivi nella rete virtuale e la piattaforma IoT attraversa la rete virtuale e un collegamento privato nella rete backbone Microsoft, eliminando l'esposizione su Internet pubblico. Questo articolo illustra come creare un endpoint privato per l'applicazione IoT Central.
Prerequisiti
- Una sottoscrizione di Azure attiva. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
- Applicazione IoT Central. Per altre informazioni, vedere Creare un'applicazione IoT Central.
- Una rete virtuale nella sottoscrizione di Azure. Per altre informazioni, vedere Creare una rete virtuale. Per completare i passaggi descritti in questa guida, non è necessario un host Bastion o macchine virtuali.
Creare un endpoint privato
Esistono diversi modi per creare un endpoint privato per l'applicazione IoT Central:
- Usare il portale di Azure per creare direttamente una risorsa endpoint privato. Usare questa opzione se non si ha accesso all'applicazione IoT Central che richiede l'endpoint privato.
- Creare un endpoint privato in un'applicazione IoT Central esistente
Per creare un endpoint privato in un'applicazione IoT Central esistente:
Nella portale di Azure passare all'applicazione e quindi selezionare Rete.
Selezionare la scheda Connessioni endpoint privato e quindi selezionare + Endpoint privato.
Nella scheda Informazioni di base immettere un nome e selezionare un'area per l'endpoint privato. Selezionare quindi Avanti: Risorsa.
La scheda Risorsa viene popolata automaticamente. Selezionare Avanti: Rete virtuale.
Nella scheda Rete virtuale selezionare la rete virtuale e la subnet in cui si vuole distribuire l'endpoint privato.
Nella stessa scheda, nella sezione Configurazione IP privato selezionare Alloca dinamicamente l'indirizzo IP.
Selezionare Avanti: DNS.
Nella scheda DNS selezionare Sì per Integrazione con la zona DNS privata. Il DNS privato risolve tutti gli endpoint necessari in indirizzi IP privati nella rete virtuale:
Nota
A causa delle funzionalità di scalabilità automatica in IoT Central, è consigliabile usare l'opzione di integrazione DNS privato, se possibile. Se per qualche motivo non è possibile usare questa opzione, vedere Usare un server DNS personalizzato.
Al termine, selezionare Avanti: Tag.
Nella scheda Tag configurare i tag necessari e quindi selezionare Avanti: Rivedi e crea.
Esaminare i dettagli di configurazione e quindi selezionare Crea per creare la risorsa dell'endpoint privato.
Verificare la creazione di endpoint privati
Al termine della creazione dell'endpoint privato, è possibile accedervi nel portale di Azure.
Per visualizzare tutti gli endpoint privati creati per l'applicazione:
Nella portale di Azure passare all'applicazione IoT Central e quindi selezionare Rete.
Selezionare la scheda Connessioni endpoint privato. La tabella mostra tutti gli endpoint privati creati per l'applicazione.
Usare un server DNS personalizzato
In alcune situazioni, potrebbe non essere possibile eseguire l'integrazione con la zona DNS privata della rete virtuale. Ad esempio, è possibile usare il proprio server DNS o creare record DNS usando i file host nelle macchine virtuali. Questa sezione descrive come accedere alle zone DNS.
Installare chocolatey.
Installare ARMClient:
choco install armclient
Accedere con ARMClient:
armclient login
Usare il comando seguente per ottenere le zone DNS private per l'applicazione IoT Central. Sostituire i segnaposto con i dettagli per l'applicazione IoT Central:
armclient GET /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.IoTCentral/IoTApps/<AppName>/privateLinkResources?api-version=2021-11-01-preview
Controllare la risposta. Le zone DNS necessarie si trovano nella
requiredZoneNames
matrice nel payload della risposta:{ "value": [ { "id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.IoTCentral/IoTApps/<AppName>/privateLinkResources/iotApp", "name": "ioTApp", "type": "Microsoft.IoTCentral/IoTApps/privateLinkResources", "location": "<the region of your application>", "properties": { "groupId": "iotApp", "requiredMembers":[ "<IoTCentral Name>", "<DPS Name>", "<IoTHub1 Name>", "<IoTHub2 Name>", "<EH1 Name>", "<EH2 Name>"], "requiredZoneNames": [ "privatelink.azureiotcentral.com", "privatelink.azure-devices.net", "privatelink.servicebus.windows.net", "privatelink.azure-devices-provisioning.net"], "provisioningState": "Succeeded"} } ] }
Nella portale di Azure passare all'endpoint privato e selezionare Configurazione DNS. In questa pagina è possibile trovare le informazioni necessarie per il mapping degli indirizzi IP al nome DNS.
Avviso
Queste informazioni consentono di popolare il server DNS personalizzato con i record necessari. Se possibile, è consigliabile integrarsi con le zone DNS private della rete virtuale e non configurare il proprio server DNS personalizzato. Gli endpoint privati per le applicazioni IoT Central differiscono da altri servizi PaaS di Azure. In alcune situazioni, ad esempio la scalabilità automatica di IoT Central, IoT Central aumenta il numero di hub IoT accessibili tramite l'endpoint privato. Se si sceglie di popolare il proprio server DNS personalizzato, è responsabilità dell'utente aggiornare i record DNS ogni volta che IoT Central viene ridimensionato automaticamente e successivamente rimuovere i record quando il numero di hub IoT aumenta.
Limitare l'accesso pubblico
Per limitare l'accesso pubblico per i dispositivi a IoT Central, disattivare l'accesso dagli endpoint pubblici. Dopo aver disattivato l'accesso pubblico, i dispositivi non possono connettersi a IoT Central dalle reti pubbliche e devono usare un endpoint privato:
Nella portale di Azure passare all'applicazione IoT Central e quindi selezionare Rete.
Nella scheda Accesso pubblico selezionare Disabilitato per l'accesso alla rete pubblica.
Facoltativamente, è possibile definire un elenco di indirizzi IP/intervalli che possono connettersi all'endpoint pubblico dell'applicazione IoT Central.
Seleziona Salva.
Suggerimento
Se si sceglie di definire un elenco di indirizzi IP/intervalli che possono connettersi all'endpoint pubblico dell'applicazione IoT Central, assicurarsi di includere l'indirizzo IP di qualsiasi proxy usato dai dispositivi per connettersi all'applicazione IoT Central.
Connettersi a un endpoint privato
Quando si disabilita l'accesso alla rete pubblica per l'applicazione IoT Central, i dispositivi non sono in grado di connettersi all'endpoint globale del servizio Device Provisioning.When you disable public network access for your IoT Central application, your devices't able to connect to the Device Provisioning Service (DPS) global endpoint. Ciò si verifica perché l'unico FQDN per DPS ha un indirizzo IP diretto nella rete virtuale. L'endpoint globale non è ora raggiungibile.
Quando si configura un endpoint privato per l'applicazione IoT Central, l'endpoint del servizio IoT Central viene aggiornato in modo da riflettere l'endpoint dps diretto.
Aggiornare il codice del dispositivo per usare l'endpoint dps diretto.
Procedure consigliate
Non usare gli URL del sottodominio del collegamento privato per connettere i dispositivi a IoT Central. Usare sempre l'URL dps visualizzato nell'applicazione IoT Central dopo aver creato l'endpoint privato.
Usare le zone DNS private fornite da Azure per la gestione DNS. Evitare di usare il proprio server DNS perché è necessario aggiornare costantemente la configurazione DNS per mantenere il passo con il ridimensionamento automatico delle risorse di IoT Central.
Se si creano più endpoint privati per la stessa risorsa IoT Central, la zona DNS potrebbe sovrascrivere i nomi di dominio completi in modo da aggiungerli di nuovo.
Limiti
Attualmente, la connettività privata è abilitata solo per le connessioni dei dispositivi agli hub IoT sottostanti e al servizio Device Provisioning nell'applicazione IoT Central. L'interfaccia utente Web e le API di IoT Central continuano a funzionare tramite gli endpoint pubblici.
L'endpoint privato deve trovarsi nella stessa area della rete virtuale.
Quando si disabilita l'accesso alla rete pubblica:
I dispositivi simulati IoT Central non funzionano perché non hanno connettività alla rete virtuale.
L'endpoint dps globale (
global.device-provisioning.net
) non è accessibile. Aggiornare il firmware del dispositivo per connettersi all'istanza diretta del servizio Device Provisioning. È possibile trovare l'URL dps diretto nella pagina Gruppi di connessioni del dispositivo nell'applicazione IoT Central.
Non è possibile rinominare l'applicazione IoT Central dopo aver configurato un endpoint privato.
Non è possibile spostare l'endpoint privato o l'applicazione IoT Central in un altro gruppo di risorse o sottoscrizione.
Il supporto è limitato a IPv4. IPv6 non è supportato.
Risoluzione dei problemi
Se si verificano problemi di connessione a un endpoint privato, usare le indicazioni seguenti per la risoluzione dei problemi:
Controllare lo stato della connessione
Assicurarsi che lo stato della connessione dell'endpoint privato sia impostato su approvato.
- Nella portale di Azure passare all'applicazione e quindi selezionare Rete.
- Selezionare la scheda Connessione endpoint privati. Verificare che lo stato della connessione sia Approvato per l'endpoint privato.
Eseguire controlli all'interno della rete virtuale
Usare i controlli seguenti per analizzare i problemi di connettività all'interno della stessa rete virtuale. Distribuire una macchina virtuale nella stessa rete virtuale in cui è stato creato l'endpoint privato. Accedere alla macchina virtuale per eseguire i test seguenti.
Per assicurarsi che la risoluzione dei nomi funzioni correttamente, eseguire l'iterazione su tutti i nomi di dominio completi nella configurazione DNS dell'endpoint privato ed eseguire i test usando nslookup
, Test-NetConnection
o altri strumenti simili per verificare che ogni DNS corrisponda all'indirizzo IP corrispondente.
Eseguire inoltre il comando seguente per verificare che il nome DNS di ogni FQDN corrisponda all'indirizzo IP corrispondente.
#replace the <...> placeholders with the correct values
nslookup iotc-….azure-devices.net
Il risultato è simile all'output seguente:
#Results in the following output:
Server:127.0.0.53
Address:127.0.0.53#53
Non-authoritative answer: xyz.azure-devices.net
canonical name = xyz.privatelink.azure-devices.net
Name:xyz.privatelink.azure-devices.net
Address: 10.1.1.12
Se si trova un nome di dominio completo che non corrisponde all'indirizzo IP corrispondente, correggere il server DNS personalizzato. Se non si usa un server DNS personalizzato, creare un ticket di supporto.
Controllare se sono presenti più endpoint privati
La configurazione DNS può essere sovrascritta se si creano o si eliminano più endpoint privati per una singola applicazione IoT Central:
- Nella portale di Azure passare alla risorsa endpoint privato.
- Nella sezione DNS assicurarsi che siano presenti voci per tutte le risorse necessarie: hub IoT, Hub eventi, DPS e IoT Central FQDN.
- Verificare che gli indirizzi IP (e gli INDIRIZZI IP per altri endpoint privati che usano questa zona DNS) siano riflessi nel record A del DNS.
- Rimuovere tutti i record A per gli indirizzi IP dagli endpoint privati meno recenti eliminati in precedenza.
Altri suggerimenti per la risoluzione dei problemi
Se dopo aver provato tutti questi controlli si sta ancora riscontrando un problema, provare la guida alla risoluzione dei problemi dell'endpoint privato.
Se tutti i controlli hanno esito positivo e i dispositivi non riescono ancora a stabilire una connessione a IoT Central, contattare il team di sicurezza aziendale responsabile dei firewall e della rete in generale. I potenziali motivi di errore includono:
- Configurazione errata della rete virtuale di Azure
- Configurazione errata di un'appliance firewall
- Configurazione errata delle route definite dall'utente nella rete virtuale di Azure
- Proxy non configurato correttamente tra il dispositivo e le risorse di IoT Central
Passaggi successivi
Dopo aver appreso come creare un endpoint privato per l'applicazione, ecco il passaggio successivo consigliato: