View a markdown version of this page

AWS IoT Device Defender - AWS IoT Greengrass

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS IoT Device Defender

Il AWS IoT Device Defender componente (aws.greengrass.DeviceDefender) notifica agli amministratori le modifiche allo stato dei dispositivi principali di Greengrass. Ciò consente di identificare un comportamento anomalo che potrebbe indicare la compromissione del dispositivo. Per ulteriori informazioni, consulta la sezione AWS IoT Device Defender nella Guida per gli sviluppatori di AWS IoT Core .

Questo componente legge le metriche di sistema sul dispositivo principale. Quindi, pubblica le metriche su. AWS IoT Device Defender Per ulteriori informazioni su come leggere e interpretare le metriche riportate da questo componente, consulta le specifiche del documento Device Metrics nella Developer Guide. AWS IoT Core

Nota

Questo componente fornisce funzionalità simili al connettore Device Defender in. AWS IoT Greengrass V1 Per ulteriori informazioni, consulta Device Defender connector nella AWS IoT Greengrass V1 Developer Guide.

Versioni

Questo componente ha le seguenti versioni:

  • 4.0.x

  • 3.1.x

  • 3.0.x

  • 2.0.x

Per informazioni sulle modifiche apportate a ciascuna versione del componente, consultate il changelog. Changelog

Tipo

v4.x - v3.x

Questo componente è un componente generico ()aws.greengrass.generic. Il nucleo di Greengrass esegue gli script del ciclo di vita del componente.

v2.x

Questo componente è un componente Lambda (aws.greengrass.lambda). Il nucleo di Greengrass esegue la funzione Lambda di questo componente utilizzando il componente di avvio Lambda.

Per ulteriori informazioni, consulta Tipi di componenti.

Sistema operativo

v4.x - v3.x

Questo componente può essere installato sui dispositivi principali che eseguono i seguenti sistemi operativi:

  • Linux

  • Windows

v2.x

Questo componente può essere installato solo sui dispositivi principali di Linux.

Requisiti

Questo componente ha i seguenti requisiti:

v4.x - v3.x
  • Python versione 3.7 installata sul dispositivo principale e aggiunta alla variabile di ambiente PATH.

  • Le seguenti librerie Python, incluse le eventuali dipendenze, devono essere installate e disponibili per l'utente che esegue il componente:

    Nota

    È possibile impostare la UseInstaller configurazione in modo da true installare automaticamente queste librerie nell'ambiente Python fornito.

  • AWS IoT Device Defender configurato per utilizzare la funzione Detect per monitorare le violazioni. Per ulteriori informazioni, consulta Detect nella Guida per AWS IoT Core gli sviluppatori.

v2.x
  • Il dispositivo principale deve soddisfare i requisiti per eseguire le funzioni Lambda. Se desideri che il dispositivo principale esegua funzioni Lambda containerizzate, il dispositivo deve soddisfare i requisiti per farlo. Per ulteriori informazioni, consulta Requisiti della funzione Lambda.

  • La versione 3.7 di Python è stata installata sul dispositivo principale e aggiunta alla variabile di ambiente PATH.

  • AWS IoT Device Defender configurato per utilizzare la funzione Detect per monitorare le violazioni. Per ulteriori informazioni, consulta Detect nella Guida per AWS IoT Core gli sviluppatori.

  • La libreria psutil installata sul dispositivo principale. La versione 5.7.0 è l'ultima versione verificata per funzionare con il componente.

  • La libreria cbor installata sul dispositivo principale. La versione 1.0.0 è l'ultima versione verificata per funzionare con il componente.

  • Per ricevere i dati di output da questo componente, è necessario unire il seguente aggiornamento di configurazione per il componente router in abbonamento precedente (aws.greengrass.LegacySubscriptionRouter) quando si distribuisce questo componente. Questa configurazione specifica l'argomento in cui questo componente pubblica le risposte.

    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" } } }
    • Sostituisci region con quello Regione AWS che usi.

    • Sostituisci version con la versione della funzione Lambda eseguita da questo componente. Per trovare la versione della funzione Lambda, è necessario visualizzare la ricetta per la versione di questo componente che si desidera distribuire. Apri la pagina dei dettagli di questo componente nella AWS IoT Greengrass console e cerca la coppia chiave-valore della funzione Lambda. Questa coppia chiave-valore contiene il nome e la versione della funzione Lambda.

    Importante

    È necessario aggiornare la versione della funzione Lambda sul router di abbonamento precedente ogni volta che si distribuisce questo componente. Ciò garantisce l'utilizzo della versione della funzione Lambda corretta per la versione del componente da distribuire.

    Per ulteriori informazioni, consulta Creare distribuzione.

