Condividi tramite


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 sulla rete Internet pubblica. 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.
  • Un'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:

Per creare un endpoint privato in un'applicazione IoT Central esistente:

  1. Nella portale di Azure passare all'applicazione e quindi selezionare Rete.

  2. Selezionare la scheda Connessioni endpoint privato e quindi selezionare + Endpoint privato.

  3. Nella scheda Informazioni di base immettere un nome e selezionare un'area per l'endpoint privato. Selezionare quindi Avanti: Risorsa.

  4. La scheda Risorsa viene popolata automaticamente. Selezionare Avanti: Rete virtuale.

  5. Nella scheda Rete virtuale selezionare la rete virtuale e la subnet in cui si vuole distribuire l'endpoint privato.

  6. Nella stessa scheda, nella sezione Configurazione IP privato selezionare Alloca dinamicamente l'indirizzo IP.

  7. Selezionare Avanti: DNS.

  8. Nella scheda DNS selezionare per Integrazione con la zona DNS privata. Il DNS privato risolve tutti gli endpoint necessari in indirizzi IP privati nella rete virtuale:

    Screenshot di portale di Azure che mostra l'integrazione DNS privata.

    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.

  9. Selezionare Avanti: Tag.

  10. Nella scheda Tag configurare i tag necessari e quindi selezionare Avanti: Rivedi e crea.

  11. Esaminare i dettagli di configurazione e quindi selezionare Crea per creare la risorsa dell'endpoint privato.

Screenshot del portale di Azure che mostra il riepilogo per la creazione di un 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:

  1. Nella portale di Azure passare all'applicazione IoT Central e quindi selezionare Rete.

  2. 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.

  1. Installare chocolatey.

  2. Installare ARMClient:

    choco install armclient
    
  3. Accedere con ARMClient:

    armclient login 
    
  4. 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
    
  5. 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"}  
        }  
      ]  
    }
    
  6. 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.

Screenshot del portale di Azure che mostra la configurazione DNS privata.

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:

  1. Nella portale di Azure passare all'applicazione IoT Central e quindi selezionare Rete.

  2. Nella scheda Accesso pubblico selezionare Disabilitato per l'accesso alla rete pubblica.

  3. Facoltativamente, è possibile definire un elenco di indirizzi/intervalli IP che possono connettersi all'endpoint pubblico dell'applicazione IoT Central.

  4. Selezionare Salva.

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 . 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 del servizio Device Provisioning diretto.

Screenshot dell'applicazione IoT Central che mostra l'endpoint dps diretto.

Procedure consigliate

  • Non usare gli URL del sottodominio di 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.

  • Usando 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 livello di scalabilità automatica 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.

Limitazioni

  • 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 del servizio Device Provisioning 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 connessione 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 in un'altra 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.

  1. Nella portale di Azure passare all'applicazione e quindi selezionare Rete.
  2. 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-NetConnectiono altri strumenti simili per verificare che ogni DNS corrisponda all'indirizzo IP corrispondente.

Eseguire anche 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 FQDN 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 dell'endpoint privato.
  • Nella sezione DNS verificare che siano presenti voci per tutte le risorse necessarie: Hub IoT, Hub eventi, DPS e FQDN di IoT Central.
  • 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 che sono già stati eliminati.

Altri suggerimenti per la risoluzione dei problemi

Se dopo aver provato tutti questi controlli si è ancora verificato 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 possibili motivi dell'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 le risorse del dispositivo e IoT Central

Passaggi successivi

Dopo aver appreso come creare un endpoint privato per l'applicazione, ecco il passaggio successivo consigliato: