AWS IoT Device Defender - AWS IoT Greengrass

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS IoT Device Defender

Die AWS IoT Device Defender Komponente (aws.greengrass.DeviceDefender) benachrichtigt Administratoren über Änderungen des Zustands von Greengrass-Core-Geräten. Dies kann helfen, ungewöhnliches Verhalten zu erkennen, das auf ein gefährdetes Gerät hinweisen könnte. Weitere Informationen finden Sie unter AWS IoT Device Defender im AWS IoT Core -Entwicklerhandbuch.

Diese Komponente liest Systemmetriken auf dem Core-Gerät. Anschließend werden die Metriken in veröffentlicht AWS IoT Device Defender. Weitere Informationen zum Lesen und Interpretieren der Metriken, die diese Komponente meldet, finden Sie unter Dokumentspezifikation für Gerätemetriken im AWS IoT Core -Entwicklerhandbuch.

Anmerkung

Diese Komponente bietet ähnliche Funktionen wie der Device-Defender-Konnektor in AWS IoT Greengrass V1. Weitere Informationen finden Sie unter Device Defender Connector im AWS IoT Greengrass V1 -Entwicklerhandbuch.

Versionen

Diese Komponente hat die folgenden Versionen:

  • 3.1.x

  • 3.0.x

  • 2.0.x

Informationen zu Änderungen in jeder Version der Komponente finden Sie im Änderungsprotokoll .

Typ

v3.x

Diese Komponente ist eine generische Komponente (aws.greengrass.generic). Der Greengrass-Kern führt die Lebenszyklusskripte der Komponente aus.

v2.x

Diese Komponente ist eine Lambda-Komponente (aws.greengrass.lambda). Der Greengrass-Kernus führt die Lambda-Funktion dieser Komponente mit der Lambda-Launcher-Komponente aus.

Weitere Informationen finden Sie unter Komponententypen.

Betriebssystem

v3.x

Diese Komponente kann auf -Core-Geräten installiert werden, auf denen die folgenden Betriebssysteme ausgeführt werden:

  • Linux

  • Windows

v2.x

Diese Komponente kann nur auf Linux-Core-Geräten installiert werden.

Voraussetzungen

Für diese Komponente gelten die folgenden Anforderungen:

v3.x
  • Python Version 3.7 ist auf dem Core-Gerät installiert und der PATH-Umgebungsvariablen hinzugefügt.

  • AWS IoT Device Defender konfiguriert für die Verwendung der Detect-Funktion zur Überwachung von Verstößen. Weitere Informationen finden Sie unter Erkennen im AWS IoT Core -Entwicklerhandbuch.

v2.x
  • Ihr Core-Gerät muss die Anforderungen für die Ausführung von Lambda-Funktionen erfüllen. Wenn Sie möchten, dass das Core-Gerät containerisierte Lambda-Funktionen ausführt, muss das Gerät die Anforderungen dafür erfüllen. Weitere Informationen finden Sie unter Anforderungen an die Lambda-Funktion.

  • Python Version 3.7 ist auf dem Core-Gerät installiert und der PATH-Umgebungsvariablen hinzugefügt.

  • AWS IoT Device Defender konfiguriert für die Verwendung der Detect-Funktion zur Überwachung von Verstößen. Weitere Informationen finden Sie unter Erkennen im AWS IoT Core -Entwicklerhandbuch.

  • Die auf dem Core-Gerät installierte psutil-Bibliothek. Version 5.7.0 ist die neueste Version, die verifiziert wurde, dass sie mit der Komponente funktioniert.

  • Die auf dem Core-Gerät installierte cbor-Bibliothek. Version 1.0.0 ist die neueste Version, die verifiziert wurde, dass sie mit der Komponente funktioniert.

  • Um Ausgabedaten von dieser Komponente zu erhalten, müssen Sie das folgende Konfigurationsupdate für die Legacy-Abonnement-Routerkomponente (aws.greengrass.LegacySubscriptionRouter) zusammenführen, wenn Sie diese Komponente bereitstellen. Diese Konfiguration gibt das Thema an, in dem diese Komponente Antworten veröffentlicht.

    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" } } }
    • Ersetzen Sie region durch die AWS-Region , die Sie verwenden.

    • Ersetzen Sie Version durch die Version der Lambda-Funktion, die diese Komponente ausführt. Um die Version der Lambda-Funktion zu finden, müssen Sie das Rezept für die Version dieser Komponente anzeigen, die Sie bereitstellen möchten. Öffnen Sie die Detailseite dieser Komponente in der AWS IoT Greengrass Konsole und suchen Sie nach dem Schlüssel-Wert-Paar der Lambda-Funktion. Dieses Schlüssel-Wert-Paar enthält den Namen und die Version der Lambda-Funktion.

    Wichtig

    Sie müssen die Lambda-Funktionsversion auf dem Legacy-Abonnement-Router jedes Mal aktualisieren, wenn Sie diese Komponente bereitstellen. Dadurch wird sichergestellt, dass Sie die richtige Lambda-Funktionsversion für die von Ihnen bereitgestellte Komponentenversion verwenden.

    Weitere Informationen finden Sie unter Erstellen von Bereitstellungen.

