Ouvrez un tunnel pour un appareil distant et utilisez le protocole SSH basé sur un navigateur - AWS IoT Core

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Ouvrez un tunnel pour un appareil distant et utilisez le protocole SSH basé sur un navigateur

Depuis la AWS IoT console, vous pouvez créer un tunnel depuis le hub Tunnels ou depuis la page de détails d'un objet IoT que vous avez créé. Lorsque vous créez un tunnel à partir du hub Tunnels, vous pouvez spécifier si vous souhaitez créer un tunnel à l'aide de la configuration rapide ou de la configuration manuelle. Pour voir un exemple de didacticiel, consultez la section Ouvrez un tunnel et démarrez une session SSH sur un appareil distant.

Lorsque vous créez un tunnel à partir de la page de détails de l'objet de la AWS IoT console, vous pouvez également spécifier s'il faut créer un nouveau tunnel ou ouvrir un tunnel existant pour cet objet, comme illustré dans ce didacticiel. Si vous choisissez un tunnel existant, vous pouvez accéder au tunnel ouvert le plus récent que vous avez créé pour cet appareil. Vous pouvez ensuite utiliser l'interface de ligne de commande du terminal pour accéder à l'appareil par SSH.

Prérequis

  • Les pare-feu derrière l'appareil distant doivent autoriser permettre le trafic sortant sur le port 443. Le tunnel que vous créez utilisera ce port pour se connecter au périphérique distant.

  • Vous avez créé un objet IoT (par exemple,RemoteDevice1) dans le AWS IoT registre. Cela correspond à la représentation de votre appareil distant dans le cloud. Pour plus d'informations, consultez Enregistrement d'un appareil dans le AWS IoT registre.

  • Vous disposez d'un agent pour appareils IoT (voirExtrait de l'agent IoT) exécuté sur l'appareil distant qui se connecte à la passerelle de l' AWS IoT appareil et qui est configuré avec un abonnement à une rubrique MQTT. Pour plus d'informations, voir connecter un appareil à la passerelle de AWS IoT périphériques.

  • Vous devez disposer d'un démon SSH s'exécutant sur l'appareil distant.

Ouvrez un nouveau tunnel pour le périphérique distant

Supposons que vous souhaitiez ouvrir un tunnel vers votre appareil distant, RemoteDevice1. Tout d'abord, créez un objet IoT dont le nom RemoteDevice1 figure dans le AWS IoT registre. Vous pouvez ensuite créer un tunnel à l' AWS Management Console aide de l' AWS IoT API de référence ou du AWS CLI.

Si vous configurez la destination lorsque vous appelez , le service Secure Tunneling fournit le jeton d'accès du client de destination à l'appareil distant via MQTT et la rubrique MQTT réservée ($aws/things/RemoteDeviceA/tunnels/notify). Pour plus d’informations, consultez Méthodes de création de tunnels dans AWS IoT la console.

Pour créer un tunnel pour un appareil distant à partir de la console
  1. Choisissez l'objet, RemoteDevice1, pour afficher ses détails, puis choisissez Créer un tunnel sécurisé.

    Détails d'un appareil nommé « RemoteDevice 1 » avec son Amazon Resource Name (ARN) affiché.
  2. Choisissez de créer un nouveau tunnel ou d'ouvrir un tunnel existant. Pour créer un nouveau tunnel, choisissez Create new tunnel. Vous pouvez ensuite choisir d'utiliser la méthode de configuration manuelle ou la méthode de configuration rapide pour créer le tunnel. Pour plus d’informations, consultez Ouvrez un tunnel à l'aide de la configuration manuelle et connectez-vous à un appareil distant et Ouvrez un tunnel et utilisez le protocole SSH basé sur un navigateur pour accéder à un appareil distant.

Pour créer un tunnel pour un appareil distant à l'aide de l'API

Pour ouvrir un nouveau tunnel, vous pouvez utiliser l'opération OpenTunnelAPI. Le code suivant montre un exemple d'exécution de cette commande.

aws iotsecuretunneling open-tunnel \ --region us-east-1 \ --endpoint https://api.us-east-1.tunneling.iot.amazonaws.com --cli-input-json file://input.json

L'exemple suivant affiche le contenu du fichier input.json. Vous pouvez utiliser le destinationConfig paramètre pour spécifier le nom de l'appareil de destination (par exemple,RemoteDevice1) et le service que vous souhaitez utiliser pour accéder à l'appareil de destination, par exempleSSH. En option, vous pouvez également spécifier des paramètres supplémentaires tels que la description du tunnel et les balises.

Contenu de input.json

{ "description": "Tunnel to remote device1", "destinationConfig": { "services": [ "SSH" ], "thingName": "RemoteDevice1" } }

L'exécution de cette commande crée un nouveau tunnel et vous fournit les jetons d'accès à la source et à la destination.

