AWS IoT Device Defender - AWS IoT Greengrass

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.

AWS IoT Device Defender

Le AWS IoT Device Defender composant (aws.greengrass.DeviceDefender) informe les administrateurs des modifications de l'état des appareils principaux de Greengrass. Cela peut permettre d'identifier un comportement inhabituel qui pourrait indiquer un appareil compromis. Pour plus d’informations, consultez AWS IoT Device Defender dans le Guide du développeur AWS IoT Core .

Ce composant lit les métriques du système sur le périphérique principal. Ensuite, il publie les métriques sur AWS IoT Device Defender. Pour plus d'informations sur la façon de lire et d'interpréter les métriques rapportées par ce composant, consultez les spécifications du document relatif aux métriques des appareils dans le Guide du AWS IoT Core développeur.

Note

Ce composant fournit des fonctionnalités similaires à celles du connecteur Device Defender dans AWS IoT Greengrass V1. Pour plus d'informations, consultez la section relative au connecteur Device Defender dans le guide du AWS IoT Greengrass V1 développeur.

Versions

Les versions de ce composant sont les suivantes :

  • 3.1.x

  • 3,0. x

  • 2,0.x

Pour plus d'informations sur les modifications apportées à chaque version du composant, consultez le journal des modifications.

Type

v3.x

Ce composant est un composant générique (aws.greengrass.generic). Le noyau Greengrass exécute les scripts de cycle de vie du composant.

v2.x

Ce composant est un composant Lambda () aws.greengrass.lambda. Le noyau Greengrass exécute la fonction Lambda de ce composant à l'aide du composant Lambda Launcher.

Pour de plus amples informations, veuillez consulter Types de composants.

Système d’exploitation

v3.x

Ce composant peut être installé sur les appareils principaux qui exécutent les systèmes d'exploitation suivants :

  • Linux

  • Windows

v2.x

Ce composant ne peut être installé que sur les appareils principaux de Linux.

Prérequis

Ce composant répond aux exigences suivantes :

v3.x
  • Python version 3.7 installé sur le périphérique principal et ajouté à la variable d'PATHenvironnement.

  • AWS IoT Device Defender configuré pour utiliser la fonction de détection afin de surveiller les violations. Pour plus d'informations, consultez la section Detect dans le guide du AWS IoT Core développeur.