Abhängigkeiten

Wenn Sie eine Komponente bereitstellen, stellt AWS IoT Greengrass auch kompatible Versionen ihrer Abhängigkeiten bereit. Das bedeutet, dass Sie die Anforderungen für die Komponente und alle ihre Abhängigkeiten erfüllen müssen, um die Komponente erfolgreich bereitstellen zu können. In diesem Abschnitt werden die Abhängigkeiten für die veröffentlichten Versionen dieser Komponente und die semantischen Versionseinschränkungen aufgeführt, die die Komponentenversionen für jede Abhängigkeit definieren. Sie können auch die Abhängigkeiten für jede Version der Komponente in der AWS IoT Greengrass Konsole anzeigen. Suchen Sie auf der Seite mit den Komponentendetails nach der Liste Abhängigkeiten.

3.1.1

In der folgenden Tabelle sind die Abhängigkeiten für Version 3.1.1 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Abhängigkeitstyp
Greengrass-Kern >=2.0.0 <3.0.0 Weich
Token-Exchange-Service >=0.0.0 Hart
3.0.0 - 3.0.2

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 3.0.0 bis 3.0.2 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Abhängigkeitstyp
Greengrass-Kern >=2.0.0 <3.0.0 Weich
Token-Exchange-Service >=0.0.0 Hart
2.0.10 and 2.0.11

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.10 und 2.0.11 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Abhängigkeitstyp
Greengrass-Kern >=2.0.0 <2.8.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2.0.0 Weich
Token-Exchange-Service ^2.0.0 Hart
2.0.9

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.9 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Abhängigkeitstyp
Greengrass-Kern >=2.0.0 <2.7.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2.0.0 Weich
Token-Exchange-Service ^2.0.0 Hart
2.0.8

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.8 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Abhängigkeitstyp
Greengrass-Kern >=2.0.0 <2.6.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2.0.0 Weich
Token-Exchange-Service ^2.0.0 Hart
2.0.7

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.7 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Abhängigkeitstyp
Greengrass-Kern >=2.0.0 <2.5.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2.0.0 Weich
Token-Exchange-Service ^2.0.0 Hart
2.0.6

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.6 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Abhängigkeitstyp
Greengrass-Kern >=2.0.0 <2.4.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2.0.0 Weich
Token-Exchange-Service ^2.0.0 Hart
2.0.5

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.5 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Abhängigkeitstyp
Greengrass-Kern >=2.0.0 <2.3.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2.0.0 Weich
Token-Exchange-Service ^2.0.0 Hart
2.0.4

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.4 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Abhängigkeitstyp
Greengrass-Kern >=2.0.0 <2.2.0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2.0.0 Weich
Token-Exchange-Service ^2.0.0 Hart
2.0.3

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.3 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Abhängigkeitstyp
Greengrass-Kern >=2.0.3 <2.1.0 Hart
Lambda-Launcher >=1.0.0 Hart
Lambda-Laufzeiten >=1.0.0 Weich
Token-Exchange-Service >=1.0.0 Hart

Weitere Informationen zu Komponentenabhängigkeiten finden Sie in der Referenz zum Komponentenrezept .

Konfiguration

Diese Komponente bietet die folgenden Konfigurationsparameter, die Sie anpassen können, wenn Sie die Komponente bereitstellen.

v3.x
PublishRetryCount

Gibt an, wie oft die Veröffentlichung erneut versucht wird. Diese Funktion ist in Version 3.1.1 verfügbar.

Das Minimum ist 0.

Das Maximum ist 72.

Standard: 5

SampleIntervalSeconds

(Optional) Die Zeit in Sekunden zwischen jedem Zyklus, in dem die Komponente Metriken sammelt und meldet.

Die Mindestwert beträgt 300 Sekunden (5 Minuten).

