Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : IoT Edge 1.5
Important
IoT Edge 1.5 LTS est la version prise en charge. IoT Edge 1.4 LTS est en fin de vie depuis le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.
Cet article fournit des instructions détaillées pour configurer un appareil IoT Edge en tant que passerelle transparente afin que d’autres appareils puissent se connecter à IoT Hub. Dans cet article, la passerelle IoT Edge signifie qu’un appareil IoT Edge est configuré en tant que passerelle transparente. Pour plus d’informations, consultez Guide pratique pour utiliser un appareil IoT Edge en tant que passerelle.
Remarque
Les appareils en aval ne peuvent pas utiliser le chargement de fichier.
Il existe trois étapes principales pour configurer une connexion de passerelle transparente. Cet article décrit la première étape :
- Configurez l’appareil de passerelle en tant que serveur afin que les appareils en aval puissent se connecter en toute sécurité. Configurez la passerelle pour recevoir des messages des appareils en aval et les acheminer vers la destination appropriée.
- Créez une identité d’appareil pour l’appareil en aval afin qu’il puisse s’authentifier auprès d’IoT Hub. Configurez l’appareil en aval pour envoyer des messages par le biais de l’appareil de passerelle. Ces étapes sont décrites dans Authentifier un appareil en aval auprès d'Azure IoT Hub.
- Connectez l’appareil en aval à l’appareil de passerelle et commencez à envoyer des messages. Pour plus d’informations sur ces étapes, voir Connecter un appareil en aval à une passerelle Azure IoT Edge.
Pour agir en tant que passerelle, un appareil doit se connecter de manière sécurisée à ses appareils en aval. Azure IoT Edge vous permet d’utiliser l’infrastructure à clé publique (PKI) pour configurer des connexions sécurisées entre les appareils. Dans ce cas, un appareil en aval se connecte à un appareil IoT Edge agissant comme une passerelle transparente. Pour assurer la sécurité, le dispositif en aval vérifie l'identité du dispositif passerelle. Cette vérification permet d’empêcher les appareils de se connecter à des passerelles malveillantes.
Un appareil en aval peut être n’importe quelle application ou plateforme avec une identité créée dans Azure IoT Hub. Ces applications utilisent souvent Azure IoT device SDK. Un appareil en aval peut même être une application s’exécutant sur l’appareil de passerelle IoT Edge lui-même.
Vous pouvez créer n’importe quelle infrastructure de certificat permettant l’approbation requise pour votre topologie de l’appareil à la passerelle. Dans cet article, nous utilisons la même configuration de certificat que la sécurité d’autorité de certification X.509 dans IoT Hub. Cette configuration utilise un certificat d’autorité de certification X.509 associé à un hub IoT spécifique (l’autorité de certification racine du hub IoT), une série de certificats signés avec cette autorité de certification et une autorité de certification pour l’appareil IoT Edge.
Remarque
Le terme certificat d’autorité de certification racine utilisé dans ces articles désigne le certificat public de l’autorité la plus haute dans la hiérarchie de certificats PKI, et pas obligatoirement le certificat racine d’une autorité de certification syndiquée. Dans de nombreux cas, il s’agit en fait d’un certificat public d’autorité de certification intermédiaire.
Suivez ces étapes pour créer les certificats et les installer dans les emplacements appropriés sur la passerelle. Utilisez n’importe quel ordinateur pour générer les certificats, puis copiez-les sur votre appareil IoT Edge.
Prérequis
Vous avez besoin d’un appareil Linux ou Windows avec IoT Edge installé.
Si vous n’avez pas d’appareil prêt, créez-en un dans une machine virtuelle Azure. Suivez les étapes décrites dans Déployer votre premier module IoT Edge sur un appareil Linux virtuel pour créer un IoT Hub, créer une machine virtuelle et configurer le runtime IoT Edge.
Configurer le certificat d’autorité de certification Edge
Toutes les passerelles IoT Edge requièrent l’installation d’un certificat d’autorité de certification Edge. Le démon de sécurité IoT Edge utilise le certificat d’autorité de certification Edge pour signer un certificat d’autorité de certification de charge de travail, qui à son tour signe un certificat de serveur pour le hub IoT Edge. La passerelle présente son certificat de serveur à l’appareil en aval lors de l’établissement de la connexion. L’appareil en aval vérifie que le certificat de serveur fait partie d’une chaîne de certificats qui remonte jusqu’au certificat d’autorité de certification racine. Ce processus permet à l’appareil en aval de garantir que la passerelle provient d’une source approuvée. Pour plus d’informations, consultez Comprendre comment Azure IoT Edge utilise les certificats.
Le certificat d’autorité de certification racine et le certificat d’autorité de certification Edge (avec sa clé privée) doivent se trouver sur l’appareil de passerelle IoT Edge et être définis dans le fichier de configuration IoT Edge. Dans ce cas, le certificat de l'autorité de certification racine désigne l’autorité de certification principale pour ce scénario IoT Edge. Le certificat d’autorité de certification Edge de passerelle et les certificats des appareils en aval doivent être regroupés sous le même certificat d’autorité de certification racine.
Conseil
Le processus d’installation du certificat d’autorité de certification racine et du certificat d’autorité de certification Edge sur un appareil IoT Edge est également expliqué plus en détail dans Gérer des certificats sur un appareil IoT Edge.
Préparez les fichiers suivants :
- Certificat d’autorité de certification racine
- Certificat d'autorité de certification Edge
- Clé privée d’autorité de certification d’appareil
Pour les scénarios de production, générez ces fichiers avec votre propre autorité de certification. Pour les scénarios de développement et de test, vous pouvez utiliser des certificats de démonstration.
Créer des certificats de démonstration
Si vous n’avez pas votre propre autorité de certification et souhaitez utiliser des certificats de démonstration, suivez les instructions fournies dans Créer des certificats de démonstration pour tester les fonctionnalités de l’appareil IoT Edge pour créer vos fichiers. Sur cette page, procédez comme suit :
- Configurez les scripts pour générer des certificats sur votre appareil.
- Créez un certificat d’autorité de certification racine. À la fin, vous avez un fichier de certificat d’autorité de certification racine
<path>/certs/azure-iot-test-only.root.ca.cert.pem
. - Créer des certificats d’autorité de certification IoT Edge. À la fin, vous disposez d’un certificat
<path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pem
d’autorité de certification Edge et de sa clé<path>/private/iot-edge-device-ca-<cert name>.key.pem
privée.
Copier des certificats sur l’appareil
Vérifiez que le certificat répond aux exigences de format.
Si vous avez créé les certificats sur un autre ordinateur, copiez-les sur votre appareil IoT Edge. Utilisez un lecteur USB, un service comme Azure Key Vault ou une commande telle que la copie de fichiers sécurisée.
Déplacez les fichiers vers le répertoire préféré pour les certificats et les clés :
/var/aziot/certs
pour les certificats et/var/aziot/secrets
pour les clés.Créez les répertoires de certificats et de clés et définissez les autorisations. Stockez vos certificats et clés dans le répertoire préféré
/var/aziot
:/var/aziot/certs
pour les certificats et/var/aziot/secrets
pour les clés.# If the certificate and keys directories don't exist, create, set ownership, and set permissions sudo mkdir -p /var/aziot/certs sudo chown aziotcs:aziotcs /var/aziot/certs sudo chmod 755 /var/aziot/certs sudo mkdir -p /var/aziot/secrets sudo chown aziotks:aziotks /var/aziot/secrets sudo chmod 700 /var/aziot/secrets
Modifiez la propriété et les autorisations des certificats et clés.
# Give aziotcs ownership to certificates # Read and write for aziotcs, read-only for others sudo chown -R aziotcs:aziotcs /var/aziot/certs sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \; # Give aziotks ownership to private keys # Read and write for aziotks, no permission for others sudo chown -R aziotks:aziotks /var/aziot/secrets sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
Configurer des certificats sous Linux
sur votre appareil IoT Edge, ouvrez le fichier config :
/etc/aziot/config.toml
. Si vous utilisez IoT Edge pour Linux sur Windows, connectez-vous à la machine virtuelle EFLOW à l’aide de l’appletConnect-EflowVm
de commande PowerShell.Conseil
Si le fichier config n’existe pas encore sur votre appareil, utilisez
/etc/aziot/config.toml.edge.template
comme modèle pour en créer un.Recherchez le paramètre
trust_bundle_cert
. Supprimez les marques de commentaire de cette ligne et fournissez l’URI du fichier de certificat d’autorité de certification racine sur votre appareil.Recherchez la section
[edge_ca]
du fichier. Supprimez les marques de commentaire des trois lignes de cette section et fournissez les URI de vos fichiers de certificat et de clé en tant que valeurs pour les propriétés suivantes :- cert : Certificat d’autorité de certification de périphérie
- pk : clé privée d’autorité de certification d’appareil
Enregistrez le fichier et fermez-le.
Sélectionnez Appliquer pour appliquer vos modifications.
sudo iotedge config apply
Déployer edgeHub et acheminer les messages
Les appareils en aval envoient des données de télémétrie et des messages à l’appareil de passerelle, où le module hub IoT Edge achemine les informations vers d’autres modules ou vers IoT Hub. Pour préparer votre appareil de passerelle à cette fonction, assurez-vous que :
Le module IoT Edge Hub est déployé sur l'appareil.
Lorsque vous installez IoT Edge sur un appareil, un seul module système démarre automatiquement : l’agent IoT Edge. Lorsque vous créez le premier déploiement pour un appareil, le deuxième module système et le hub IoT Edge démarrent également. Si le module edgeHub ne fonctionne pas sur votre appareil, créez un déploiement pour votre appareil.
Le module IoT Edge Hub dispose d'itinéraires configurés pour gérer les messages entrants des appareils situés en aval.
L’appareil de passerelle a besoin d’un itinéraire pour gérer les messages provenant d’appareils en aval, ou ces messages ne sont pas traités. Vous pouvez envoyer les messages aux modules situés sur l'appareil de passerelle ou directement à IoT Hub.
Pour déployer le module Hub IoT Edge et configurer des itinéraires pour gérer les messages entrants à partir d’appareils en aval, procédez comme suit :
Accédez à votre IoT Hub dans le Portail Azure.
Accédez à Appareils sous le menu Gestion desappareils et sélectionnez votre appareil IoT Edge à utiliser comme passerelle.
Sélectionnez Définir modules.
Dans la page Modules , ajoutez les modules que vous souhaitez déployer sur l’appareil de passerelle. Dans cet article, vous vous concentrez sur la configuration et le déploiement du module edgeHub, qui n’a pas besoin d’être défini explicitement sur cette page.
Sélectionnez Suivant : Itinéraires.
Dans la page Routes , vérifiez qu’il existe un itinéraire pour gérer les messages à partir d’appareils en aval. Par exemple :
Un itinéraire qui envoie à IoT Hub tous les messages provenant d'un module ou d'un appareil situé en aval :
-
Nom :
allMessagesToHub
-
Valeur :
FROM /messages/* INTO $upstream
-
Nom :
Un itinéraire qui envoie à IoT Hub tous les messages provenant de tous les appareils en aval :
-
Nom :
allDownstreamToHub
-
Valeur :
FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream
Cet itinéraire fonctionne car, contrairement aux messages provenant des modules IoT Edge, les messages provenant des appareils situés en aval ne sont pas associés à un ID de module. L’utilisation de la clause WHERE de l’itinéraire vous permet de filtrer les messages avec cette propriété système.
Pour plus d’informations sur le routage des messages, consultez Déployer des modules et établir des itinéraires.
-
Nom :
Après avoir créé votre itinéraire ou vos itinéraires, sélectionnez Vérifier + créer.
Dans la page Vérifier + créer, sélectionnez Créer.
Ouvrir des ports sur l’appareil de passerelle
Les appareils IoT Edge standard peuvent fonctionner sans connexions entrantes, car toutes les communications avec le hub IoT s’effectuent par le biais de connexions sortantes. Les appareils de passerelle fonctionnent différemment, car ils doivent recevoir les messages de leurs appareils en aval. S’il y a un pare-feu entre les appareils en aval et l’appareil de passerelle, les communications doivent également pouvoir se faire par le pare-feu.
Dans un scénario de passerelle opérationnel, au moins un des protocoles pris en charge par le hub IoT Edge doit être ouvert pour recevoir le trafic entrant des appareils en aval. Les protocoles pris en charge sont les suivants : MQTT, AMQP, HTTPS, MQTT sur Websockets et AMQP sur WebSockets.
Port | Protocole |
---|---|
8883 | MQTT |
5671 | AMQP |
443 | HTTPS MQTT + WS AMQP + WS |
Étapes suivantes
Maintenant que vous configurez un appareil IoT Edge en tant que passerelle transparente, configurez vos appareils en aval pour approuver la passerelle et lui envoyer des messages. Continuez à authentifier un appareil en aval auprès d’Azure IoT Hub pour les étapes suivantes de votre scénario de passerelle transparente.