Dipendenze

Quando distribuisci un componente, distribuisce AWS IoT Greengrass anche versioni compatibili delle sue dipendenze. Ciò significa che è necessario soddisfare i requisiti del componente e tutte le sue dipendenze per distribuire correttamente il componente. Questa sezione elenca le dipendenze per le versioni rilasciate di questo componente e i vincoli semantici della versione che definiscono le versioni dei componenti per ciascuna dipendenza. È inoltre possibile visualizzare le dipendenze per ciascuna versione del componente nella console. AWS IoT Greengrass Nella pagina dei dettagli del componente, cerca l'elenco delle dipendenze.

4.0.0 - 3.0.0

La tabella seguente elenca le dipendenze per le versioni da 4.0.0 a 3.0.0 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <3.0.0 Flessibili
Servizio di scambio di token > = 0.0.0 Rigidi
2.0.12 - 2.0.17

La tabella seguente elenca le dipendenze per le versioni da 2.0.12 a 2.0.17 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <3.0.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.12 - 2.0.16

La tabella seguente elenca le dipendenze per la versione 2.0.16 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <3.0.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.10 - 2.0.11

La tabella seguente elenca le dipendenze per le versioni 2.0.10 e 2.0.11 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.8.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.9

La tabella seguente elenca le dipendenze per la versione 2.0.9 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.7.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.8

La tabella seguente elenca le dipendenze per la versione 2.0.8 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo di Greengrass > =2.0.0 <2.6.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.7

La tabella seguente elenca le dipendenze per la versione 2.0.7 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.5.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.6

La tabella seguente elenca le dipendenze per la versione 2.0.6 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.4.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.5

La tabella seguente elenca le dipendenze per la versione 2.0.5 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.3.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.4

La tabella seguente elenca le dipendenze per la versione 2.0.4 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.2.0 Rigidi
Launcher Lambda ^2.0.0 Rigidi
Runtime Lambda ^2.0.0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.3

La tabella seguente elenca le dipendenze per la versione 2.0.3 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.3 <2.1.0 Rigidi
Launcher Lambda > = 1.0.0 Rigidi
Runtime Lambda > = 1.0.0 Flessibili
Servizio di scambio di token > = 1.0.0 Rigidi

Per ulteriori informazioni sulle dipendenze dei componenti, consultate il riferimento alla composizione dei componenti.

Configurazione

Questo componente fornisce i seguenti parametri di configurazione che è possibile personalizzare durante la distribuzione del componente.

v4.x
PublishRetryCount

Il numero di volte in cui verrà ritentata la pubblicazione.

Il valore minimo è 0.

Il massimo è 72.

Impostazione predefinita: 5

SampleIntervalSeconds

(Facoltativo) L'intervallo di tempo in secondi tra ogni ciclo in cui il componente raccoglie e riporta le metriche.

Il valore minimo è di 300 secondi (5 minuti).

Impostazione predefinita: 300 secondi

UseInstaller

(Facoltativo) Valore booleano che definisce se utilizzare lo script di installazione per installare le dipendenze Python di questo componente nell'ambiente Python fornito.

Imposta questo valore su per installare automaticamente le true dipendenze Python di questo componente. Se impostato sufalse, è necessario installare le seguenti librerie, incluse le eventuali dipendenze, e renderle disponibili per l'ambiente Python fornito all'utente che esegue il componente.

Impostazione predefinita: false

v3.x
PublishRetryCount

