Edge Computing für das Internet der Dinge So konfigurieren Sie IoT-Edge-Geräte als transparentes Gateway

Von Stefanie Grois *

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 mithilfe von Microsoft Azure IoT Edge einen solchen Gateway einrichten.

Anbieter zum Thema

Beispielhaftes IoT-Edge-Gateway, ein SmartMOD SL-100 von EFCO. Die Einrichtung eines eigenen IoT-Edge-Gateways, implementiert mit den entsprechenden Sicherheitszertifikaten, erlaubt eine schnelle und sichere Vorverarbeitung von Daten, ehe irgendwelche Geräteinformationen hinaus in die Cloud gesendet werden.
Beispielhaftes IoT-Edge-Gateway, ein SmartMOD SL-100 von EFCO. Die Einrichtung eines eigenen IoT-Edge-Gateways, implementiert mit den entsprechenden Sicherheitszertifikaten, erlaubt eine schnelle und sichere Vorverarbeitung von Daten, ehe irgendwelche Geräteinformationen hinaus in die Cloud gesendet werden.
(Bild: EFCO Electronics)

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.

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.

Stammzertifizierungsstellen-Zertifikat

Der in diesem Artikel verwendete Begriff Stammzertifizierungsstellen-Zertifikat (Stamm-ZS-Zertifikat) bezieht sich auf die oberste Zertifizierungsstelle des öffentlichen Zertifikats der PKI-Vertrauenskette. Es muss nicht unbedingt der Zertifikatstamm einer fremden Zertifizierungsstelle sein. In vielen Fällen ist es tatsächlich nur ein öffentliches Zertifikat einer Zwischenzertifizierungsstelle.

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?

Bild 1: Gateway-Setup.
Bild 1: Gateway-Setup.
(Bild: Microsoft)

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.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Big Data, Analytics & AI

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

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 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

Bild 2: Anweisung zur Anwendung der Iot-Edge-Konfiguration.
Bild 2: Anweisung zur Anwendung der Iot-Edge-Konfiguration.
(Bild: Microsoft)

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.

Bild 3: Unterstützte Protokolle und die dazu am Gateway zugewiesenen Ports.
Bild 3: Unterstützte Protokolle und die dazu am Gateway zugewiesenen Ports.
(Bild: Microsoft)

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.

Dieser Artikel stammt von unserem Partnerportal elektronikpraxis.

* Stefanie Grois ist IoT Solution Architect EMEA bei Microsoft.

(ID:48205813)