Standard: 300 Sekunden

UseInstaller

(Optional) Boolescher Wert, der definiert, ob das Installationsskript in dieser Komponente zum Installieren der Abhängigkeiten dieser Komponente verwendet werden soll.

Setzen Sie diesen Wert auf , false wenn Sie ein benutzerdefiniertes Skript zum Installieren von Abhängigkeiten verwenden möchten, oder wenn Sie Laufzeitabhängigkeiten in ein vorgefertigtes Linux-Image aufnehmen möchten. Um diese Komponente zu verwenden, müssen Sie die folgenden Bibliotheken, einschließlich aller Abhängigkeiten, installieren und sie dem Standard-Greengrass-Systembenutzer zur Verfügung stellen.

  • AWS IoT Device SDK v2 für Python

  • cbor-Bibliothek. Version 1.0.0 ist die neueste Version, die verifiziert wurde, dass sie mit der Komponente funktioniert.

  • psutil-Bibliothek. Version 5.7.0 ist die neueste Version, die verifiziert wurde, dass sie mit der Komponente funktioniert.

Anmerkung

Wenn Sie Version 3.0.0 oder 3.0.1 dieser Komponente auf Core-Geräten verwenden, die Sie für die Verwendung eines HTTPS-Proxys konfigurieren, müssen Sie diesen Wert auf setzenfalse. Das Installationsskript unterstützt in diesen Versionen dieser Komponente keine Operation hinter einem HTTPS-Proxy.

Standard: true

v2.x
Anmerkung

Die Standardkonfiguration dieser Komponente enthält Lambda-Funktionsparameter. Wir empfehlen Ihnen, nur die folgenden Parameter zu bearbeiten, um diese Komponente auf Ihren Geräten zu konfigurieren.

lambdaParams

Ein Objekt, das die Parameter für die Lambda-Funktion dieser Komponente enthält. Dieses Objekt enthält die folgenden Informationen:

EnvironmentVariables

Ein Objekt, das die Parameter der Lambda-Funktion enthält. Dieses Objekt enthält die folgenden Informationen:

PROCFS_PATH

(Optional) Der Pfad zum /proc Ordner.

  • Um diese Komponente in einem Container auszuführen, verwenden Sie den Standardwert /host-proc. Die Komponente wird standardmäßig in einem Container ausgeführt.

  • Um diese Komponente im Containermodus auszuführen, geben Sie /proc für diesen Parameter an.

Standard: /host-proc. Dies ist der Standardpfad, in dem diese Komponente den /proc Ordner im Container mountet.

Anmerkung

Diese Komponente hat schreibgeschützten Zugriff auf diesen Ordner.

SAMPLE_INTERVAL_SECONDS

(Optional) Die Zeit in Sekunden zwischen jedem Zyklus, in dem die Komponente Metriken sammelt und meldet.

Die Mindestwert beträgt 300 Sekunden (5 Minuten).

Standard: 300 Sekunden

containerMode

(Optional) Der Containerisierungsmodus für diese Komponente. Wählen Sie aus den folgenden Optionen aus:

  • GreengrassContainer – Die Komponente wird in einer isolierten Laufzeitumgebung innerhalb des AWS IoT Greengrass Containers ausgeführt.

  • NoContainer – Die Komponente wird nicht in einer isolierten Laufzeitumgebung ausgeführt.

    Wenn Sie diese Option angeben, müssen Sie /proc für den PROCFS_PATH Umgebungsvariablenparameter angeben.

Standard: GreengrassContainer

containerParams

(Optional) Ein Objekt, das die Containerparameter für diese Komponente enthält. Die Komponente verwendet diese Parameter, wenn Sie GreengrassContainer für angebencontainerMode.

Dieses Objekt enthält die folgenden Informationen:

memorySize

(Optional) Die Menge an Arbeitsspeicher (in Kilobyte), die der Komponente zugewiesen werden soll.

Standardmäßig 50.000 KB.

pubsubTopics

(Optional) Ein Objekt, das die Themen enthält, in denen die Komponente den Empfang von Nachrichten abonniert. Sie können jedes Thema angeben und angeben, ob die Komponente MQTT-Themen von AWS IoT Core oder lokale Veröffentlichungs-/Abonnementthemen abonniert.

Dieses Objekt enthält die folgenden Informationen:

0 – Dies ist ein Array-Index als Zeichenfolge.

Ein Objekt, das die folgenden Informationen enthält:

type

