idee per
soluzioneQuesto articolo descrive un'idea di soluzione. L'architetto cloud può usare queste linee guida per visualizzare i componenti principali per un'implementazione tipica di questa architettura. Usare questo articolo come punto di partenza per progettare una soluzione ben progettata in linea con i requisiti specifici del carico di lavoro.
Questo articolo descrive come usare una rete privata per caricare i file in un account Archiviazione di Azure.
Per le distribuzioni tipiche di Azure IoT, i dispositivi client IoT devono comunicare direttamente con l'account di archiviazione per caricare i file. I dispositivi client IoT vengono in genere distribuiti in posizioni diverse e non fanno parte di una rete privata, quindi si connettono tramite la rete Internet pubblica. Non è possibile integrare questi dispositivi in una rete privata, quindi l'account di archiviazione richiede che sia consentito il traffico Internet in ingresso.
Tuttavia, se si hanno requisiti di segmentazione di rete più rigorosi, è possibile limitare l'accesso all'account di archiviazione dall'interno di una rete privata. Questa soluzione blocca il traffico Internet diretto all'account di archiviazione in modo che l'account di archiviazione accetti solo il traffico che passa attraverso l'istanza del gateway di app Azure lication in ingresso. Se si implementa una topologia di rete hub-spoke, Firewall di Azure in genere deve esaminare il traffico, che offre un livello di sicurezza aggiuntivo.
Architettura
Scaricare un file di Visio di questa architettura.
Workflow
Il flusso di lavoro seguente corrisponde al diagramma precedente.
Una topologia di rete hub-spoke ha una rete virtuale hub che esegue il peering a ogni rete virtuale di risorse, detta anche spoke. Tutto il traffico passa attraverso Firewall di Azure per l'ispezione del traffico.
Un account Archiviazione BLOB di Azure nega l'accesso a Internet pubblico. Consente solo connessioni da altre reti virtuali. Una regola dell'istanza di risorsa consente a un servizio di hub IoT di Azure scelto di connettersi tramite un'identità gestita. L'account di archiviazione BLOB supporta solo il controllo degli accessi in base al ruolo di Azure per l'accesso al piano dati.
Il gateway applicazione ha dns (Domain Name System) personalizzato e termina il traffico TLS (Transport Layer Security). Si trova all'interno di una rete virtuale. Questa rete virtuale esegue il peering con la rete virtuale usata dal collegamento privato dell'account di archiviazione BLOB. Un tunnel forzato tramite la rete virtuale hub stabilisce la connessione.
Il dispositivo client IoT che usa l'SDK di hub IoT richiede un URI di firma di accesso condiviso (SAS) per i caricamenti di file in hub IoT. Il dispositivo client IoT invia la richiesta tramite Internet pubblico.
hub IoT gestisce questa richiesta per il dispositivo. Si connette direttamente all'account di archiviazione BLOB tramite l'autenticazione dell'identità gestita, che dispone delle autorizzazioni collaboratore ai dati dei BLOB di archiviazione per le richieste di chiave di delega utente.
hub IoT richiede una chiave di delega utente all'account di archiviazione BLOB. Un token di firma di accesso condiviso di breve durata concede all'autorizzazione di lettura/scrittura del dispositivo per il BLOB richiesto nel contenitore BLOB.
hub IoT invia l'URI dell'account di archiviazione BLOB pubblico e il token di firma di accesso condiviso al dispositivo client IoT, insieme a un ID di correlazione.
Il dispositivo client IoT ha la logica per sostituire l'URI di archiviazione BLOB pubblico con un dominio personalizzato, ad esempio un dispositivo gemello. Il dispositivo IoT usa un SDK di archiviazione BLOB standard per caricare il file tramite il DNS di archiviazione BLOB personalizzato.
gateway applicazione riceve HTTP POST dal dispositivo client e lo invia all'account di archiviazione BLOB tramite collegamento privato di Azure.
Al termine del caricamento del file, il dispositivo client IoT usa Azure IoT SDK per notificare hub IoT.
Il dispositivo client IoT aggiorna lo stato di caricamento dei file in modo che hub IoT possa attivare una notifica di caricamento di file nei servizi back-end, se la notifica è configurata. Il dispositivo client rilascia anche le risorse associate al caricamento del file in hub IoT.
Componenti
gateway applicazione è una soluzione gestita da piattaforma distribuita come servizio (PaaS) che è possibile usare per creare front-end altamente sicuri, scalabili e a disponibilità elevata. In questa architettura, gateway applicazione gestisce il traffico HTTPS Internet in ingresso, applica la terminazione TLS, negozia TLS con l'account di archiviazione BLOB e inoltra il traffico attraverso una rete privata all'account di archiviazione BLOB.
Firewall di Azure fornisce protezione per le risorse di Azure Rete virtuale. In questa architettura, Firewall di Azure filtra e instrada il traffico tra la rete perimetrale e le reti spoke.
hub IoT è una soluzione gestita da PaaS che funge da hub messaggi centrale per la comunicazione bidirezionale tra un'applicazione IoT e i dispositivi gestiti. In questa architettura, hub IoT è l'endpoint centrale a cui si connettono i dispositivi client IoT per le operazioni del piano dati e di controllo.
collegamento privato fornisce l'accesso privato ai servizi ospitati nella piattaforma Azure mantenendo i dati nella rete Microsoft. In questa architettura, collegamento privato fornisce comunicazioni private tra gateway applicazione e l'account di archiviazione BLOB.
L'archiviazione offre una soluzione di archiviazione cloud durevole, a disponibilità elevata e altamente scalabile. Include funzionalità di archiviazione di oggetti, file, dischi, code e tabelle. In questa architettura, i dispositivi usano l'archiviazione BLOB per caricare i file nel cloud tramite token di firma di accesso condiviso di breve durata che hub IoT fornisce tramite delega utente.
DNS privato zone forniscono un servizio DNS affidabile e con sicurezza avanzata per gestire e risolvere i nomi di dominio in una rete virtuale senza la necessità di una soluzione DNS personalizzata. In questa architettura, una zona DNS privata fornisce una voce DNS privata per l'archiviazione BLOB in modo che l'endpoint BLOB di archiviazione traduca nell'endpoint IP privato all'interno della rete.
Rete virtuale è il blocco predefinito fondamentale per la rete privata in Azure. Questo servizio consente a molti tipi di risorse di Azure, ad esempio macchine virtuali di Azure, di comunicare tra loro, Internet e reti locali con sicurezza avanzata. Questa architettura usa Rete virtuale per creare una topologia di rete privata, evitando endpoint pubblici Internet per i servizi basati su Azure.
Dettagli dello scenario
Per le distribuzioni regolari, un dispositivo client Azure IoT deve comunicare direttamente con un account di archiviazione per caricare un file. La disabilitazione del traffico Internet nell'account di archiviazione impedisce a qualsiasi dispositivo client IoT client di caricare file. La funzionalità di caricamento di file hub IoT funge solo da delega utente per la generazione di un token di firma di accesso condiviso con autorizzazioni di lettura/scrittura per un BLOB. Il caricamento del file stesso non passa attraverso hub IoT. Un dispositivo client IoT usa il normale SDK di Archiviazione BLOB per il caricamento effettivo.
In questo scenario, la comunicazione tra hub IoT e l'account di archiviazione passa comunque attraverso l'endpoint pubblico. Questa eccezione è possibile tramite le configurazioni di rete di archiviazione per le istanze delle risorse. È possibile disabilitare l'accesso a Internet pubblico all'account di archiviazione e consentire ai servizi di Azure e a istanze specifiche delle risorse di connettersi tramite il backbone di Azure. Questo perimetro di rete è associato a un perimetro di identità basato su ID Di Microsoft Entra che usa il controllo degli accessi in base al ruolo di Azure per limitare l'accesso al piano dati.
Questa architettura assegna un'identità gestita a hub IoT. All'identità gestita viene assegnato il ruolo Collaboratore dati BLOB di archiviazione all'account di archiviazione specificato. Con questa autorizzazione, hub IoT può richiedere una chiave di delega utente per costruire un token di firma di accesso condiviso. Il dispositivo client IoT riceve il token di firma di accesso condiviso per il processo di caricamento del file.
gateway applicazione funge da punto di ingresso per le richieste che passano all'endpoint privato dell'account di archiviazione, configurato come unico back-end. gateway applicazione usa un indirizzo IP pubblico. È possibile configurare un provider DNS personalizzato per eseguire il mapping dell'indirizzo IP pubblico a un record A o a un record CNAME.
Se si hanno requisiti di sicurezza interni per l'uso di endpoint privati per molti servizi PaaS di Azure, è possibile implementare questo scenario per fornire cicli di convalida più brevi per distribuire le soluzioni IoT nell'ambiente di produzione.
Potenziali casi d'uso
Questa architettura può essere applicata a qualsiasi scenario che usa dispositivi che devono comunicare con un account di archiviazione che non è esposto pubblicamente.
Ad esempio, un fornitore di automazione industriale fornisce controller perimetrali e sensori connessi gestiti. Questi sensori devono comunicare con il cloud di Azure tramite la rete Internet pubblica, ma il team di sicurezza del fornitore richiede che l'account di archiviazione venga negato l'accesso a Internet pubblico. Questa architettura soddisfa questo requisito.
Alternative
Se non è necessaria la topologia di rete hub-spoke con Firewall di Azure ispezione del traffico, è possibile implementare una topologia di rete semplificata per trarre vantaggio da questo approccio. È possibile usare una singola rete virtuale con subnet distinte per supportare gateway applicazione, collegamento privato e la zona DNS privata. L'account di archiviazione e hub IoT possono usare le stesse configurazioni dell'architettura originale.
I vantaggi di un'architettura semplificata includono complessità e costi ridotti. Se non si hanno requisiti aziendali o aziendali specifici per una topologia hub-spoke, usare l'architettura semplificata per eliminare gli endpoint Internet pubblici dall'account di archiviazione. Questo approccio consente anche di garantire che le applicazioni IoT che usano la funzionalità di caricamento dei file hub IoT funzionino correttamente.
Per un esempio che distribuisce un'architettura simile, vedere Configurare hub IoT caricamento di file nell'archiviazione tramite un endpoint privato. Questo esempio distribuisce un dispositivo client IoT simulato e usa dispositivi gemelli per sostituire il nome di dominio personalizzato per l'account di archiviazione.
Collaboratori
Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.
Autori principali:
- Katrien De Graeve | Software Engineer
- Vincent Misson | Cloud Solution Architect
Altro collaboratore:
- Nacim Allouache | Cloud Solution Architect
Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.
Passaggio successivo
Informazioni su come caricare file con hub IoT.