Lösungsideen
In diesem Artikel wird eine Lösungsidee beschrieben. Ihr Cloudarchitekt kann diese Anleitung verwenden, um die Hauptkomponenten für eine typische Implementierung dieser Architektur zu visualisieren. Verwenden Sie diesen Artikel als Ausgangspunkt, um eine gut durchdachte Lösung zu entwerfen, die den spezifischen Anforderungen Ihrer Workload entspricht.
In diesem Artikel wird beschrieben, wie Sie ein privates Netzwerk verwenden, um Dateien in ein Azure Storage-Konto hochzuladen.
Bei typischen Azure IoT-Bereitstellungen müssen die IoT-Clientgeräte direkt mit dem Speicherkonto kommunizieren, um Dateien hochzuladen. IoT-Clientgeräte werden in der Regel an unterschiedlichen Standorten verteilt und sind nicht Teil eines privaten Netzwerks, sodass sie über das öffentliche Internet eine Verbindung herstellen. Sie können diese Geräte nicht in ein privates Netzwerk integrieren, daher erfordert das Speicherkonto, dass Sie eingehenden Internetdatenverkehr zulassen.
Wenn Sie jedoch strengere Netzwerksegmentierungsanforderungen haben, können Sie den Zugriff auf das Speicherkonto innerhalb eines privaten Netzwerks einschränken. Diese Lösung blockiert den direkten Internetdatenverkehr mit dem Speicherkonto, sodass das Speicherkonto nur Datenverkehr akzeptiert, der über die eingehende Azure-App lication Gateway-Instanz geht. Wenn Sie eine Hub-Spoke-Netzwerktopologie implementieren, muss azure Firewall in der Regel Datenverkehr prüfen, der eine zusätzliche Sicherheitsebene bietet.
Aufbau
Laden Sie eine Visio-Datei dieser Architektur herunter.
Workflow
Der folgende Arbeitsablauf entspricht der vorangegangenen Abbildung.
Eine Hub-Spoke-Netzwerktopologie verfügt über ein virtuelles Hubnetzwerk, das peers zu jedem virtuellen Ressourcennetzwerk, auch als Speichen bezeichnet. Der gesamte Datenverkehr durchläuft die Azure-Firewall für die Datenverkehrsüberprüfung.
Ein Azure Blob Storage-Konto verweigert den öffentlichen Internetzugriff. Es lässt nur Verbindungen von anderen virtuellen Netzwerken zu. Mit einer Ressourceninstanzregel kann ein ausgewählter Azure IoT Hub-Dienst über eine verwaltete Identität eine Verbindung herstellen. Das Blob Storage-Konto unterstützt nur die rollenbasierte Zugriffssteuerung (Azure Role-Based Access Control, RBAC) für den Zugriff auf Datenebenen.
Das Anwendungsgateway verfügt über ein benutzerdefiniertes DNS (Domain Name System) und beendet transport Layer Security (TLS)-Datenverkehr. Sie befindet sich in einem virtuellen Netzwerk. Dieses virtuelle Netzwerk peers mit dem virtuellen Netzwerk, das der private Link des Blob Storage-Kontos verwendet. Ein erzwungener Tunnel über das virtuelle Hubnetzwerk stellt die Verbindung her.
Das IoT-Clientgerät, das das IoT Hub SDK verwendet, fordert einen SAS-URI (Shared Access Signature) für Dateiuploads in IoT Hub an. Das IoT-Clientgerät sendet die Anforderung über das öffentliche Internet.
IoT Hub verarbeitet diese Anforderung für das Gerät. Es stellt eine direkte Verbindung mit dem Blob Storage-Konto über die verwaltete Identitätsauthentifizierung bereit, die Über Berechtigungen für "Storage Blob Data Contributor" für Benutzerdelegierungsschlüsselanforderungen verfügt.
IoT Hub fordert einen Benutzerdelegierungsschlüssel an das Blob Storage-Konto an. Ein kurzlebiges SAS-Token gewährt dem Gerät Lese-/Schreibberechtigung für das angeforderte Blob im BLOB-Container.
IoT Hub sendet den öffentlichen Blob Storage-Konto-URI und das SAS-Token zusammen mit einer Korrelations-ID an das IoT-Clientgerät.
Das IoT-Clientgerät verfügt über eine Logik, um den öffentlichen Blob Storage-URI durch eine benutzerdefinierte Domäne zu ersetzen, z. B. ein Geräte-Twin. Das IoT-Gerät verwendet ein standardmäßiges Blob Storage SDK, um die Datei über das benutzerdefinierte Blob Storage-DNS hochzuladen.
Das Anwendungsgateway empfängt den HTTP POST vom Clientgerät und sendet ihn über den privaten Azure-Link an das Blob Storage-Konto.
Wenn der Dateiupload abgeschlossen ist, verwendet das IoT-Clientgerät das Azure IoT SDK, um IoT Hub zu benachrichtigen.
Das IoT-Clientgerät aktualisiert den Dateiuploadstatus, sodass IoT Hub eine Dateiuploadbenachrichtigung in Back-End-Dienste auslösen kann, wenn die Benachrichtigung konfiguriert ist. Das Clientgerät gibt auch Ressourcen frei, die dem Dateiupload im IoT Hub zugeordnet sind.
Komponenten
Das Anwendungsgateway ist eine Plattform als Dienst(PaaS)-verwaltete Lösung, mit der Sie hochsichere, skalierbare und hoch verfügbare Front-Ends erstellen können. In dieser Architektur behandelt Das Anwendungsgateway den eingehenden INTERNET-HTTPS-Datenverkehr, wendet TLS-Beendigung an, verhandelt TLS mit dem Blob Storage-Konto und leitet Datenverkehr über ein privates Netzwerk an das Blob Storage-Konto weiter.
Azure Firewall bietet Schutz für Ihre Azure Virtual Network-Ressourcen. In dieser Architektur filtert Azure Firewall den Datenverkehr zwischen dem Umkreisnetzwerk und den Speichennetzwerken und leitet diesen weiter.
IoT Hub ist eine paaS-verwaltete Lösung, die als zentraler Nachrichtenhub für die bidirektionale Kommunikation zwischen einer IoT-Anwendung und den von ihr verwalteten Geräten fungiert. In dieser Architektur ist IoT Hub der zentrale Endpunkt, mit dem IoT-Clientgeräte für Steuerungs- und Datenebenenvorgänge verbunden sind.
Private Link bietet privaten Zugriff auf Dienste, die auf der Azure-Plattform gehostet werden, während Ihre Daten im Microsoft-Netzwerk beibehalten werden. In dieser Architektur stellt private Verknüpfung private Kommunikation zwischen Dem Anwendungsgateway und dem Blob Storage-Konto bereit.
Storage bietet eine langlebige, hochverwendbare und massiv skalierbare Cloudspeicherlösung. Es umfasst Objekt-, Datei-, Datenträger-, Warteschlangen- und Tabellenspeicherfunktionen. In dieser Architektur verwenden Geräte Blob Storage, um Dateien über kurzlebige SAS-Token in die Cloud hochzuladen, die IoT Hub über Benutzerdelegierung bereitstellt.
Privates DNS Zonen bieten einen zuverlässigen, erweiterten DNS-Dienst zum Verwalten und Auflösen von Domänennamen in einem virtuellen Netzwerk, ohne dass eine benutzerdefinierte DNS-Lösung erforderlich ist. In dieser Architektur stellt eine private DNS-Zone einen privaten DNS-Eintrag für Blob Storage bereit, sodass der Speicher-BLOB-Endpunkt in seinen privaten IP-Endpunkt innerhalb des Netzwerks übersetzt wird.
Virtuelles Netzwerk ist der grundlegende Baustein für Ihr privates Netzwerk in Azure. Dieser Dienst ermöglicht viele Arten von Azure-Ressourcen, z. B. virtuelle Azure-Computer, die Kommunikation mit einander, das Internet und lokale Netzwerke mit verbesserter Sicherheit. Diese Architektur verwendet virtuelles Netzwerk, um eine private Netzwerktopologie zu erstellen, wodurch öffentliche Internetendpunkte für Azure-basierte Dienste vermieden werden.
Szenariodetails
Bei regulären Bereitstellungen muss ein Azure IoT-Clientgerät direkt mit einem Speicherkonto kommunizieren, um eine Datei hochzuladen. Durch das Deaktivieren des Internetdatenverkehrs auf dem Speicherkonto wird verhindert, dass Client-IoT-Clientgeräte Dateien hochladen. Die IoT Hub-Dateiuploadfunktion dient nur als Benutzerdelegierung zum Generieren eines SAS-Tokens mit Lese-/Schreibberechtigungen für ein Blob. Der Dateiupload selbst erfolgt nicht über IoT Hub. Ein IoT-Clientgerät verwendet das normale Blob Storage SDK für den tatsächlichen Upload.
In diesem Szenario durchläuft die Kommunikation zwischen IoT Hub und Speicherkonto weiterhin den öffentlichen Endpunkt. Diese Ausnahme ist über Speichernetzwerkkonfigurationen für Ressourceninstanzen möglich. Sie können den öffentlichen Internetzugriff auf das Speicherkonto deaktivieren und Azure-Dienste und bestimmte Instanzen von Ressourcen ermöglichen, eine Verbindung über das Azure-Backbone herzustellen. Dieser Netzwerkperimeter wird mit einem Microsoft Entra ID-basierten Identitätsperimeter gekoppelt, der Azure RBAC zum Einschränken des Datenebenenzugriffs verwendet.
Diese Architektur weist IoT Hub eine verwaltete Identität zu. Die verwaltete Identität wird der Rolle des Mitwirkenden von Storage Blob Data dem angegebenen Speicherkonto zugewiesen. Mit dieser Berechtigung kann IoT Hub einen Benutzerdelegierungsschlüssel anfordern, um ein SAS-Token zu erstellen. Das IoT-Clientgerät empfängt das SAS-Token für den Dateiuploadprozess.
Das Anwendungsgateway fungiert als Einstiegspunkt für Anforderungen, die zum privaten Endpunkt des Speicherkontos wechseln, das als einziges Back-End konfiguriert ist. Das Anwendungsgateway verwendet eine öffentliche IP-Adresse. Ein benutzerdefinierter DNS-Anbieter kann so konfiguriert werden, dass die öffentliche IP-Adresse einem A-Eintrag oder CNAME-Eintrag zugeordnet wird.
Wenn Sie über interne Sicherheitsanforderungen verfügen, um private Endpunkte für viele Azure PaaS-Dienste zu verwenden, können Sie dieses Szenario implementieren, um kürzere Überprüfungszyklen bereitzustellen, um Ihre IoT-Lösungen in der Produktion bereitzustellen.
Mögliche Anwendungsfälle
Diese Architektur kann auf jedes Szenario angewendet werden, das Geräte verwendet, die mit einem Speicherkonto kommunizieren müssen, das nicht öffentlich verfügbar gemacht wird.
Beispielsweise stellt ein Anbieter für industrielle Automatisierung verwaltete verbundene Edgecontroller und Sensoren bereit. Diese Sensoren müssen über das öffentliche Internet mit der Azure-Cloud kommunizieren, aber das Sicherheitsteam des Anbieters erfordert, dass dem Speicherkonto der Zugriff auf das öffentliche Internet verweigert wird. Diese Architektur erfüllt diese Anforderung.
Alternativen
Wenn Sie keine Hub-Spoke-Netzwerktopologie mit Azure Firewall-Datenverkehrsüberprüfung benötigen, können Sie eine vereinfachte Netzwerktopologie implementieren, um von diesem Ansatz zu profitieren. Sie können ein einzelnes virtuelles Netzwerk verwenden, das über unterschiedliche Subnetze verfügt, um anwendungsgateway, private Verknüpfungen und die private DNS-Zone aufzunehmen. Das Speicherkonto und IoT Hub können die gleichen Konfigurationen wie die ursprüngliche Architektur verwenden.
Zu den Vorteilen einer vereinfachten Architektur gehören reduzierte Komplexität und Kosten. Wenn Sie keine spezifischen Geschäfts- oder Unternehmensanforderungen für eine Hub-Spoke-Topologie haben, verwenden Sie die vereinfachte Architektur, um öffentliche Internetendpunkte aus dem Speicherkonto zu beseitigen. Dieser Ansatz trägt auch dazu bei, sicherzustellen, dass IoT-Anwendungen, die die IoT Hub-Dateiuploadfunktionen verwenden, ordnungsgemäß funktionieren.
Ein Beispiel, das eine ähnliche Architektur bereitstellt, finden Sie unter Einrichten des IoT Hub-Dateiuploads in den Speicher über einen privaten Endpunkt. In diesem Beispiel wird ein simuliertes IoT-Clientgerät bereitgestellt und Geräte twins verwendet, um den benutzerdefinierten Domänennamen für das Speicherkonto zu ersetzen.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautoren:
- Katrien De Graeve | Anwendungsentwickler
- Vincent Misson | Cloud-Lösungsarchitekt
Andere Mitwirkende:
- Nacim Allouache | Cloud-Lösungsarchitekt
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.
Nächster Schritt
Erfahren Sie, wie Sie Dateien mit IoT Hub hochladen.