Créer et provisionner des appareils IoT Edge à grande échelle avec un module TPM sur Windows

S’applique à :icône oui IoT Edge 1.1

Important

IoT Edge la date de fin du support 1.1 était le 13 décembre 2022. Consultez la page Politique de support Microsoft pour plus d’informations sur la prise en charge de ce produit, de ce service, de cette technologie ou de cette API. Pour plus d’informations sur la mise à jour vers la dernière version de IoT Edge, consultez Mettre à jour IoT Edge.

Cet article fournit des instructions concernant le provisionnement automatique d’un appareil Azure IoT Edge pour Windows en utilisant un TPM (module de plateforme sécurisée). Les appareils IoT Edge peuvent être provisionnés automatiquement à l’aide du service Azure IoT Hub Device Provisioning. Si vous ne connaissez pas le processus de provisionnement automatique, consultez la présentation du provisionnement avant de poursuivre.

Notes

Azure IoT Edge pour conteneurs Windows ne sera pas pris en charge à partir de la version 1.2 d’Azure IoT Edge.

Envisagez d’utiliser la nouvelle méthode pour exécuter IoT Edge sur des appareils Windows, Azure IoT Edge pour Linux sur Windows.

Si vous souhaitez utiliser Azure IoT Edge pour Linux sur Windows, vous pouvez effectuer les étapes décrites dans le guide pratique équivalent.

Cet article décrit deux méthodologies. Sélectionnez votre préférence en fonction de l’architecture de votre solution :

  • Provisionnement automatique d’un appareil Windows avec du matériel TPM physique.
  • Provisionnement automatique d’un appareil Windows avec un TPM simulé. Nous vous recommandons cette méthodologie uniquement comme scénario de test. Un module de plateforme sécurisée simulé n’offre pas la même sécurité qu’un module de plateforme sécurisée physique.

Les instructions varient en fonction de la méthode choisie. Vérifiez que vous vous trouvez dans l’onglet approprié.

Voici les tâches à effectuer :

  • Récupérez les informations d’approvisionnement de votre appareil.
  • Création d’une inscription individuelle pour l’appareil.
  • Installation du runtime IoT Edge et connexion de l’appareil à IoT Hub.

Prérequis

Les prérequis sont les mêmes pour les solutions de TPM physique et de TPM virtuel.

Ressources cloud

  • Hub IoT actif
  • Instance du service de provisionnement des appareils IoT Hub dans Azure, liée à votre hub IoT
    • Si vous ne disposez pas d’une instance de service Device Provisioning, vous pouvez suivre les instructions fournies dans les sections Créer un service IoT Hub Device Provisioning et Lier le hub IoT et votre service Device Provisioning du guide de démarrage rapide du service IoT Hub Device Provisioning.
    • Après avoir lancé l’exécution du service Device Provisioning, copiez la valeur de Étendue de l’ID à partir de la page de présentation. Vous utilisez cette valeur lorsque vous configurez le runtime IoT Edge.

Exigences relatives aux appareils

Une machine de développement Windows. Cet article utilise Windows 10.

Notes

TPM 2.0 est requis lorsque vous utilisez l’attestation TPM avec le service de provisionnement des appareils.

Vous pouvez uniquement créer des inscriptions de service de provisionnement des appareils, et non de groupe, lorsque vous utilisez un module de plateforme sécurisée.

Configurer votre TPM

Dans cette section, vous créez un outil permettant de récupérer l’ID d’inscription et la paire de clés de type EK (Endorsement key) de votre module TPM.

  1. Suivez les étapes décrites dans Configurer un environnement de développement Windows pour installer et générer l’Azure IoT device SDK pour C.

  2. Exécutez les commandes suivantes dans une session PowerShell avec élévation de privilèges pour créer l’outil Kit de développement logiciel (SDK) qui récupère les informations d’approvisionnement de votre appareil pour votre TPM.

    cd azure-iot-sdk-c\cmake
    cmake -Duse_prov_client:BOOL=ON ..
    cd provisioning_client\tools\tpm_device_provision
    make
    .\tpm_device_provision
    
  3. La fenêtre Sortie affiche l’ID d’inscription et la Paire de clés de type EK (Endorsement Key) de l’appareil. Copiez ces valeurs. Vous vous en servirez plus tard, au moment de créer une inscription individuelle pour votre appareil dans le service de provisionnement des appareils.

Conseil

Si vous ne souhaitez pas utiliser l’outil SDK pour récupérer les informations, vous devez trouver un autre moyen d’obtenir les informations de provisionnement. La paire de clés de type EK, propre à chaque puce TPM, est fournie par le fabricant de la puce TPM associée. Vous pouvez dériver un ID d’inscription unique pour votre appareil TPM. Par exemple, vous pouvez créer un hachage SHA-256 de la paire de clés de type EK.

Une fois que vous avez votre ID d’inscription et votre paire de clés de type EK, vous pouvez continuer.

Créer une inscription dans le service de provisionnement des appareils

Utilisez les informations de provisionnement de votre TPM pour créer une inscription individuelle dans le service de provisionnement des appareils.

Lorsque vous créez une inscription dans le service de provisionnement des appareils, vous avez la possibilité de déclarer un état initial du jumeau d’appareil. Dans le jumeau d’appareil, vous pouvez définir des balises pour regrouper les appareils en fonction des différentes métriques utilisées dans votre solution, comme la région, l’environnement, l’emplacement ou le type d’appareil. Ces balises sont utilisées pour créer des déploiements automatiques.