v2.x
  • Votre appareil principal doit répondre aux exigences pour exécuter les fonctions Lambda. Si vous souhaitez que le périphérique principal exécute des fonctions Lambda conteneurisées, le périphérique doit répondre aux exigences requises. Pour de plus amples informations, veuillez consulter Exigences relatives à la fonction Lambda.

  • Python version 3.7 installé sur le périphérique principal et ajouté à la variable d'PATHenvironnement.

  • AWS IoT Device Defender configuré pour utiliser la fonction de détection afin de surveiller les violations. Pour plus d'informations, consultez la section Detect dans le guide du AWS IoT Core développeur.

  • La bibliothèque psutil installée sur le périphérique principal. La version 5.7.0 est la dernière version dont le fonctionnement avec le composant a été vérifié.

  • La bibliothèque cbor installée sur le périphérique principal. La version 1.0.0 est la dernière version dont le fonctionnement avec le composant a été vérifié.

  • Pour recevoir les données de sortie de ce composant, vous devez fusionner la mise à jour de configuration suivante pour l'ancien composant routeur d'abonnement (aws.greengrass.LegacySubscriptionRouter) lorsque vous déployez ce composant. Cette configuration indique le sujet dans lequel ce composant publie les réponses.

    Legacy subscription router v2.1.xLegacy subscription router v2.0.x
    Legacy subscription router v2.1.x
    { "subscriptions": { "aws-greengrass-device-defender": { "id": "aws-greengrass-device-defender", "source": "component:aws.greengrass.DeviceDefender", "subject": "$aws/things/+/defender/metrics/json", "target": "cloud" } } }
    Legacy subscription router v2.0.x
    { "subscriptions": { "aws-greengrass-device-defender": { "id": "aws-greengrass-device-defender", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-device-defender:version", "subject": "$aws/things/+/defender/metrics/json", "target": "cloud" } } }
    • Remplacez region avec celui Région AWS que tu utilises.

    • Remplacez version avec la version de la fonction Lambda exécutée par ce composant. Pour trouver la version de la fonction Lambda, vous devez consulter la recette de la version de ce composant que vous souhaitez déployer. Ouvrez la page de détails de ce composant dans la AWS IoT Greengrass console et recherchez la paire clé-valeur de la fonction Lambda. Cette paire clé-valeur contient le nom et la version de la fonction Lambda.

    Important

    Vous devez mettre à jour la version de la fonction Lambda sur l'ancien routeur d'abonnement chaque fois que vous déployez ce composant. Cela garantit que vous utilisez la bonne version de la fonction Lambda pour la version du composant que vous déployez.

    Pour de plus amples informations, veuillez consulter Créer des déploiements.

Dépendances

Lorsque vous déployez un composant, il déploie AWS IoT Greengrass également des versions compatibles de ses dépendances. Cela signifie que vous devez satisfaire aux exigences relatives au composant et à toutes ses dépendances pour réussir le déploiement du composant. Cette section répertorie les dépendances des versions publiées de ce composant et les contraintes de version sémantiques qui définissent les versions des composants pour chaque dépendance. Vous pouvez également consulter les dépendances de chaque version du composant dans la AWS IoT Greengrass console. Sur la page de détails du composant, recherchez la liste des dépendances.

3.1.1

Le tableau suivant répertorie les dépendances pour la version 3.1.1 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <3,0.0 Flexible
Service d'échange de jetons >=0,0.0 Stricte
3.0.0 - 3.0.2

Le tableau suivant répertorie les dépendances pour les versions 3.0.0 à 3.0.2 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <3,0.0 Flexible
Service d'échange de jetons >=0,0.0 Stricte
2.0.12 - 2.0.16

Le tableau suivant répertorie les dépendances pour la version 2.0.16 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <3,0.0 Stricte
Lanceur Lambda ^2,0.0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0.0 Flexible
Service d'échange de jetons ^2,0.0 Stricte
2.0.10 - 2.0.11

Le tableau suivant répertorie les dépendances pour les versions 2.0.10 et 2.0.11 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,8.0 Stricte
Lanceur Lambda ^2,0.0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0.0 Flexible
Service d'échange de jetons ^2,0.0 Stricte
2.0.9

Le tableau suivant répertorie les dépendances pour la version 2.0.9 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,7.0 Stricte
Lanceur Lambda ^2,0.0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0.0 Flexible
Service d'échange de jetons ^2,0.0 Stricte
2.0.8

Le tableau suivant répertorie les dépendances pour la version 2.0.8 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,6.0 Stricte
Lanceur Lambda ^2,0.0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0.0 Flexible
Service d'échange de jetons ^2,0.0 Stricte
2.0.7

Le tableau suivant répertorie les dépendances pour la version 2.0.7 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,5.0 Stricte
Lanceur Lambda ^2,0.0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0.0 Flexible
Service d'échange de jetons ^2,0.0 Stricte
2.0.6

Le tableau suivant répertorie les dépendances pour la version 2.0.6 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,4.0 Stricte
Lanceur Lambda ^2,0.0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0.0 Flexible
Service d'échange de jetons ^2,0.0 Stricte
2.0.5

Le tableau suivant répertorie les dépendances pour la version 2.0.5 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,3.0 Stricte
Lanceur Lambda ^2,0.0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0.0 Flexible
Service d'échange de jetons ^2,0.0 Stricte
2.0.4

Le tableau suivant répertorie les dépendances pour la version 2.0.4 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,2.0 Stricte
Lanceur Lambda ^2,0.0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0.0 Flexible
Service d'échange de jetons ^2,0.0 Stricte
2.0.3

Le tableau suivant répertorie les dépendances pour la version 2.0.3 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0,3 <2,10 Stricte
Lanceur Lambda >=10,0 Stricte
Environnements d'exécution (runtimes) Lambda >=10,0 Flexible
Service d'échange de jetons >=10,0 Stricte

Pour plus d'informations sur les dépendances des composants, consultez la référence de la recette des composants.

Configuration

Ce composant fournit les paramètres de configuration suivants que vous pouvez personnaliser lorsque vous déployez le composant.

v3.x
PublishRetryCount

Le nombre de fois où la publication sera réessayée. Cette fonctionnalité est disponible dans la version 3.1.1.

Le minimum est 0.

Le maximum est de 72.

Par défaut: 5

SampleIntervalSeconds

(Facultatif) Durée en secondes entre chaque cycle pendant lequel le composant collecte et rapporte des métriques.

La valeur minimale est de 300 secondes (5 minutes).

Par défaut : 300 secondes

UseInstaller

(Facultatif) Valeur booléenne qui définit s'il faut utiliser le script d'installation dans ce composant pour installer les dépendances de ce composant.

Définissez cette valeur sur false si vous souhaitez utiliser un script personnalisé pour installer des dépendances ou si vous souhaitez inclure des dépendances d'exécution dans une image Linux prédéfinie. Pour utiliser ce composant, vous devez installer les bibliothèques suivantes, y compris les dépendances éventuelles, et les mettre à la disposition de l'utilisateur du système Greengrass par défaut.

Note

Si vous utilisez la version 3.0.0 ou 3.0.1 de ce composant sur des appareils principaux que vous configurez pour utiliser un HTTPS proxy, vous devez définir cette valeur sur. false Le script d'installation ne prend pas en charge le fonctionnement derrière un HTTPS proxy dans ces versions de ce composant.

Par défaut : true

v2.x
Note

La configuration par défaut de ce composant inclut les paramètres de la fonction Lambda. Nous vous recommandons de modifier uniquement les paramètres suivants pour configurer ce composant sur vos appareils.

lambdaParams

Objet contenant les paramètres de la fonction Lambda de ce composant. Cet objet contient les informations suivantes :

EnvironmentVariables

Objet contenant les paramètres de la fonction Lambda. Cet objet contient les informations suivantes :

PROCFS_PATH

(Facultatif) Le chemin d'accès au /proc dossier.

  • Pour exécuter ce composant dans un conteneur, utilisez la valeur par défaut,/host-proc. Le composant s'exécute dans un conteneur par défaut.

  • Pour exécuter ce composant sans mode conteneur, spécifiez /proc ce paramètre.

Par défaut: /host-proc. Il s'agit du chemin par défaut où ce composant monte le /proc dossier dans le conteneur.

Note

Ce composant dispose d'un accès en lecture seule à ce dossier.

SAMPLE_INTERVAL_SECONDS

(Facultatif) Durée en secondes entre chaque cycle pendant lequel le composant collecte et rapporte des métriques.

La valeur minimale est de 300 secondes (5 minutes).

Par défaut : 300 secondes

containerMode

(Facultatif) Mode de conteneurisation de ce composant. Sélectionnez parmi les options suivantes :

  • GreengrassContainer— Le composant s'exécute dans un environnement d'exécution isolé à l'intérieur du AWS IoT Greengrass conteneur.

  • NoContainer— Le composant ne s'exécute pas dans un environnement d'exécution isolé.

    Si vous spécifiez cette option, vous devez spécifier /proc le paramètre de variable d'PROCFS_PATHenvironnement.

Par défaut : GreengrassContainer

containerParams

(Facultatif) Objet contenant les paramètres du conteneur pour ce composant. Le composant utilise ces paramètres si vous le spécifiez GreengrassContainer pourcontainerMode.

Cet objet contient les informations suivantes :

memorySize

(Facultatif) La quantité de mémoire (en kilo-octets) à allouer au composant.

La valeur par défaut est de 50 000 Ko.

pubsubTopics

(Facultatif) Objet contenant les rubriques auxquelles le composant s'abonne pour recevoir des messages. Vous pouvez spécifier chaque rubrique et indiquer si le composant est abonné à des MQTT rubriques provenant de rubriques locales AWS IoT Core ou à des rubriques locales de publication/d'abonnement.

Cet objet contient les informations suivantes :

0— Il s'agit d'un index de tableau sous forme de chaîne.

Un objet qui contient les informations suivantes :

type

(Facultatif) Type de message de publication/d'abonnement utilisé par ce composant pour s'abonner aux messages. Sélectionnez parmi les options suivantes :

  • PUB_SUB – Abonnez-vous aux messages locaux de publication/abonnement. Si vous choisissez cette option, le sujet ne peut pas contenir de MQTT caractères génériques. Pour plus d'informations sur la façon d'envoyer des messages à partir d'un composant personnalisé lorsque vous spécifiez cette option, consultezPublier/souscrire des messages locaux.

  • IOT_CORE— Abonnez-vous aux AWS IoT Core MQTT messages. Si vous choisissez cette option, le sujet peut contenir des MQTT caractères génériques. Pour plus d'informations sur la façon d'envoyer des messages à partir de composants personnalisés lorsque vous spécifiez cette option, consultezPublier/souscrire AWS IoT Core MQTT des messages.

Par défaut : PUB_SUB

topic

(Facultatif) Rubrique à laquelle le composant s'abonne pour recevoir des messages. Si vous spécifiez IotCore pourtype, vous pouvez utiliser des MQTT caractères génériques (+et#) dans cette rubrique.

Exemple : mise à jour de fusion de configuration (mode conteneur)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/host_proc" } }, "containerMode": "GreengrassContainer" }
Exemple : mise à jour de fusion de configuration (pas de mode conteneur)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/proc" } }, "containerMode": "NoContainer" }

Données d'entrée

Ce composant n'accepte pas les messages en tant que données d'entrée.

Données de sortie

Ce composant publie des métriques de sécurité dans la rubrique réservée suivante pour AWS IoT Device Defender. Ce composant remplace coreDeviceName avec le nom de l'appareil principal lorsqu'il publie les métriques.

Sujet (AWS IoT Core MQTT) : $aws/things/coreDeviceName/defender/metrics/json

Exemple de sortie
{ "header": { "report_id": 1529963534, "version": "1.0" }, "metrics": { "listening_tcp_ports": { "ports": [ { "interface": "eth0", "port": 24800 }, { "interface": "eth0", "port": 22 }, { "interface": "eth0", "port": 53 } ], "total": 3 }, "listening_udp_ports": { "ports": [ { "interface": "eth0", "port": 5353 }, { "interface": "eth0", "port": 67 } ], "total": 2 }, "network_stats": { "bytes_in": 1157864729406, "bytes_out": 1170821865, "packets_in": 693092175031, "packets_out": 738917180 }, "tcp_connections": { "established_connections":{ "connections": [ { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" }, { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" } ], "total": 2 } } } }

Pour plus d'informations sur les métriques rapportées par ce composant, consultez la spécification du document relatif aux métriques des appareils dans le Guide du AWS IoT Core développeur.

Fichier journal local

Ce composant utilise le fichier journal suivant.

Linux
/greengrass/v2/logs/aws.greengrass.DeviceDefender.log
Windows
C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log
Pour consulter les journaux de ce composant
  • Exécutez la commande suivante sur le périphérique principal pour afficher le fichier journal de ce composant en temps réel. Remplacer /greengrass/v2 ou C:\greengrass\v2 avec le chemin d'accès au dossier AWS IoT Greengrass racine.

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.DeviceDefender.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log -Tail 10 -Wait

Licences

Ce composant est publié dans le cadre du contrat de licence logicielle Greengrass Core.

Journal des modifications

Le tableau suivant décrit les modifications apportées à chaque version du composant.

v3.x

Version

Modifications

3.1.1

Corrections de bogues et améliorations
  • Ajoute des tentatives de connexion client lorsque la connexion ne parvient pas à se rétablir après une panne réseau.

  • Ajoute une nouvelle tentative configurable pour publier des métriques.

3.1.0

Corrections de bogues et améliorations

3.0.1

Résout un problème lié à la façon dont le composant calcule les valeurs delta pour les métriques.

3.0.0

Avertissement

Cette version n'est plus disponible. Les améliorations apportées à cette version sont disponibles dans les versions ultérieures de ce composant.

Première version.

v2.x

Version

Modifications

2,0,16

Version mise à jour pour la version 2.13.0 de Greengrass Nucleus.

2.0.11

Version mise à jour pour la version 2.11.0 de Greengrass Nucleus.

2.0.10

Version mise à jour pour la version 2.7.0 de Greengrass Nucleus.

2.0.9

Version mise à jour pour la version 2.6.0 de Greengrass Nucleus.

2.0.8

Version mise à jour pour la version 2.5.0 de Greengrass Nucleus.

2.0.7

Version mise à jour pour la version 2.4.0 de Greengrass Nucleus.

2.0.6

Version mise à jour pour la version 2.3.0 de Greengrass Nucleus.

2.0.5

Version mise à jour pour la version 2.2.0 de Greengrass Nucleus.

2.0.4

Version mise à jour pour la version 2.1.0 de Greengrass Nucleus.

2.0.3

Première version.