Bedarfsgerechtes Erstellen und Bereitstellen von IoT Edge-Geräten mit einem TPM unter Windows

Gilt für:yes icon IoT Edge 1.1

Wichtig

IoT Edge 1.1: Datum für das Supportende war der 13. Dezember 2022. Informationen zur Unterstützung für dieses Produkt, diesen Dienst, diese Technologie oder diese API finden Sie in der Microsoft Lifecycle-Richtlinie. Weitere Informationen zum Aktualisieren auf die neueste Version von IoT Edge finden Sie unter Update IoT Edge.

Dieser Artikel enthält Anleitungen für die automatische Bereitstellung eines Azure IoT Edge für Windows-Geräts mithilfe eines TPM (Trusted Platform Module). Sie können loT Edge-Geräte mit dem Azure loT Hub Device Provisioning Service (Gerätebereitstellungsdienst) automatisch bereitstellen. Wenn Sie mit dem Prozess der automatischen Bereitstellung nicht vertraut sind, lesen Sie die Übersicht zur Bereitstellung, bevor Sie den Vorgang fortsetzen.

Hinweis

Azure IoT Edge mit Windows-Containern wird ab Version 1.2 von Azure IoT Edge nicht mehr unterstützt.

Ziehen Sie die neue Methode Azure IoT Edge für Linux unter Windows zum Ausführen von IoT Edge auf Windows-Geräten in Betracht.

Wenn Sie Azure IoT Edge für Linux unter Windows verwenden möchten, können Sie die Schritte in der entsprechenden Schrittanleitung ausführen.

In diesem Artikel werden zwei Methodiken beschrieben. Wählen Sie Ihre Präferenz basierend auf der Architektur Ihrer Lösung aus:

  • Automatische Bereitstellung eines Windows-Geräts mit physischer TPM-Hardware.
  • Automatische Bereitstellung eines Windows-Geräts, auf dem ein simuliertes TPM ausgeführt wird. Wir empfehlen diese Methodik nur als Testszenario. Ein simuliertes TPM bietet nicht die gleiche Sicherheit wie ein physisches TPM.

Die Anleitungen unterscheiden sich je nach Ihrer Methodik. Sorgen Sie deshalb künftig dafür, dass die richtige Registerkarte angezeigt wird.

Aufgaben:

  • Rufen Sie die Bereitstellungsinformationen für Ihr Gerät ab.
  • Erstellen Sie eine individuelle Registrierung für das Gerät.
  • Installieren Sie IoT Edge-Runtime, und verbinden Sie das Gerät mit einem IoT Hub.

Voraussetzungen

Die Voraussetzungen für physische TPM- und virtuelle TPM-Lösungen sind identisch.

Cloudressourcen

  • Ein aktiver IoT-Hub
  • Eine Instanz des IoT Hub Device Provisioning Service (Gerätebereitstellungsdienst) in Azure, die mit Ihrem IoT-Hub verknüpft ist

Geräteanforderungen

Windows-Entwicklungscomputer. In diesem Artikel wird Windows 10 verwendet.

Hinweis

TPM 2.0 ist erforderlich, wenn Sie den TPM-Nachweis beim Device Provisioning Service verwenden.

Wenn Sie ein TPM verwenden, können Sie nur individuelle Registrierungen des Device Provisioning Service erstellen, aber keine Gruppenregistrierungen.

Einrichten Ihres TPMs

In diesem Abschnitt erstellen Sie ein Tool, mit dem Sie die Registrierungs-ID und den Endorsement Key für Ihr TPM abrufen können.

  1. Führen Sie die Schritte in Einrichten einer Windows-Entwicklungsumgebung zum Installieren und Erstellen des Azure IoT-Geräte-SDKs für C aus.

  2. Führen Sie die folgenden Befehle in einer PowerShell-Sitzung mit erhöhten Rechten aus, um das SDK-Tool zu erstellen, das Ihre Gerätebereitstellungsinformationen für Ihr TPM abruft.

    cd azure-iot-sdk-c\cmake
    cmake -Duse_prov_client:BOOL=ON ..
    cd provisioning_client\tools\tpm_device_provision
    make
    .\tpm_device_provision
    
  3. Im Ausgabefenster werden die Registrierungs-ID und der Endorsement Key des Geräts angezeigt. Kopieren Sie diese Werte zur späteren Verwendung, wenn Sie eine individuelle Registrierung für Ihr Gerät im Device Provisioning Service erstellen.