(Optional) Der Typ des Veröffentlichungs-/Abonnement-Messagings, den diese Komponente zum Abonnieren von Nachrichten verwendet. Wählen Sie aus den folgenden Optionen aus:

  • PUB_SUB — Abonnieren Sie lokale Veröffentlichen/Abonnement-Nachrichten. Wenn Sie diese Option wählen, darf das Thema keine MQTT-Platzhalter enthalten. Weitere Informationen zum Senden von Nachrichten von einer benutzerdefinierten Komponente, wenn Sie diese Option angeben, finden Sie unter Lokale Nachrichten veröffentlichen/abonnieren.

  • IOT_CORE – Abonnieren Sie AWS IoT Core MQTT-Nachrichten. Wenn Sie diese Option wählen, kann das Thema MQTT-Platzhalter enthalten. Weitere Informationen zum Senden von Nachrichten von benutzerdefinierten Komponenten, wenn Sie diese Option angeben, finden Sie unter MQTT-Nachrichten veröffentlichen/abonnieren AWS IoT Core.

Standard: PUB_SUB

topic

(Optional) Das Thema, das die Komponente abonniert, um Nachrichten zu empfangen. Wenn Sie IotCore für angebentype, können Sie in diesem Thema MQTT-Platzhalter (+ und #) verwenden.

Beispiel: Aktualisierung der Konfigurationszusammenführung (Container-Modus)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/host_proc" } }, "containerMode": "GreengrassContainer" }
Beispiel: Aktualisierung der Konfigurationszusammenführung (kein Containermodus)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/proc" } }, "containerMode": "NoContainer" }

Eingabedaten

Diese Komponente akzeptiert keine Nachrichten als Eingabedaten.

Ausgabedaten

Diese Komponente veröffentlicht Sicherheitsmetriken im folgenden reservierten Thema für AWS IoT Device Defender. Diese Komponente ersetzt beim Veröffentlichen coreDeviceName der Metriken durch den Namen des Core-Geräts.

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

Beispielausgabe
{ "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 } } } }

Weitere Informationen zu den Metriken, die diese Komponente meldet, finden Sie unter Dokumentspezifikation für Gerätemetriken im AWS IoT Core -Entwicklerhandbuch.

Lokale Protokolldatei

Diese Komponente verwendet die folgende Protokolldatei.

Linux
/greengrass/v2/logs/aws.greengrass.DeviceDefender.log
Windows
C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log
So zeigen Sie die Protokolle dieser Komponente an
  • Führen Sie den folgenden Befehl auf dem Core-Gerät aus, um die Protokolldatei dieser Komponente in Echtzeit anzuzeigen. Ersetzen Sie /greengrass/v2 oder C:\greengrass\v2 durch den Pfad zum AWS IoT Greengrass Stammordner.

    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

Lizenzen

Diese Komponente wird gemäß dem Greengrass Core Software License Agreement veröffentlicht.

Änderungsprotokoll

In der folgenden Tabelle werden die Änderungen in jeder Version der Komponente beschrieben.

v3.x

Version

Änderungen

3.1.1

Fehlerbehebungen und Verbesserungen
  • Fügt Wiederholungen für die Client-Verbindung hinzu, wenn die Verbindung nach einem Netzwerkausfall nicht wiederhergestellt werden kann.

  • Fügt einen konfigurierbaren Wiederholungsversuch zum Veröffentlichen von Metriken hinzu.

3.1.0

Fehlerbehebungen und Verbesserungen

3.0.1

Behebt ein Problem damit, wie die Komponente Deltawerte für Metriken berechnet.

3.0.0

Warnung

Diese Version ist nicht mehr verfügbar. Die Verbesserungen in dieser Version sind in späteren Versionen dieser Komponente verfügbar.

Erste Version

v2.x

Version

Änderungen

2.0.11

Version für Greengrass-Kern Version 2.11.0 aktualisiert.

2.0.10

Version für Greengrass-Kern Version 2.7.0 aktualisiert.

2.0.9

Version für Greengrass-Kern Version 2.6.0 aktualisiert.

2.0.8

Version für Greengrass-Kern Version 2.5.0 aktualisiert.

2.0.7

Version für Greengrass-Kern Version 2.4.0 aktualisiert.

2.0.6

Version für Greengrass-Kern Version 2.3.0 aktualisiert.

2.0.5

Version für Greengrass-Kern Version 2.2.0 aktualisiert.

2.0.4

Version für Greengrass-Kern Version 2.1.0 aktualisiert.

2.0.3

Erste Version