{ "tunnelId": "01234567-89ab-0123-4c56-789a01234bcd", "tunnelArn": "arn:aws:iot:us-east-1:123456789012:tunnel/01234567-89ab-0123-4c56-789a01234bcd", "sourceAccessToken": "<SOURCE_ACCESS_TOKEN>", "destinationAccessToken": "<DESTINATION_ACCESS_TOKEN>" }

Ouvrez un tunnel existant et utilisez le protocole SSH basé sur un navigateur

Supposons que vous ayez créé le tunnel pour votre appareil distant à l'aide de la méthode de configuration manuelle ou de l' AWS IoT API de référence de l'API. RemoteDevice1 Vous pouvez ensuite ouvrir le tunnel existant pour l'appareil et choisir Configuration rapide pour utiliser la fonctionnalité SSH basée sur un navigateur. Les configurations d'un tunnel existant ne peuvent pas être modifiées, vous ne pouvez donc pas utiliser la méthode de configuration manuelle.

Pour utiliser la fonctionnalité SSH basée sur un navigateur, vous n'avez pas besoin de télécharger le jeton d'accès à la source ni de configurer le proxy local. Un proxy local basé sur le Web sera automatiquement configuré pour vous afin que vous puissiez commencer à interagir avec votre appareil distant.

Pour utiliser la méthode de configuration rapide et le protocole SSH basé sur un navigateur
  1. Accédez à la page de détails de l'objet que vous avez crééRemoteDevice1, puis créez un tunnel sécurisé.

  2. Choisissez Utiliser un tunnel existant pour ouvrir le tunnel ouvert le plus récent que vous avez créé pour le périphérique distant. Les configurations du tunnel ne peuvent pas être modifiées, vous ne pouvez donc pas utiliser la méthode de configuration manuelle pour le tunnel. Pour utiliser la méthode de configuration rapide, choisissez Configuration rapide.

  3. Passez en revue et confirmez les détails de configuration du tunnel et créez le tunnel. Les configurations des tunnels ne peuvent pas être modifiées.

    Lorsque vous créez le tunnel, le tunneling sécurisé utilise l'opération RotateTunnelAccessTokenAPI pour révoquer les jetons d'accès d'origine et générer de nouveaux jetons d'accès. Si votre appareil distant utilise le MQTT, ces jetons seront automatiquement envoyés à l'appareil distant sur le thème MQTT auquel il est abonné. Vous pouvez également choisir de télécharger ces jetons manuellement sur votre appareil source.

Après avoir créé le tunnel, vous pouvez utiliser le SSH basé sur un navigateur pour interagir avec le périphérique distant directement depuis la console à l'aide de l'interface de ligne de commande contextuelle. Pour utiliser cette interface de ligne de commande, choisissez le tunnel correspondant à l'objet que vous avez créé et, dans la page de détails, développez la section Interface de ligne de commande. Comme le proxy local a déjà été configuré pour vous, vous pouvez commencer à saisir des commandes pour commencer rapidement à accéder à votre appareil distant et à interagir avec celui-ci, RemoteDevice1.

Pour plus d'informations sur la méthode de configuration rapide et l'utilisation du SSH basé sur un navigateur, consultez Ouvrez un tunnel et utilisez le protocole SSH basé sur un navigateur pour accéder à un appareil distant.

Nettoyage

  • Fermer Tunnel

    Nous vous recommandons de fermer le tunnel une fois que vous avez fini de l'utiliser. Un tunnel peut également être fermé s'il est resté ouvert plus longtemps que la durée de tunnel spécifiée. Un tunnel ne peut pas être rouvert une fois fermé. Vous pouvez toujours dupliquer un tunnel en ouvrant le tunnel fermé, puis en choisissant Dupliquer le tunnel. Spécifiez la durée du tunnel que vous souhaitez utiliser, puis créez le nouveau tunnel.

    • Pour fermer un tunnel individuel ou plusieurs tunnels depuis la AWS IoT console, accédez au hub Tunnels, choisissez les tunnels que vous souhaitez fermer, puis cliquez sur Fermer le tunnel.

    • Pour fermer un tunnel individuel ou plusieurs tunnels à l'aide de l' AWS IoT API de référence API, utilisez l'opération CloseTunnelAPI.

      aws iotsecuretunneling close-tunnel \ --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd"
  • Supprimer le tunnel

    Vous pouvez supprimer définitivement un tunnel de votre Compte AWS.

    Avertissement

    Les actions de suppression sont permanentes et ne peuvent être annulées.

    • Pour supprimer un ou plusieurs tunnels de la AWS IoT console, accédez au hub Tunnels, choisissez les tunnels que vous souhaitez supprimer, puis sélectionnez Supprimer le tunnel.

    • Pour supprimer un tunnel individuel ou plusieurs tunnels à l'aide de l' AWS IoT API de référence API, utilisez l'opération CloseTunnelAPI. Lorsque vous utilisez l'API, définissez l'deleteindicateur surtrue.

      aws iotsecuretunneling close-tunnel \ --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd" --delete true