Condividi tramite


Configurare un dispositivo IoT Edge come gateway trasparente

Si applica a:Segno di spunta IoT Edge 1.5 IoT Edge 1.5

Importante

IoT Edge 1.5 LTS è la versione supportata. IoT Edge 1.4 LTS è di fine vita a partire dal 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.

Questo articolo fornisce istruzioni dettagliate per configurare un dispositivo IoT Edge come gateway trasparente in modo che altri dispositivi possano connettersi all'hub IoT. In questo articolo il gateway IoT Edge indica un dispositivo IoT Edge configurato come gateway trasparente. Per altre informazioni, vedere Come usare un dispositivo IoT Edge come gateway.

Nota

I dispositivi downstream non possono usare il caricamento dei file.

Esistono tre passaggi principali per configurare una connessione gateway trasparente. Questo articolo illustra il primo passaggio:

  1. Configurare il dispositivo gateway come server in modo che i dispositivi downstream possano connettersi in modo sicuro. Configurare il gateway per ricevere messaggi dai dispositivi downstream e indirizzarli alla destinazione corretta.
  2. Creare un'identità del dispositivo per il dispositivo downstream in modo che possa eseguire l'autenticazione con l'hub IoT. Configurare il dispositivo downstream per inviare messaggi tramite il dispositivo gateway. Per questi passaggi, vedere Autenticare un dispositivo downstream nell'hub IoT di Azure.
  3. Connettere il dispositivo downstream al dispositivo gateway e iniziare a inviare messaggi. Per questi passaggi, vedere Connettere un dispositivo downstream a un gateway Azure IoT Edge.

Per fungere da gateway, un dispositivo deve connettersi in modo sicuro ai dispositivi downstream. Azure IoT Edge consente di usare l'infrastruttura a chiave pubblica (PKI) per configurare connessioni sicure tra i dispositivi. In questo caso, un dispositivo downstream si connette a un dispositivo IoT Edge che funge da gateway trasparente. Per garantire la sicurezza, il dispositivo downstream controlla l'identità del dispositivo gateway. Questo controllo consente di impedire ai dispositivi di connettersi a gateway dannosi.

Un dispositivo downstream può essere qualsiasi applicazione o piattaforma con un'identità creata nell'hub IoT di Azure. Queste applicazioni usano spesso Azure IoT SDK per dispositivi. Un dispositivo downstream può anche essere un'applicazione in esecuzione nel dispositivo gateway IoT Edge stesso.

È possibile creare qualsiasi infrastruttura di certificati che abilita la relazione di trust necessaria per la topologia dispositivo-gateway. In questo articolo usiamo la stessa configurazione del certificato utilizzata per la sicurezza CA X.509 nell'hub IoT. Questa configurazione usa un certificato ca X.509 associato a un hub IoT specifico (ca radice dell'hub IoT), una serie di certificati firmati con questa CA e una CA per il dispositivo IoT Edge.

Nota

Il termine certificato CA radice usato in questi articoli si riferisce al certificato pubblico principale della catena di certificati PKI e non necessariamente alla radice del certificato di un'autorità di certificazione con diffusione. In molti casi, si tratta in realtà di un certificato pubblico ca intermedio.

Seguire questa procedura per creare i certificati e installarli nelle posizioni giuste nel gateway. Usare qualsiasi computer per generare i certificati, quindi copiarli nel dispositivo IoT Edge.

Prerequisiti

È necessario un dispositivo Linux o Windows con IoT Edge installato.

Se non si ha un dispositivo pronto, crearne uno in una macchina virtuale di Azure. Seguire i passaggi descritti in Distribuire il primo modulo IoT Edge in un dispositivo Linux virtuale per creare un hub IoT, creare una macchina virtuale e configurare il runtime IoT Edge.

Configurare il certificato ca Edge

Tutti i gateway IoT Edge necessitano di un certificato ca Edge installato in essi. Il daemon di sicurezza di IoT Edge usa il certificato della CA Edge per firmare un certificato della CA del carico di lavoro, che a sua volta firma un certificato server per l'hub IoT Edge. Il gateway presenta il certificato del server al dispositivo downstream durante l'avvio della connessione. Il dispositivo downstream verifica che il certificato del server faccia parte di una catena di certificati che esegue il rollup del certificato CA radice. Questo processo consente al dispositivo downstream di verificare che il gateway provenga da una fonte attendibile. Per altre informazioni, vedere Informazioni su come Azure IoT Edge usa i certificati.