Tipp

Wenn Sie nicht das SDK-Tool zum Abrufen der Bereitstellungsinformationen verwenden möchten, müssen Sie eine andere Möglichkeit zum Abrufen dieser Informationen finden. Der Endorsement Key, der bei jedem TPM-Chip eindeutig ist, wird von dem ihm zugeordneten TPM-Chiphersteller abgerufen. Sie können eine eindeutige Registrierungs-ID für Ihr TPM-Gerät ableiten. So können Sie beispielsweise einen SHA-256-Hash des Endorsement Key erstellen.

Nachdem Sie über Ihre Registrierungs-ID und Ihren Endorsement Key verfügen, können Sie den Vorgang fortsetzen.

Erstellen einer Registrierung für den Device Provisioning Service

Verwenden Sie die Bereitstellungsinformationen Ihres TPM, um eine individuelle Registrierung in Device Provisioning Service (DPS) zu erstellen.

Wenn Sie eine Registrierung in DPS erstellen, haben Sie die Möglichkeit, einen anfänglichen Gerätezwillingsstatus zu deklarieren. Im Gerätezwilling können Sie Tags zum Gruppieren von Geräten nach jeder beliebigen Metrik – z. B. Region, Umgebung, Speicherort oder Gerätetyp – festlegen, die in Ihrer Lösung verwendet wird. Diese Tags werden zum Erstellen von automatischen Bereitstellungen verwendet.

Tipp

Die Schritte in diesem Artikel beziehen sich auf das Azure-Portal. Sie können aber auch individuelle Registrierungen über die Azure CLI erstellen. Weitere Informationen finden Sie unter az iot dps-Registrierung. Verwenden Sie als Teil des CLI-Befehls das Flag edge-enabled (Edge-fähig), um anzugeben, dass die Registrierung für ein IoT Edge-Gerät gilt.

  1. Wechseln Sie im Azure-Portal zu Ihrer Instanz von IoT Hub Device Provisioning Service.

  2. Klicken Sie in Einstellungen auf Registrierungen verwalten.

  3. Wählen Sie Individuelle Registrierung hinzufügen aus, und führen Sie dann die folgenden Schritte zum Konfigurieren der Registrierung aus:

    1. Klicken Sie unter Mechanismus auf die Option TPM.

    2. Geben Sie den Endorsement Key und die Registrierungs-ID an, den bzw. die Sie von Ihrer VM oder Ihrem physischen Gerät kopiert haben.

    3. Geben Sie bei Bedarf eine ID für Ihr Gerät an. Wenn Sie keine Geräte-ID angeben, wird die Registrierungs-ID verwendet.

    4. Wählen Sie True aus, um zu deklarieren, dass Ihre VM oder Ihr physisches Gerät ein IoT Edge-Gerät ist.

    5. Wählen Sie die verknüpfte IoT Hub-Instanz, mit der Sie Ihr Gerät verbinden möchten, oder Link to new IoT Hub (Mit neuer IoT Hub-Instanz verknüpfen) aus. Sie können mehrere Hubs auswählen. Das Gerät wird dann je nach gewählter Zuweisungsrichtlinie einem dieser Hubs zugewiesen.

    6. Fügen Sie bei Bedarf einen Tagwert zu Anfänglicher Status von Gerätezwilling hinzu. Sie können mithilfe von Tags Gruppen von Geräten als Ziel für die Modulbereitstellung festlegen. Weitere Informationen finden Sie unter Bedarfsgerechtes Bereitstellen von IoT Edge-Modulen mithilfe des Azure-Portals.

    7. Wählen Sie Speichern aus.

Nachdem nun eine Registrierung für dieses Gerät vorhanden ist, kann die IoT Edge-Runtime das Gerät während der Installation automatisch bereitstellen.

Installieren von IoT Edge

In diesem Abschnitt bereiten Sie Ihre Windows-VM oder Ihr physisches Gerät für IoT Edge vor. Anschließend installieren Sie IoT Edge.