Il numero di volte in cui verrà ritentata la pubblicazione. Questa funzionalità è disponibile nella versione 3.1.1.

Il valore minimo è 0.

Il massimo è 72.

Impostazione predefinita: 5

SampleIntervalSeconds

(Facoltativo) L'intervallo di tempo in secondi tra ogni ciclo in cui il componente raccoglie e riporta le metriche.

Il valore minimo è di 300 secondi (5 minuti).

Impostazione predefinita: 300 secondi

UseInstaller

(Facoltativo) Valore booleano che definisce se utilizzare lo script di installazione per installare le dipendenze Python di questo componente nell'ambiente Python fornito.

Imposta questo valore su per utilizzare uno script personalizzato false o installare manualmente le dipendenze. Se impostato sufalse, è necessario installare le seguenti librerie, incluse le eventuali dipendenze, e renderle disponibili per l'ambiente Python fornito all'utente che esegue il componente.

Nota

Se si utilizza la versione 3.0.0 o 3.0.1 di questo componente su dispositivi principali configurati per l'utilizzo di un proxy HTTPS, è necessario impostare questo valore su. false Lo script di installazione non supporta il funzionamento dietro un proxy HTTPS in queste versioni di questo componente.

Impostazione predefinita: true

v2.x
Nota

La configurazione predefinita di questo componente include i parametri della funzione Lambda. Ti consigliamo di modificare solo i seguenti parametri per configurare questo componente sui tuoi dispositivi.

lambdaParams

Un oggetto che contiene i parametri per la funzione Lambda di questo componente. Questo oggetto contiene le seguenti informazioni:

EnvironmentVariables

Un oggetto che contiene i parametri della funzione Lambda. Questo oggetto contiene le seguenti informazioni:

PROCFS_PATH

(Facoltativo) Il percorso della /proc cartella.

  • Per eseguire questo componente in un contenitore, utilizzate il valore predefinito,/host-proc. Per impostazione predefinita, il componente viene eseguito in un contenitore.

  • Per eseguire questo componente in modalità non contenitore, /proc specificate questo parametro.

Default: /host-proc. Questo è il percorso predefinito in cui questo componente monta la /proc cartella nel contenitore.

Nota

Questo componente ha accesso in sola lettura a questa cartella.

SAMPLE_INTERVAL_SECONDS

(Facoltativo) L'intervallo di tempo in secondi tra ogni ciclo in cui il componente raccoglie e riporta le metriche.

Il valore minimo è di 300 secondi (5 minuti).

Impostazione predefinita: 300 secondi

containerMode

(Facoltativo) La modalità di containerizzazione per questo componente. Seleziona una delle opzioni seguenti:

  • GreengrassContainer— Il componente viene eseguito in un ambiente di runtime isolato all'interno del AWS IoT Greengrass contenitore.

  • NoContainer— Il componente non viene eseguito in un ambiente di runtime isolato.

    Se si specifica questa opzione, è necessario specificare /proc il parametro della variabile di PROCFS_PATH ambiente.

Impostazione predefinita: GreengrassContainer

containerParams

(Facoltativo) Un oggetto che contiene i parametri del contenitore per questo componente. Il componente utilizza questi parametri se specificate GreengrassContainer percontainerMode.

Questo oggetto contiene le seguenti informazioni:

memorySize

(Facoltativo) La quantità di memoria (in kilobyte) da allocare al componente.

Il valore predefinito è 50.000 KB.

pubsubTopics

(Facoltativo) Un oggetto che contiene gli argomenti a cui il componente si iscrive per ricevere messaggi. È possibile specificare ogni argomento e se il componente sottoscrive argomenti MQTT provenienti da AWS IoT Core o argomenti locali. publish/subscribe

Questo oggetto contiene le seguenti informazioni:

0— Questo è un indice di matrice sotto forma di stringa.

Un oggetto che contiene le seguenti informazioni:

type

