Redigera

Dela via


Använda Azure IoT Hub för att privat ladda upp filer till ett Azure Storage-konto

Azure IoT Hub
Azure Storage
Azure Firewall
Azure Virtual Network
Azure Application Gateway

Lösningsidéer

I den här artikeln beskrivs en lösningsidé. Molnarkitekten kan använda den här vägledningen för att visualisera huvudkomponenterna för en typisk implementering av den här arkitekturen. Använd den här artikeln som utgångspunkt för att utforma en välkonstruerad lösning som överensstämmer med arbetsbelastningens specifika krav.

I den här artikeln beskrivs hur du använder ett privat nätverk för att ladda upp filer till ett Azure Storage-konto.

För typiska Azure IoT-distributioner måste IoT-klientenheterna kommunicera direkt med lagringskontot för att ladda upp filer. IoT-klientenheter distribueras vanligtvis på olika platser och de ingår inte i ett privat nätverk, så de ansluter via det offentliga Internet. Du kan inte integrera dessa enheter i ett privat nätverk, så lagringskontot kräver att du tillåter inkommande Internettrafik.

Men om du har strängare krav på nätverkssegmentering kan du begränsa åtkomsten till lagringskontot inifrån ett privat nätverk. Den här lösningen blockerar direkt Internettrafik till lagringskontot så att lagringskontot endast accepterar trafik som går via den inkommande Azure Application Gateway-instansen. Om du implementerar en nätverkstopologi för hub-spoke måste Azure Firewall vanligtvis inspektera trafiken, vilket ger ett extra säkerhetslager.

Arkitektur

Diagram som visar arkitekturen för privat filuppladdning i Azure IoT Hub.

Ladda ned en Visio-fil med den här arkitekturen.

Arbetsflöde

Följande arbetsflöde motsvarar föregående diagram.

  1. En nätverkstopologi med nav-ekrar har ett virtuellt hubbnätverk som är peer-kopplat till varje virtuellt resursnätverk, även kallat eker. All trafik går via Azure Firewall för trafikkontroll.

  2. Ett Azure Blob Storage-konto nekar offentlig Internetåtkomst. Den tillåter endast anslutningar från andra virtuella nätverk. Med en resursinstansregel kan en vald Azure IoT Hub-tjänst ansluta via en hanterad identitet. Blob Storage-kontot stöder endast rollbaserad åtkomstkontroll i Azure (RBAC) för åtkomst till dataplanet.

  3. Programgatewayen har anpassat DNS (Domain Name System) och avslutar TLS-trafik (Transport Layer Security). Den finns i ett virtuellt nätverk. Det här virtuella nätverket är peer-kopplat till det virtuella nätverk som bloblagringskontots privata länk använder. En tvingad tunnel via det virtuella hubbnätverket upprättar anslutningen.

  4. Den IoT-klientenhet som använder IoT Hub SDK begär en SAS-URI (signatur för delad åtkomst) för filuppladdningar till IoT Hub. IoT-klientenheten skickar begäran via det offentliga Internet.

  5. IoT Hub hanterar den här begäran för enheten. Den ansluter direkt till Blob Storage-kontot via hanterad identitetsautentisering, som har behörigheter för Storage Blob Data-deltagare för nyckelbegäranden för användardelegering.

    IoT Hub begär en användardelegeringsnyckel till Blob Storage-kontot. En kortlivad SAS-token ger enheten läs- och skrivbehörighet för den begärda bloben i blobcontainern.

  6. IoT Hub skickar den offentliga Blob Storage-kontots URI och SAS-token till IoT-klientenheten, tillsammans med ett korrelations-ID.

  7. IoT-klientenheten har logik för att ersätta den offentliga Blob Storage-URI:n med en anpassad domän, till exempel en enhetstvilling. IoT-enheten använder en standard-Blob Storage SDK för att ladda upp filen via den anpassade Blob Storage DNS.

  8. Application Gateway tar emot HTTP POST från klientenheten och skickar den till Blob Storage-kontot via Azure Private Link.

  9. När filuppladdningen är klar använder IoT-klientenheten Azure IoT SDK för att meddela IoT Hub.

    IoT-klientenheten uppdaterar filuppladdningsstatusen så att IoT Hub kan utlösa ett filöverföringsmeddelande till serverdelstjänster om meddelandet har konfigurerats. Klientenheten släpper även resurser som är associerade med filuppladdningen i IoT Hub.