Conseil

Les étapes décrites dans cet article concernent le portail Azure, mais vous pouvez également créer des inscriptions individuelles en utilisant Azure CLI. Pour plus d’informations, consultez la section relative à az iot dps enrollment. Dans la commande CLI, utilisez l’indicateur edge-enabled pour spécifier que l’inscription concerne un appareil IoT Edge.

  1. Dans le portail Azure, accédez à votre instance du service IoT Hub Device Provisioning.

  2. Sous Paramètres, sélectionnez Gérer les inscriptions.

  3. Sélectionnez Ajouter une inscription individuelle, puis suivez cette procédure pour configurer l’inscription :

    1. Pour Mécanisme, sélectionnez TPM.

    2. Spécifiez la paire de clés de type EK (Endorsement Key) et l’ID d’inscription que vous avez copiés sur votre machine virtuelle ou votre appareil physique.

    3. Fournissez un ID pour votre appareil si vous le souhaitez. Si vous ne fournissez pas un ID d’appareil, l’ID d’inscription est utilisé.

    4. Sélectionnez True pour déclarer que votre machine virtuelle ou votre appareil physique est un appareil IoT Edge.

    5. Choisissez le hub IoT lié auquel vous voulez connecter votre appareil, ou sélectionnez Lier à un nouveau hub IoT. Vous pouvez choisir plusieurs hubs : l’appareil sera affecté à l’un d’entre eux en fonction de la stratégie d’attribution sélectionnée.

    6. Ajoutez une valeur de balise à l’État initial du jumeau d’appareil si vous le souhaitez. Vous pouvez utiliser des balises pour cibler des groupes d’appareils lors du déploiement de module. Pour plus d’informations, consultez Déploiement de modules IoT Edge à grande échelle.

    7. Sélectionnez Enregistrer.

Maintenant qu’une inscription existe pour cet appareil, le runtime IoT Edge peut provisionner automatiquement l’appareil lors de l’installation.

Installer IoT Edge

Dans cette section, vous préparez votre machine virtuelle ou votre appareil physique Windows pour IoT Edge. Ensuite, vous installez IoT Edge.

Azure IoT Edge s’appuie sur un runtime de conteneur compatible avec OCI. Moby, un moteur basé sur Moby, est inclus dans le script d’installation, ce qui signifie qu’il n’y a aucune étape supplémentaire pour installer le moteur.

Pour installer le runtime IoT Edge :

  1. Exécutez PowerShell ISE en tant qu’administrateur.

    Utilisez une session AMD64 de PowerShell, et non PowerShell (x86). Si vous ne savez pas quel type de session vous utilisez, exécutez la commande suivante :

    (Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
    
  2. Exécutez la commande Deploy-IoTEdge qui effectue les tâches suivantes :

    • Vérifie que votre ordinateur Windows est sur une version prise en charge
    • Active la fonctionnalité des conteneurs
    • Télécharge le moteur moby et le runtime IoT Edge
    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Deploy-IoTEdge
    
  3. Redémarrez votre appareil si vous y êtes invité.

Quand vous installez IoT Edge sur un appareil, vous pouvez utiliser des paramètres supplémentaires pour modifier le processus, à savoir :

  • Diriger le trafic pour qu’il transite par un serveur proxy,
  • Pointer le programme d’installation vers un répertoire local pour une installation hors connexion

Pour plus d’informations sur ces paramètres supplémentaires, consultez Scripts PowerShell pour IoT Edge sur conteneurs Windows.

Provisionnement de l’appareil avec son identité cloud

Une fois le runtime installé sur votre appareil, configurez ce dernier avec les informations qu’il utilise pour se connecter au service de provisionnement des appareils et à IoT Hub.

  1. Récupérez les valeurs Étendue de l’ID du service de provisionnement des appareils et ID d’inscription de l’appareil qui ont été collectées dans les sections précédentes.

  2. Ouvrez une fenêtre PowerShell en mode administrateur. Veillez à utiliser une session AMD64 de PowerShell, et pas PowerShell (x86), quand vous installez IoT Edge.

  3. La commande Initialize-IoTEdge configure le runtime IoT Edge sur votre ordinateur. Par défaut, la commande est une commande d’approvisionnement manuel avec des conteneurs Windows. Ajoutez l’indicateur -Dps pour utiliser le service de provisionnement des appareils à la place du provisionnement manuel.

    Remplacez les valeurs d'espace réservé de paste_scope_id_here et paste_registration_id_here par les données que vous avez collectées précédemment.

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

Vérifier la réussite de l’installation

Si le runtime a démarré correctement, accédez à votre IoT Hub et commencez à déployer des modules IoT Edge sur votre appareil. Utilisez les commandes suivantes sur votre appareil pour vérifier que le runtime a été installé et démarré correctement.

  1. Vérifiez l’état du service IoT Edge.

    Get-Service iotedge
    
  2. Examinez les journaux d’activité du service des 5 dernières minutes.

    . {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog
    
  3. Répertoriez les modules en cours d’exécution.

    iotedge list
    

Étapes suivantes

Le processus d’inscription auprès du service de provisionnement des appareils vous permet de définir l’ID d’appareil et les balises du jumeau d’appareil en même temps que vous provisionnez le nouvel appareil. Vous pouvez utiliser ces valeurs pour cibler des appareils individuels ou des groupes d’appareils avec la gestion d’appareils automatique.

Découvrez comment déployer et surveiller des modules IoT Edge à grande échelle à l’aide du portail Azure ou d’Azure CLI.