Screenshot che mostra l'installazione del certificato del gateway.

I certificati CA radice e CA Edge (con la relativa chiave privata) devono essere presenti sul dispositivo gateway IoT Edge e impostati nel file di configurazione di IoT Edge. In questo caso, il certificato CA radice indica l'autorità di certificazione principale per questo scenario di IoT Edge. Il certificato Edge CA del gateway e i certificati dei dispositivi downstream devono convergere nello stesso certificato CA radice.

Suggerimento

Il processo di installazione del certificato CA radice e del certificato CA Edge in un dispositivo IoT Edge è illustrato in modo più dettagliato in Gestire i certificati in un dispositivo IoT Edge.

Preparare i file seguenti:

  • Certificato CA radice
  • Certificato della CA perimetrale
  • Chiave privata della CA del dispositivo

Per gli scenari di produzione, generare questi file con una propria autorità di certificazione. Per gli scenari di sviluppo e test, è possibile usare i certificati demo.

Creare certificati demo

Se non si ha un'autorità di certificazione personalizzata e si vogliono usare i certificati demo, seguire le istruzioni in Creare certificati demo per testare le funzionalità dei dispositivi IoT Edge per creare i file. In questa pagina seguire questa procedura:

  1. Configurare gli script per la generazione di certificati nel dispositivo.
  2. Creare un certificato CA radice. Al termine, si dispone di un file di certificato CA Radice <path>/certs/azure-iot-test-only.root.ca.cert.pem.
  3. Creare certificati CA Edge. Al termine, si dispone di un certificato <path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pem della CA Edge e della relativa chiave <path>/private/iot-edge-device-ca-<cert name>.key.pemprivata.

Copiare i certificati nel dispositivo

  1. Controllare che il certificato soddisfi i requisiti di formato.

  2. Se i certificati sono stati creati in un computer diverso, copiarli nel dispositivo IoT Edge. Usare un'unità USB, un servizio come Azure Key Vault o un comando come La copia sicura dei file.

  3. Spostare i file nella directory preferita per certificati e chiavi: /var/aziot/certs per i certificati e /var/aziot/secrets per le chiavi.

  4. Creare i certificati e le directory delle chiavi e impostare le autorizzazioni. Archiviare i certificati e le chiavi nella directory preferita /var/aziot : /var/aziot/certs per i certificati e /var/aziot/secrets per le chiavi.

    # If the certificate and keys directories don't exist, create, set ownership, and set permissions
    sudo mkdir -p /var/aziot/certs
    sudo chown aziotcs:aziotcs /var/aziot/certs
    sudo chmod 755 /var/aziot/certs
    
    sudo mkdir -p /var/aziot/secrets
    sudo chown aziotks:aziotks /var/aziot/secrets
    sudo chmod 700 /var/aziot/secrets
    
  5. Modificare la proprietà e le autorizzazioni per i certificati e le chiavi.

    # Give aziotcs ownership to certificates
    # Read and write for aziotcs, read-only for others
    sudo chown -R aziotcs:aziotcs /var/aziot/certs
    sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \;
    
    # Give aziotks ownership to private keys
    # Read and write for aziotks, no permission for others
    sudo chown -R aziotks:aziotks /var/aziot/secrets
     sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
    

Configurare i certificati nel dispositivo

  1. Nel dispositivo IoT Edge aprire il file di configurazione: /etc/aziot/config.toml. Se si usa IoT Edge per Linux in Windows, connettersi alla macchina virtuale EFLOW usando il Connect-EflowVm cmdlet di PowerShell.

    Suggerimento

    Se il file di configurazione non esiste ancora nel dispositivo, usare /etc/aziot/config.toml.edge.template come modello per crearne uno.

  2. Trovare il parametro trust_bundle_cert. Rimuovere il commento da questa riga e fornire l'URI del file al file del certificato CA radice nel dispositivo.

  3. Trovare la sezione [edge_ca] del file. Rimuovere il commento dalle tre righe di questa sezione e specificare gli URI dei file per il certificato e i file di chiave come valori per le proprietà seguenti:

    • Certificato: certificato CA Edge
    • pk: chiave privata della CA del dispositivo
  4. Salva e chiude il file .

  5. Applicare le modifiche.

    sudo iotedge config apply
    

