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 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 DefenderPer ulteriori informazioni su come leggere e interpretare le metriche riportate da questo componente, consulta la sezione 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 V1Per ulteriori informazioni, consulta Device Defender connector nella Device DefenderAWS IoT Greengrass V1 Guide.

Versioni

Questo componente ha le seguenti versioni:

  • 3.1.x

  • 3.0.x

  • 2,0x

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

Type

v3.x

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

v2.x

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

Per ulteriori informazioni, consulta Tipi di componenti.

Sistema operativo

v3.x

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

  • Linux

  • Windows

v2.x

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

Requisiti

Questo componente ha i seguenti requisiti:

v3.x
  • Python versione 3.7 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 AWS IoT Core Developer Guide.

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.

  • Python versione 3.7 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 AWS IoT Core Developer Guide.

  • 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 legacy del router di abbonamento (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" } } }
    • Replace (Sostituisci) region con quello Regione AWS che usi.

    • Replace (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 legacy ogni volta che si distribuisce questo componente. Ciò garantisce l'utilizzo della versione corretta della funzione Lambda per la versione del componente che si distribuisce.

    Per ulteriori informazioni, consulta Creare distribuzione.

Dipendenze

Quando si distribuisce un componente, distribuisce AWS IoT Greengrass anche versioni compatibili delle relative dipendenze. Ciò significa che è necessario soddisfare i requisiti per il 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 di versione semantica che definiscono le versioni dei componenti per ogni dipendenza. È inoltre possibile visualizzare le dipendenze per ogni versione del componente nella console.AWS IoT Greengrass Nella pagina dei dettagli del componente, cerca l'elenco delle dipendenze.

3.1.1

La tabella seguente elenca le dipendenze per la versione 3.1.1 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
3.0.0 - 3.0.2

La tabella seguente elenca le dipendenze per le versioni da 3.0.0 a 3.0.2 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.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
Lanciatore 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
Lanciatore 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
Lanciatore 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 Greengrass >=2.0.0 <2.6.0 Rigidi
Lanciatore 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
Lanciatore 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
Lanciatore 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
Lanciatore 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
Lanciatore 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
Lanciatore 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, vedere il riferimento alla ricetta dei componenti.

Configurazione

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

v3.x
PublishRetryCount

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

Il valore minimo è 0.

Il massimo è 72.

Impostazione predefinita: 5

SampleIntervalSeconds

(Facoltativo) La quantità 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 in questo componente per installarne le dipendenze.

Imposta questo valore su false se desideri utilizzare uno script personalizzato per installare le dipendenze o se desideri includere le dipendenze di runtime in un'immagine Linux predefinita. Per utilizzare questo componente, è necessario installare le seguenti librerie, comprese le eventuali dipendenze, e renderle disponibili all'utente predefinito del sistema Greengrass.

Nota

Se si utilizza la versione 3.0.0 o 3.0.1 di questo componente su dispositivi principali configurati per l'uso di un HTTPS proxy, è necessario impostare questo valore su. false Lo script di installazione non supporta il funzionamento con un HTTPS proxy 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à senza contenitore, specificare /proc 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) La quantità 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 si specifica 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 gli argomenti AWS IoT Core o gli MQTT argomenti di pubblicazione/sottoscrizione locali.

Questo oggetto contiene le seguenti informazioni:

0— Si tratta di un indice di matrice sotto forma di stringa.

Un oggetto che contiene le seguenti informazioni:

type

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

  • PUB_SUB: iscriviti ai messaggi di pubblicazione/sottoscrizione locali. Se scegli questa opzione, l'argomento non può contenere caratteri jolly. MQTT Per ulteriori informazioni su come inviare messaggi dal componente personalizzato quando si specifica questa opzione, vederePubblicare/sottoscrivere messaggi locali.

  • IOT_CORE— AWS IoT Core MQTT Sottoscrivi ai messaggi. Se scegli questa opzione, l'argomento può contenere caratteri MQTT speciali. Per ulteriori informazioni su come inviare messaggi da componenti personalizzati quando si specifica questa opzione, vedereAWS IoT Core MQTTPubblicare/sottoscrivere messaggi.

Impostazione predefinita: PUB_SUB

topic

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

Esempio: aggiornamento basato sull'unione della configurazione (modalità contenitore)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/host_proc" } }, "containerMode": "GreengrassContainer" }
Esempio: aggiornamento tramite fusione della configurazione (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 relative al seguente argomento riservato a. AWS IoT Device Defender Questo componente sostituisce coreDeviceName con il nome del dispositivo principale quando pubblica le metriche.

Argomento ()AWS IoT Core MQTT: $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 la sezione Specifiche del documento Device Metrics nella AWS IoT Core Developer Guide.

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 contratto di licenza del software Greengrass Core.

Changelog

La tabella seguente descrive le modifiche apportate a ciascuna versione del componente.

v3.x

Versione

Modifiche

3.1.1

Correzioni di bug e miglioramenti
  • Aggiunge nuovi tentativi di connessione al client quando la connessione non riesce a ripristinarsi 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.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.