View a markdown version of this page

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 im Zustand der Greengrass-Core-Geräte. 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 Kerngerät. Anschließend veröffentlicht sie die Metriken für AWS IoT Device Defender. Weitere Informationen zum Lesen und Interpretieren der von dieser Komponente gemeldeten Metriken finden Sie im AWS IoT Core Entwicklerhandbuch unter Dokumentspezifikation zu Gerätemetriken.

Anmerkung

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

Versionen

Diese Komponente hat die folgenden Versionen:

  • 4.0.x

  • 3.1.x

  • 3.0.x

  • 2.0.x

Informationen zu den Änderungen in den einzelnen Versionen der Komponente finden Sie im Changelog.

Typ

v4.x - v3.x

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

v2.x

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

Weitere Informationen finden Sie unter Komponententypen.

Betriebssystem

v4.x - v3.x

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

  • Linux

  • Windows

v2.x

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

Voraussetzungen

Für diese Komponente gelten die folgenden Anforderungen:

v4.x - v3.x
  • https://www.python.org/Python-Version 3.7 wurde auf dem Kerngerät installiert und der PATH-Umgebungsvariablen hinzugefügt.

  • Die folgenden Python-Bibliotheken, einschließlich aller Abhängigkeiten, müssen installiert sein und für den Benutzer verfügbar sein, der die Komponente ausführt:

    Anmerkung

    Sie können die UseInstaller Konfiguration so einstellen, dass true diese Bibliotheken automatisch in der bereitgestellten Python-Umgebung installiert werden.

  • AWS IoT Device Defender konfiguriert, um die Erkennungsfunktion zur Überwachung von Verstößen zu verwenden. Weitere Informationen finden Sie im AWS IoT Core Entwicklerhandbuch unter Detect.

v2.x
  • Ihr Kerngerät muss die Anforderungen erfüllen, um Lambda-Funktionen ausführen zu können. Wenn Sie möchten, dass das Kerngerät containerisierte Lambda-Funktionen ausführt, muss das Gerät die entsprechenden Anforderungen erfüllen. Weitere Informationen finden Sie unter Anforderungen an die Lambda-Funktion.

  • https://www.python.org/Python-Version 3.7 wurde auf dem Kerngerät installiert und der PATH-Umgebungsvariablen hinzugefügt.

  • AWS IoT Device Defender konfiguriert, um die Erkennungsfunktion zur Überwachung von Verstößen zu verwenden. Weitere Informationen finden Sie im AWS IoT Core Entwicklerhandbuch unter Detect.

  • Die https://pypi.org/project/psutil/ Psutil-Bibliothek ist auf dem Kerngerät installiert. Version 5.7.0 ist die neueste Version, von der bestätigt wurde, dass sie mit der Komponente funktioniert.

  • Die https://pypi.org/project/cbor/ CBOR-Bibliothek, die auf dem Kerngerät installiert ist. Version 1.0.0 ist die neueste Version, von der bestätigt wurde, dass sie mit der Komponente funktioniert.

  • Um Ausgabedaten von dieser Komponente zu erhalten, müssen Sie das folgende Konfigurationsupdate für die ältere Abonnement-Router-Komponente (aws.greengrass.LegacySubscriptionRouter) zusammenführen, wenn Sie diese Komponente bereitstellen. Diese Konfiguration gibt das Thema an, zu 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" } } }
    • regionErsetzen Sie durch das AWS-Region , was Sie verwenden.

    • versionErsetzen Sie durch die Version der Lambda-Funktion, die diese Komponente ausführt. Um die Version der Lambda-Funktion zu finden, müssen Sie sich das Rezept für die Version dieser Komponente ansehen, 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 älteren Abonnement-Router jedes Mal aktualisieren, wenn Sie diese Komponente bereitstellen. Dadurch wird sichergestellt, dass Sie die richtige Lambda-Funktionsversion für die Komponentenversion verwenden, die Sie bereitstellen.

    Weitere Informationen finden Sie unter Erstellen von Bereitstellungen.

Abhängigkeiten

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

4.0.0 - 3.0.0

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

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <3,0,0 Weich
Token-Austauschdienst > =0,0,0 Hart
2.0.12 - 2.0.17

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

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <3,0,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.12 - 2.0.16

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

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <3,0,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.10 - 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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,8,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,7,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,6,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,5,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,4,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,3,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,2,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^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 Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,3 <2,10 Hart
Lambda-Launcher > =1,,0 Hart
Lambda-Laufzeiten > =1,,0 Weich
Token-Austauschdienst > =1,,0 Hart

Weitere Informationen zu Komponentenabhängigkeiten finden Sie in der Komponentenrezeptreferenz.

Konfiguration

Diese Komponente stellt die folgenden Konfigurationsparameter bereit, die Sie bei der Bereitstellung der Komponente anpassen können.

v4.x
PublishRetryCount

Gibt an, wie oft die Veröffentlichung erneut versucht wird.

Das Minimum ist 0.

Das Maximum ist 72.

Standard: 5

SampleIntervalSeconds

(Optional) Die Zeitspanne in Sekunden zwischen den einzelnen Zyklen, in denen die Komponente Messwerte erfasst und meldet.

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

Standard: 300 Sekunden

UseInstaller

(Optional) Boolescher Wert, der definiert, ob das Installationsskript verwendet werden soll, um die Python-Abhängigkeiten dieser Komponente in der bereitgestellten Python-Umgebung zu installieren.