(Facoltativo) Il tipo di publish/subscribe messaggistica utilizzato da questo componente per sottoscrivere i messaggi. Seleziona una delle opzioni seguenti:

  • PUB_SUB— Sottoscrivi ai publish/subscribe messaggi locali. Se scegli questa opzione, l'argomento non può contenere caratteri jolly MQTT. Per ulteriori informazioni su come inviare messaggi da un componente personalizzato quando si specifica questa opzione, vedere. Pubblicare/sottoscrivere messaggi locali

  • IOT_CORE— Iscriviti ai messaggi AWS IoT Core MQTT. Se scegli questa opzione, l'argomento può contenere caratteri jolly MQTT. Per ulteriori informazioni su come inviare messaggi da componenti personalizzati quando si specifica questa opzione, vedere. Publish/subscribe AWS IoT Core Messaggi MQTT

Impostazione predefinita: PUB_SUB

topic

(Facoltativo) L'argomento a cui il componente si iscrive per ricevere messaggi. Se si specifica IotCore pertype, è possibile utilizzare i caratteri jolly MQTT (+e#) in questo argomento.

Esempio Esempio: aggiornamento dell'unione delle configurazioni (modalità contenitore)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/host_proc" } }, "containerMode": "GreengrassContainer" }
Esempio Esempio: aggiornamento dell'unione delle configurazioni (nessuna modalità contenitore)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/proc" } }, "containerMode": "NoContainer" }

Dati di input

Questo componente non accetta messaggi come dati di input.

Dati di output

Questo componente pubblica le metriche di sicurezza nel seguente argomento riservato per. AWS IoT Device Defender Questo componente sostituisce coreDeviceName il nome del dispositivo principale quando pubblica le metriche.

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

Esempio Output di esempio
{ "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 } } } }

Per ulteriori informazioni sulle metriche riportate da questo componente, consulta le specifiche del documento Device Metrics nella Developer Guide. AWS IoT Core

File di registro locale

Questo componente utilizza il seguente file di registro.

Linux
/greengrass/v2/logs/aws.greengrass.DeviceDefender.log
Windows
C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log
Per visualizzare i log di questo componente
  • Esegui il seguente comando sul dispositivo principale per visualizzare il file di registro di questo componente in tempo reale. Sostituisci /greengrass/v2 o C:\greengrass\v2 con il percorso della cartella AWS IoT Greengrass principale.

    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

Licenze

Questo componente è rilasciato in base al Greengrass Core Software License Agreement.

Changelog

La tabella seguente descrive le modifiche in ciascuna versione del componente.

v4.x - v3.x

Versione

Modifiche

4.0.0

Nuove funzionalità
  • La UseInstaller configurazione predefinita ora è. false

3.1.1

Correzioni di bug e miglioramenti
  • Aggiunge nuovi tentativi per la connessione del client quando la connessione non riesce a ripristinare dopo un'interruzione della rete.

  • Aggiunge un nuovo tentativo configurabile per la pubblicazione delle metriche.

3.1.0

Correzioni di bug e miglioramenti

3.0.1

Risolve un problema relativo al modo in cui il componente calcola i valori delta per le metriche.

3.0.0

avvertimento

Questa versione non è più disponibile. I miglioramenti di questa versione sono disponibili nelle versioni successive di questo componente.

Versione iniziale.

v2.x

Versione

Modifiche

2.0.17

Versione aggiornata per la versione 2.14.0 di Greengrass nucleus.

2.0.16

Versione aggiornata per la versione 2.13.0 di Greengrass nucleus.

2.0.11

Versione aggiornata per la versione 2.11.0 di Greengrass nucleus.

2.0.10

Versione aggiornata per la versione 2.7.0 di Greengrass nucleus.

2.0.9

Versione aggiornata per la versione 2.6.0 di Greengrass nucleus.

2.0.8

Versione aggiornata per la versione 2.5.0 di Greengrass nucleus.

2.0.7

Versione aggiornata per la versione 2.4.0 di Greengrass nucleus.

2.0.6

Versione aggiornata per la versione 2.3.0 di Greengrass nucleus.

2.0.5

Versione aggiornata per la versione 2.2.0 di Greengrass nucleus.

2.0.4

Versione aggiornata per la versione 2.1.0 di Greengrass nucleus.

2.0.3

Versione iniziale.