Edge Computing für das Internet der Dinge So konfigurieren Sie IoT-Edge-Geräte als transparentes Gateway
Anbieter zum Thema
Die Anbindung von Geräten ans Internet der Dinge (IoT) erzeugt riesige Datenmengen, die beträchtliche Vorteile bringen können – wenn Unternehmen sie geschickt auswerten. Das muss nicht zwingend auf einem großen, externen Server erfolgen: Viele Schritte lassen sich gleich am Edge erledigen, direkt auf einem Gateway vor Ort. Dieser Beitrag schildert, wie Sie mit Hilfe von Microsoft Azure IoT Edge einen solchen Gateway einrichten.

Damit dies reibungslos geschehen kann, müssen die Geräte korrekt miteinander kommunizieren können. In diesem Artikel zeige ich Ihnen deshalb, wie Sie ein bestimmte IoT-Edge-Gerät so konfigurieren können, dass es als transparentes Gateway für andere Geräte zur Kommunikation mit dem Azure IoT Hub von Microsoft dient. Wir verwenden dabei die Version 1.2 von Azure IoT Edge. Eine andere Anleitung für die Version 1.1. mit Long Term Servicing Support finden sie hier.
Es gibt drei allgemeine Schritte zum Einrichten einer erfolgreichen Verbindung mit einem transparenten Gateway. Hier beziehe ich mich ausschließlich auf den ersten Schritt:
1. Konfigurieren Sie das Gateway-Gerät als Server, sodass sich nachgeschaltete Geräte mit ihm sicher verbinden können. Richten Sie das Gateway so ein, dass es Nachrichten von nachgeschalteten Geräten empfängt und an das richtige Ziel weiterleitet.
2. Erstellen Sie eine Geräteidentität für das nachgeschaltete Gerät, damit es sich bei IoT Hub authentifizieren kann. Konfigurieren Sie das nachgeschaltete Gerät zum Senden von Nachrichten über das Gateway-Gerät. Die dazu erforderlichen Schritte finden Sie unter Authentifizieren eines nachgeschalteten Geräts bei Azure IoT Hub.
3. Verbinden Sie das nachgeschaltete Gerät mit dem Gateway-Gerät, und beginnen Sie mit dem Senden von Nachrichten. Die dazu erforderlichen Schritte finden Sie unter Verbinden eines nachgeschalteten Geräts mit einem Azure IoT Edge-Gateway.
Damit ein Gerät als Gateway fungieren kann, muss es sichere Verbindungen mit nachgeschalteten Geräten herstellen können. Mit Azure IoT Edge können Sie mithilfe der Public-Key-Infrastruktur sichere Verbindungen zwischen Geräten einrichten. In diesem Fall lassen wir zu, dass ein nachgeschaltetes Gerät eine Verbindung mit einem IoT-Edge-Gerät, das als transparentes Gateway fungiert, herstellt. Um eine angemessene Sicherheit zu gewährleisten, sollte das nachgeschaltete Gerät die Identität des Gateway-Geräts bestätigen. Diese Überprüfung der Identität verhindert, dass Ihre Geräte Verbindungen mit potenziell schädlichen Gateways herstellen.
Ein nachgeschaltetes Gerät kann eine beliebige Anwendung oder Plattform sein, deren Identität mit dem Azure IoT Hub-Clouddienst erstellt wurde. Diese Anwendungen verwenden häufig das Azure IoT-Geräte-SDK. Ein nachgeschaltetes Gerät kann sogar eine Anwendung sein, die auf dem IoT-Edge-Gateway-Gerät selbst ausgeführt wird.
Sie können eine beliebige Zertifikatinfrastruktur erstellen, die die für Ihre Gerät-zu-Gateway-Topologie erforderliche Vertrauensstellung ermöglicht. In diesem Artikel wird von der gleichen Zertifikateinrichtung ausgegangen, die Sie auch zum Aktivieren der X.509-Zertifizierungsstellenzertifikat in IoT Hub verwenden. Hierbei ist ein X.509-Zertifizierungsstellenzertifikat einem bestimmten IoT-Hub zugeordnet (der Stammzertifizierungsstelle von IoT Hub), und es sind eine Reihe von Zertifikaten, die mit dieser Zertifizierungsstelle signiert werden, sowie eine Zertifizierungsstelle für die IoT Edge-Geräte vorhanden.
In den folgenden Schritten führe ich Sie durch den Prozess zum Erstellen der Zertifikate und zum Installieren an den richtigen Orten auf dem Gateway geführt. Sie können mit jedem beliebigen Computer Zertifikate generieren und sie dann auf Ihr IoT-Edge-Gerät kopieren.
Welche Voraussetzungen gibt es?
Sie benötigen ein Linux- oder Windows-Gerät, auf dem IoT Edge installiert ist. Wenn Sie kein Gerät zur Hand haben, können Sie eines in einem virtuellen Azure-Computer erstellen. Führen Sie die Schritte in Bereitstellen Ihres ersten IoT Edge-Moduls auf einem virtuellen Linux-Gerät zum Erstellen eines IoT Hubs, Erstellen eines virtuellen Computers und Konfigurieren der IoT-Edge-Runtime aus.
So richten Sie das Zertifikat der Gerätezertifizierungsstelle ein
Für alle IoT-Edge-Gateways muss ein Zertifikat der Gerätezertifizierungsstelle installiert sein. Der IoT-Edge-Sicherheits-Daemon verwendet das Zertifizierungsstellenzertifikat für IoT Edge-Geräte zum Signieren eines Zertifikats der Workload-Zertifizierungsstelle, das wiederum ein Serverzertifikat für IoT Edge Hub signiert. Das Gateway legt dem nachgeschalteten Gerät während der Initiierung der Verbindung sein Serverzertifikat vor. Das nachgeschaltete Gerät überprüft, ob das Serverzertifikat Teil einer Zertifikatskette ist, die zum Zertifikat der Stammzertifizierungsstelle führt. Durch diesen Vorgang kann das nachgeschaltete Gerät bestätigen, dass das Gateway aus einer vertrauenswürdigen Quelle stammt.
Das Zertifikat der Stammzertifizierungsstelle und das Zertifikat der Gerätezertifizierungsstelle (mit seinem privaten Schlüssel) müssen auf dem IoT-Edge-Gatewaygerät vorhanden und in der IoT Edge-Konfigurationsdatei konfiguriert sein. Beachten Sie, dass in diesem Fall Zertifikat der Stammzertifizierungsstelle die oberste Zertifizierungsstelle für dieses IoT Edge-Szenario ist. Für das Zertifikat der Stammzertifizierungsstelle des Gatewaygeräts und die nachgeschalteten Geräte müssen Sie ein Rollup auf das gleiche Zertifikat der Stammzertifizierungsstelle ausführen.
Halten Sie die folgenden Dateien bereit:
- Zertifikat der Stammzertifizierungsstelle
- Zertifikat der Gerätezertifizierungsstelle
- Privater Schlüssel des Zertifikats der Gerätezertifizierungsstelle
In Produktionsszenarios sollten diese Dateien mit ihrer eigenen Zertifizierungsstelle generiert werden. Für Entwicklungs- und Testszenarios können Sie Demozertifikate verwenden.
Wenn Sie keine eigene Zertifizierungsstelle haben und Demozertifikate verwenden möchten, folgen Sie den Anleitungen unter Erstellen von Demo-Zertifikaten zum Testen der Features von IoT-Edge-Geräten (externer Link!) zum Erstellen Ihrer Dateien. Auf dieser Seite müssen Sie die folgenden Schritte ausführen:
- Richten Sie zuerst die Skripts zum Erstellen von Zertifikaten auf Ihrem Gerät ein.
- Erstellen Sie ein Stammzertifikat der Zertifizierungsstelle. Am Ende dieser Anleitungen verfügen Sie über eine Zertifikatdatei der Stammzertifizierungsstelle:
<path>/certs/azure-iot-test-only.root.ca.cert.pem.
- Erstellen Sie Zertifizierungsstellenzertifikate für IoT Edge-Geräte. Am Ende dieser Anleitungen verfügen Sie über ein Zertifikat der Gerätezertifizierungsstelle und den dazugehörigen privaten Schlüssel:
<path>/certs/iot-edge-device-<cert name>-full-chain.cert.pem
und
<path>/private/iot-edge-device-<cert name>.key.pem
Wenn Sie die Zertifikate auf einem anderen Computer erstellt haben, kopieren Sie sie auf Ihr IoT Edge-Gerät. Führen Sie dann die nächsten Schritte aus.
- Öffnen Sie auf Ihrem IoT Edge-Gerät die Konfigurationsdatei /etc/aziot/config.toml. (Tipp: Wenn die Konfigurationsdatei auf dem Gerät noch nicht vorhanden ist, verwenden Sie /etc/aziot/config.toml.edge.template als Vorlage zum Erstellen einer Datei.)
- Suchen Sie den Parameter trust_bundle_cert. Heben Sie die Auskommentierung dieser Zeile auf, und geben Sie den Datei-URI zur Datei mit dem Zertifikat der Stammzertifizierungsstelle auf Ihrem Gerät an.
- Suchen Sie den Abschnitt [edge_ca] (Bereitstellung) der Datei. Heben Sie die Auskommentierung der drei Zeilen in diesem Abschnitt auf, und geben Sie die Datei-URIs zu Ihren Zertifikats- und Schlüsseldateien als Werte für die folgenden Eigenschaften an:
1. cert: Zertifikat der Gerätezertifizierungsstelle
2. pk: privater Schlüssel des Zertifikats der Gerätezertifizierungsstelle
- Speichern und schließen Sie die Datei.
- Übernehmen Sie Ihre Änderungen
Bereitstellen von edgeHub und Weiterleiten von Nachrichten
Nachgeschaltete Geräte senden Telemetriedaten und Nachrichten an das Gateway-Gerät, wobei das Modul „IoT Edge-Hub“ für das Routing der Informationen an andere Module oder IoT Hub zuständig ist. Sorgen Sie für Folgendes, um Ihr Gateway-Gerät für diese Funktion vorzubereiten:
- Das Modul „IoT-Edge-Hub“ wird auf dem Gerät bereitgestellt: Wenn Sie IoT Edge zum ersten Mal auf einem Gerät installieren, startet nur ein Systemmodul automatisch: der IoT-Edge-Agent. Nachdem Sie die erste Bereitstellung für ein Gerät erstellt haben, wird das zweite Systemmodul, der IoT-Edge-Hub, ebenfalls gestartet. Wenn das Modul edgeHub auf Ihrem Gerät nicht ausgeführt wird, erstellen Sie eine Bereitstellung für das Gerät.
- Für das Modul „IoT-Edge-Hub“ wurden Routen zur Verarbeitung eingehender Nachrichten von nachgeschalteten Geräten eingerichtet: Für das Gateway-Gerät muss eine Route vorhanden sein, damit Nachrichten von nachgeschalteten Geräten verarbeitet werden können. Andernfalls ist eine Verarbeitung nicht möglich. Sie können die Nachrichten an Module auf dem Gateway-Gerät oder direkt an IoT Hub senden.
Führen Sie die folgenden Schritte aus, um das Modul „IoT-Edge-Hub“ bereitzustellen und mit Routen zur Verarbeitung eingehender Nachrichten von nachgeschalteten Geräten zu konfigurieren:
1. Navigieren Sie im Azure-Portal zu Ihrem IoT Hub.
2. Wechseln Sie zu IoT Edge, und wählen Sie das IoT-Edge-Gerät aus, das Sie als Gateway verwenden möchten.
3. Wählen Sie Module festlegen aus.
4. Auf der Seite Module können Sie alle Module hinzufügen, die Sie auf dem Gateway-Gerät bereitstellen möchten. Für den Zweck dieses Artikels konzentrieren wir uns auf die Konfiguration und Bereitstellung des Moduls „edgeHub“, das auf dieser Seite nicht explizit festgelegt werden muss.
5. Klicken Sie auf Weiter: Routen.
6. Stellen Sie auf der Seite Routen sicher, dass es eine Route zum Verarbeiten von Nachrichten von nachgeschalteten Geräten gibt. Beispiel:
- Eine Route, die alle Nachrichten – ganz gleich, ob von einem Modul oder einem nachgeschalteten Gerät – an IoT Hub sendet:
- Name:
- Wert:
- Eine Route, die sämtliche Nachrichten von allen nachgeschalteten Geräten an IoT Hub sendet:
- Name:
- Wert:
Diese Route funktioniert, weil Nachrichten von nachgeschalteten Geräten – im Gegensatz zu Nachrichten von IoT Edge Modulen – keine Modul-ID zugeordnet ist. Mithilfe der WHERE-Klausel der Route können alle Nachrichten mit dieser Systemeigenschaft herausgefiltert werden.
7. Nachdem Ihre Route(n) erstellt wurde(n), wählen Sie Überprüfen + erstellen aus.
8. Wählen Sie auf der Seite Überprüfen + erstellen die Option Erstellen aus.
Öffnen von Ports auf dem Gateway-Gerät
Standard IoT-Edge-Geräte benötigen keine eingehende Verbindung, um zu funktionieren, da die gesamte Kommunikation mit dem IoT Hub über ausgehende Verbindungen erfolgt. Gateway-Geräte unterscheiden sich dadurch, dass sie in der Lage sein müssen, Nachrichten von ihren nachgeschalteten Geräten zu empfangen. Wenn zwischen den nachgeschalteten Geräten und dem Gateway-Gerät eine Firewall ist, muss die Kommunikation auch über die Firewall möglich sein.
Damit ein Gateway-Szenario funktioniert, muss mindestens eines der unterstützten Protokolle des IoT-Edge-Hubs für den eingehenden Datenverkehr von nachgeschalteten Geräten offen sein. Die unterstützten Protokolle sind MQTT, AMQP, HTTPS, MQTT über WebSockets und AMQP über WebSockets.
Nun haben Sie ein IoT Edge-Gerät als transparentes Gateway eingerichtet. Nachgeschaltete Geräte müssen dann noch so konfiguriert werden, dass sie dem Gateway vertrauen und Nachrichten daran senden.
:quality(80)/p7i.vogel.de/wcms/97/9b/979bb33c1ef56e643970cb6f75318c21/97862239.jpeg)
Edge-Computing
Wie IoT-Gateway-Module Multitasking am Edge verbessern
:quality(80)/images.vogel.de/vogelonline/bdb/1487400/1487463/original.jpg)
Mit Windows 10 IoT schnell und einfach KI-Anwendungen am IoT-Edge einsetzen
* Stefanie Grois ist IoT Solution Architect EMEA bei Microsoft.
(ID:48194058)