Distribuire edgeHub e indirizzare i messaggi

I dispositivi downstream inviano dati di telemetria e messaggi al dispositivo gateway, in cui il modulo hub IoT Edge instrada le informazioni ad altri moduli o all'hub IoT. Per preparare il dispositivo gateway per questa funzione, assicurarsi che:

  • Il modulo hub IoT Edge viene distribuito nel dispositivo.

    Quando si installa IoT Edge in un dispositivo, viene avviato automaticamente un solo modulo di sistema: l'agente IoT Edge. Quando si crea la prima distribuzione per un dispositivo, viene avviato anche il secondo modulo di sistema e l'hub IoT Edge. Se il modulo edgeHub non è in esecuzione nel dispositivo, creare una distribuzione per il dispositivo.

  • Il modulo hub IoT Edge include route configurate per gestire i messaggi in ingresso dai dispositivi downstream.

    Il dispositivo gateway richiede una route per gestire i messaggi dai dispositivi downstream o tali messaggi non vengono elaborati. È possibile inviare i messaggi ai moduli nel dispositivo gateway o direttamente all'hub IoT.

Per distribuire il modulo hub IoT Edge e configurare le route per gestire i messaggi in ingresso dai dispositivi downstream, seguire questa procedura:

  1. Nel portale di Azure passare all'hub IoT.

  2. Passare a Dispositivi nel menu Gestione dei dispositivi e selezionare il dispositivo IoT Edge da usare come gateway.

  3. Selezionare Set Modules (Configura i moduli).

  4. Nella pagina Moduli aggiungere tutti i moduli da distribuire nel dispositivo gateway. In questo articolo viene illustrato come configurare e distribuire il modulo edgeHub, che non deve essere impostato in modo esplicito in questa pagina.

  5. Selezionare Avanti: Route.

  6. Nella pagina Route assicurarsi che sia presente una route per gestire i messaggi dai dispositivi downstream. Ad esempio:

    • Route che invia tutti i messaggi, sia da un modulo che da un dispositivo downstream, all'hub IoT:

      • Nome: allMessagesToHub
      • Valore: FROM /messages/* INTO $upstream
    • Route che invia tutti i messaggi da tutti i dispositivi downstream all'hub IoT:

      • Nome: allDownstreamToHub
      • Valore: FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream

      Questa route funziona perché, a differenza dei messaggi dei moduli IoT Edge, i messaggi dei dispositivi downstream non hanno un ID modulo associato. L'uso della clausola WHERE della route consente di filtrare i messaggi con tale proprietà di sistema.

      Per altre informazioni sul routing dei messaggi, vedere distribuire moduli e stabilire le route.

  7. Dopo aver creato il percorso o i percorsi, selezionare Rivedi e crea.

  8. Nella pagina Rivedi e crea selezionare Crea.

Aprire porte nel dispositivo gateway

I dispositivi IoT Edge standard non necessitano di connettività in ingresso per funzionare, perché tutte le comunicazioni con l'hub IoT vengono eseguite tramite connessioni in uscita. I dispositivi gateway sono diversi perché devono ricevere messaggi dai dispositivi downstream. Se un firewall è tra i dispositivi downstream e il dispositivo gateway, la comunicazione deve essere possibile anche tramite il firewall.

Per il funzionamento di uno scenario gateway, almeno uno dei protocolli supportati dell'hub IoT Edge deve essere aperto per il traffico in ingresso dai dispositivi downstream. I protocolli supportati sono MQTT, AMQP, HTTPS, MQTT su WebSocket e AMQP su WebSocket.

Porta Protocollo
8883 MQTT
5671 AMQP
443 HTTPS
MQTT+WS
AMQP+WS

Passaggi successivi

Dopo aver configurato un dispositivo IoT Edge come gateway trasparente, configurare i dispositivi downstream per considerare attendibile il gateway e inviare messaggi ad esso. Continuare a Autenticare un dispositivo downstream nell'hub IoT di Azure per i passaggi successivi nello scenario del gateway trasparente.