Setzen Sie diesen Wert auf, true um die Python-Abhängigkeiten dieser Komponente automatisch zu installieren. Wenn dieser Wert auf gesetzt istfalse, müssen Sie die folgenden Bibliotheken einschließlich aller Abhängigkeiten installieren und sie für die Python-Umgebung verfügbar machen, die dem Benutzer zur Verfügung gestellt wird, der die Komponente ausführt.

Standard: false

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 Zeitspanne in Sekunden zwischen den einzelnen Zyklen, in denen die Komponente Messwerte erfasst und meldet.

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

Standard: 300 Sekunden

UseInstaller

(Optional) Boolescher Wert, der definiert, ob das Installationsskript verwendet werden soll, um die Python-Abhängigkeiten dieser Komponente in der bereitgestellten Python-Umgebung zu installieren.

Setzen Sie diesen Wert auf, false um ein benutzerdefiniertes Skript zu verwenden oder Abhängigkeiten manuell zu installieren. Wenn dieser Wert auf gesetzt istfalse, müssen Sie die folgenden Bibliotheken einschließlich aller Abhängigkeiten installieren und sie für die Python-Umgebung verfügbar machen, die dem Benutzer zur Verfügung gestellt wird, der die Komponente ausführt.

Anmerkung

Wenn Sie Version 3.0.0 oder 3.0.1 dieser Komponente auf Kerngeräten verwenden, die Sie für die Verwendung eines HTTPS-Proxys konfigurieren, müssen Sie diesen Wert auf setzen. false Das Installationsskript unterstützt in diesen Versionen dieser Komponente nicht den Betrieb hinter einem HTTPS-Proxy.

Standard: true

v2.x
Anmerkung

Die Standardkonfiguration dieser Komponente umfasst Lambda-Funktionsparameter. Wir empfehlen, dass Sie nur die folgenden Parameter 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.

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

  • Um diese Komponente im Modus ohne Container auszuführen, geben Sie /proc diesen Parameter an.

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

Anmerkung

Diese Komponente hat Lesezugriff auf diesen Ordner.

SAMPLE_INTERVAL_SECONDS

(Optional) Die Zeitspanne in Sekunden zwischen den einzelnen Zyklen, in denen die Komponente Messwerte erfasst 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 läuft nicht in einer isolierten Laufzeitumgebung.

    Wenn Sie diese Option angeben, müssen Sie den Parameter /proc für die PROCFS_PATH Umgebungsvariable 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 Speichermenge (in Kilobyte), die der Komponente zugewiesen werden soll.

Der Standardwert ist 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 lokalen Themen abonniert. publish/subscribe

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 publish/subscribe Nachrichtentyp, den diese Komponente zum Abonnieren von Nachrichten verwendet. Wählen Sie aus den folgenden Optionen aus:

  • PUB_SUB— Abonnieren Sie lokale publish/subscribe Nachrichten. Wenn Sie diese Option wählen, darf das Thema keine MQTT-Platzhalter enthalten. Weitere Hinweise zum Senden von Nachrichten aus 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 Hinweise zum Senden von Nachrichten von benutzerdefinierten Komponenten, wenn Sie diese Option angeben, finden Sie unter. Publish/subscribe AWS IoT Core MQTT-Nachrichten

Standard: PUB_SUB

topic

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

Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (Containermodus)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/host_proc" } }, "containerMode": "GreengrassContainer" }
Beispiel 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 zu dem folgenden reservierten Thema für AWS IoT Device Defender. Diese Komponente wird coreDeviceName bei der Veröffentlichung der Metriken durch den Namen des Kerngeräts ersetzt.

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

Beispiel 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 im AWS IoT Core Entwicklerhandbuch unter Dokumentspezifikation zu Gerätemetriken.

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
Um die Protokolle dieser Komponente einzusehen
  • Führen Sie den folgenden Befehl auf dem Kerngerä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 im Rahmen der Greengrass Core-Softwarelizenzvereinbarung veröffentlicht.

Änderungsprotokoll

In der folgenden Tabelle werden die Änderungen in den einzelnen Versionen der Komponente beschrieben.

v4.x - v3.x

Version

Änderungen

4.0.0

Neue Features
  • Die UseInstaller Konfiguration ist jetzt standardmäßig auffalse.

3.1.1

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

  • Fügt einen konfigurierbaren Wiederholungsversuch für die Veröffentlichung von Messobjekten hinzu.

3.1.0

Fehlerbehebungen und Verbesserungen

3.0.1

Behebt ein Problem mit der Berechnung von Deltawerten für Metriken durch die Komponente.

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.17

Version für Greengrass Nucleus Version 2.14.0 aktualisiert.

2.0.16

Version für Greengrass Nucleus Version 2.13.0 aktualisiert.

2.0.11

Version für Greengrass Nucleus Version 2.11.0 aktualisiert.

2.0.10

Die Version wurde für die Greengrass Nucleus-Version 2.7.0 aktualisiert.

2.0.9

Version für die Veröffentlichung von Greengrass Nucleus Version 2.6.0 aktualisiert.

2.0.8

Die Version wurde für die Greengrass Nucleus-Version 2.5.0 aktualisiert.

2.0.7

Die Version wurde für die Greengrass Nucleus-Version 2.4.0 aktualisiert.

2.0.6

Die Version wurde für die Greengrass Nucleus-Version 2.3.0 aktualisiert.

2.0.5

Die Version wurde für die Greengrass Nucleus-Version 2.2.0 aktualisiert.

2.0.4

Die Version wurde für die Greengrass Nucleus-Version 2.1.0 aktualisiert.

2.0.3

Erste Version