Komponenter

  • Application Gateway är en PaaS-hanterad lösning (plattform som en tjänst) som du kan använda för att skapa mycket säkra, skalbara och högtillgängliga klientdelar. I den här arkitekturen hanterar Application Gateway inkommande HTTPS-trafik på Internet, tillämpar TLS-avslutning, förhandlar TLS med Blob Storage-kontot och vidarebefordrar trafik via ett privat nätverk till Blob Storage-kontot.

  • Azure Firewall ger skydd för dina Azure Virtual Network-resurser. I den här arkitekturen filtrerar och dirigerar Azure Firewall trafik mellan perimeternätverket och ekernätverken.

  • IoT Hub är en PaaS-hanterad lösning som fungerar som en central meddelandehubb för dubbelriktad kommunikation mellan ett IoT-program och de enheter som det hanterar. I den här arkitekturen är IoT Hub den centrala slutpunkten som IoT-klientenheter ansluter till för kontroll- och dataplansåtgärder.

  • Private Link ger privat åtkomst till tjänster som finns på Azure-plattformen samtidigt som dina data lagras i Microsoft-nätverket. I den här arkitekturen tillhandahåller Private Link privat kommunikation mellan Application Gateway och Blob Storage-kontot.

  • Lagring erbjuder en hållbar, mycket tillgänglig och mycket skalbar molnlagringslösning. Den innehåller funktioner för objekt-, fil-, disk-, kö- och tabelllagring. I den här arkitekturen använder enheter Blob Storage för att ladda upp filer till molnet via kortlivade SAS-token som IoT Hub tillhandahåller via användardelegering.

  • Privat DNS zoner ger en tillförlitlig, förbättrad DNS-tjänst för att hantera och matcha domännamn i ett virtuellt nätverk utan att behöva en anpassad DNS-lösning. I den här arkitekturen tillhandahåller en privat DNS-zon en privat DNS-post för Blob Storage så att blobslutpunkten för lagring översätts till dess privata IP-slutpunkt i nätverket.

  • Virtuellt nätverk är den grundläggande byggstenen för ditt privata nätverk i Azure. Med den här tjänsten kan många typer av Azure-resurser, till exempel virtuella Azure-datorer, kommunicera med varandra, Internet och lokala nätverk med förbättrad säkerhet. Den här arkitekturen använder Virtuellt nätverk för att skapa en privat nätverkstopologi, vilket undviker offentliga Internetslutpunkter för Azure-baserade tjänster.

Information om scenario

För regelbundna distributioner måste en Azure IoT-klientenhet kommunicera direkt till ett lagringskonto för att ladda upp en fil. Om du inaktiverar Internettrafik på lagringskontot blockeras alla klient-IoT-klientenheter från att ladda upp filer. Funktionen för uppladdning av IoT Hub-filer fungerar endast som en användardelegering för att generera en SAS-token som har läs- och skrivbehörighet för en blob. Själva filuppladdningen passerar inte via IoT Hub. En IoT-klientenhet använder det normala Blob Storage SDK för den faktiska uppladdningen.

I det här scenariot går kommunikationen mellan IoT Hub och lagringskontot fortfarande via den offentliga slutpunkten. Det här undantaget är möjligt via Lagringsnätverkskonfigurationer för resursinstanser. Du kan inaktivera offentlig Internetåtkomst till lagringskontot och tillåta att Azure-tjänster och specifika instanser av resurser ansluter via Azure-stamnätet. Den här nätverksperimetern är kopplad till en Microsoft Entra ID-baserad identitetsperimeter som använder Azure RBAC för att begränsa åtkomsten till dataplanet.

Den här arkitekturen tilldelar en hanterad identitet till IoT Hub. Den hanterade identiteten tilldelas rollen Storage Blob Data Contributor till det angivna Lagringskontot. Med den här behörigheten kan IoT Hub begära en användardelegeringsnyckel för att konstruera en SAS-token. IoT-klientenheten tar emot SAS-token för filuppladdningsprocessen.

Application Gateway fungerar som startpunkt för begäranden som går till den privata slutpunkten för lagringskontot, som är konfigurerat som den enda serverdelen. Application Gateway använder en offentlig IP-adress. En anpassad DNS-provider kan konfigureras för att mappa den offentliga IP-adressen till en A-post eller CNAME-post .

Om du har interna säkerhetskrav för att använda privata slutpunkter för många Azure PaaS-tjänster kan du implementera det här scenariot för att tillhandahålla kortare valideringscykler för att distribuera dina IoT-lösningar i produktion.

Potentiella användningsfall

Den här arkitekturen kan tillämpas på alla scenarion som använder enheter som behöver kommunicera med ett lagringskonto som inte exponeras offentligt.

En leverantör av industriell automatisering tillhandahåller till exempel hanterade anslutna gränsstyrenheter och sensorer. Dessa sensorer måste kommunicera med Azure-molnet via det offentliga Internet, men leverantörens säkerhetsteam kräver att lagringskontot nekas offentlig Internetåtkomst. Den här arkitekturen uppfyller det här kravet.

Alternativ

Om du inte behöver nätverkstopologin hub-spoke som har Azure Firewall-trafikkontroll kan du implementera en förenklad nätverkstopologi för att dra nytta av den här metoden. Du kan använda ett enda virtuellt nätverk som har distinkta undernät för att hantera Application Gateway, Private Link och den privata DNS-zonen. Lagringskontot och IoT Hub kan använda samma konfigurationer som den ursprungliga arkitekturen.

Fördelarna med en förenklad arkitektur är bland annat minskad komplexitet och kostnad. Om du inte har specifika affärs- eller företagskrav för en hub-spoke-topologi använder du den förenklade arkitekturen för att eliminera offentliga Internetslutpunkter från lagringskontot. Den här metoden hjälper också till att se till att IoT-program som använder IoT Hub-filuppladdningsfunktionen fungerar korrekt.

Ett exempel som distribuerar en liknande arkitektur finns i Konfigurera IoT Hub-filuppladdning till Lagring via en privat slutpunkt. Det här exemplet distribuerar en simulerad IoT-klientenhet och använder enhetstvillingar för att ersätta det anpassade domännamnet för lagringskontot.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudsakliga författare:

Annan deltagare:

Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.

Gå vidare

Lär dig hur du laddar upp filer med IoT Hub.