Azure IoT Edge basiert auf einer OCI-kompatiblen Containerruntime. Moby, eine Moby-basierte Engine, ist im Installationsskript enthalten. Dies bedeutet, dass keine zusätzlichen Schritte zum Installieren der Engine erforderlich sind.

So installieren Sie die IoT Edge-Runtime

  1. Führen Sie PowerShell als Administrator aus.

    Verwenden Sie eine AMD64-Sitzung von PowerShell, nicht PowerShell(x86). Wenn Sie nicht sicher sind, welchen Sitzungstyp Sie verwenden, führen Sie den folgenden Befehl aus:

    (Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
    
  2. Führen Sie den Befehl Deploy-IoTEdge aus, der die folgenden Aufgaben ausführt:

    • Überprüft, ob Ihr Windows-Computer mit einer unterstützten Version läuft.
    • Aktiviert das Containerfeature.
    • Lädt die Moby-Engine und die IoT Edge-Runtime herunter.
    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Deploy-IoTEdge
    
  3. Starten Sie das Gerät neu, wenn Sie dazu aufgefordert werden.

Wenn Sie IoT Edge auf einem Gerät installieren, können Sie zusätzliche Parameter verwenden, um den Prozess folgendermaßen anzupassen:

  • Sie können direkten Datenverkehr über einen Proxyserver leiten.
  • Legen Sie im Installationsprogramm ein lokales Verzeichnis für die Offlineinstallation fest.

Weitere Informationen zu diesen zusätzlichen Parametern finden Sie unter PowerShell-Skripts für IoT Edge mit Windows-Containern.

Bereitstellen des Geräts mit seiner Cloud-Identität

Nachdem die Runtime auf Ihrem Gerät installiert wurde, konfigurieren Sie es mit den Informationen, die es zum Herstellen einer Verbindung zwischen dem Device Provisioning Service und IoT Hub verwendet.

  1. Ermitteln Sie Ihren ID-Bereich des Device Provisioning Service und die Registrierungs-ID des Geräts, die in den vorhergehenden Abschnitten erfasst wurden.

  2. Öffnen Sie ein PowerShell-Fenster im Administratormodus. Wenn Sie IoT Edge installieren, müssen Sie eine AMD64-Sitzung von PowerShell – nicht PowerShell (x86) – verwenden.

  3. Der Befehl Initialize-IoTEdge konfiguriert die IoT Edge-Runtime auf Ihrem Computer. Standardmäßig wird für den Befehl die manuelle Bereitstellung mit Windows-Containern verwendet. Geben Sie das Flag -Dps an, wenn Sie den Device Provisioning Service statt der manuellen Bereitstellung verwenden möchten.

    Ersetzen Sie die Platzhalterwerte für paste_scope_id_here und paste_registration_id_here durch die zuvor gesammelten Daten.

    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Initialize-IoTEdge -Dps -ScopeId paste_scope_id_here -RegistrationId paste_registration_id_here
    

Bestätigen einer erfolgreichen Installation

Wenn die Runtime erfolgreich gestartet wurde, wechseln Sie zu Ihrem IoT Hub, und beginnen Sie mit dem Bereitstellen von IoT Edge-Modulen auf Ihrem Gerät. Verwenden Sie die folgenden Befehle auf Ihrem Gerät, um zu überprüfen, ob das Installieren und Starten der Runtime erfolgreich war.

  1. Überprüfen Sie den Status des IoT Edge-Diensts.

    Get-Service iotedge
    
  2. Untersuchen Sie die Dienstprotokolle der letzten fünf Minuten.

    . {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog
    
  3. Führen Sie ausgeführte Module auf.

    iotedge list
    

Nächste Schritte

Der Registrierungsprozess des Device Provisioning Service ermöglicht es Ihnen, die Geräte-ID und die Tags von Gerätezwillingen beim Bereitstellen des neuen Geräts festzulegen. Sie können diese Werte verwenden, um einzelne Geräte oder Gruppen von Geräten über die automatische Geräteverwaltung als Ziel festzulegen.

Weitere Informationen finden Sie unter „Bedarfsgerechtes Bereitstellen und Überwachen von IoT Edge-Modulen mithilfe des Azure-Portals oder mithilfe der Azure CLI“.