Best practice relative alla sicurezza di AWS IoT Greengrass - AWS IoT Greengrass

AWS IoT Greengrass Version 1 è entrato nella fase di estensione della vita utile il 30 giugno 2023. Per ulteriori informazioni, consulta la politica AWS IoT Greengrass V1 di manutenzione. Dopo questa data, AWS IoT Greengrass V1 non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti, correzioni di bug o patch di sicurezza. I dispositivi che funzionano AWS IoT Greengrass V1 non subiranno interruzioni e continueranno a funzionare e a connettersi al cloud. Ti consigliamo vivamente di eseguire la migrazione a AWS IoT Greengrass Version 2, che aggiunge nuove importanti funzionalità e supporto per piattaforme aggiuntive.

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

Best practice relative alla sicurezza di AWS IoT Greengrass

In questo argomento sono contenute le best practice per la sicurezza di AWS IoT Greengrass.

Concedere autorizzazioni minime possibili

Segui il principio del privilegio minimo utilizzando il set minimo di autorizzazioni nei ruoli IAM. Limita l'uso del * wildcard per le Resource proprietà Action and nelle tue policy IAM. Invece, dichiarare un insieme finito di operazioni e risorse quando possibile. Per ulteriori informazioni su privilegi minimi e altre best practice sulle policy, consulta Best practice per le policy.

La best practice con privilegi minimi si applica anche alle AWS IoT politiche allegate ai dispositivi core e client Greengrass.

Non codificare le credenziali nelle funzioni Lambda

Non codificare le credenziali nelle funzioni Lambda definite dall'utente. Per proteggere meglio le credenziali:

  • Per interagire con i servizi AWS, definire le autorizzazioni per operazioni e risorse specifiche nel ruolo del gruppo Greengrass.

  • Utilizzare i segreti locali per archiviare le credenziali. Oppure, se la funzione utilizza l'AWSSDK, utilizza le credenziali della catena di provider di credenziali predefinita.

Non registrare informazioni riservate

È necessario impedire la registrazione delle credenziali e di altre informazioni di identificazione personale (PII). Ti consigliamo di implementare le seguenti misure di protezione anche se l'accesso ai log locali su un dispositivo principale richiede i privilegi di root e l'accesso ai log richiede le autorizzazioni IAM. CloudWatch

  • Non utilizzare informazioni riservate nei percorsi argomento MQTT.

  • Non utilizzare informazioni riservate nei nomi, nei tipi e negli attributi dei dispositivi nel Registro di sistema AWS IoT Core.

  • Non registrare informazioni sensibili nelle funzioni Lambda definite dall'utente.

  • Non utilizzare informazioni sensibili nei nomi e negli ID delle risorse Greengrass:

    • Connectors (Connettori)

    • Core

    • Dispositivi

    • Funzioni

    • Gruppi

    • Loggers

    • Risorse (locale, machine learning o segreto)

    • Sottoscrizioni

Creare sottoscrizioni mirate

Gli abbonamenti controllano il flusso di informazioni in un gruppo Greengrass definendo come i messaggi vengono scambiati tra servizi, dispositivi e funzioni Lambda. Per garantire che un'applicazione possa eseguire solo ciò che è previsto che faccia, le sottoscrizioni devono consentire agli editori di inviare messaggi solo ad argomenti specifici e limitare i sottoscrittori a ricevere messaggi solo da argomenti necessari per la loro funzionalità.

Tenere sincronizzato l'orologio del dispositivo

È importante avere un orario preciso sul dispositivo. I certificati X.509 hanno data e ora di scadenza. L'orologio sul dispositivo viene utilizzato per verificare che un certificato server sia ancora valido. Gli orologi dei dispositivi possono andare alla deriva nel tempo o le batterie possono scaricarsi.

Per ulteriori informazioni, consulta la best practice Tenere sincronizzato l'orologio del dispositivo nella Guida per sviluppatori AWS IoT Core.

Gestione dell'autenticazione dei dispositivi con il core Greengrass

I dispositivi client possono eseguire FreerTOS o utilizzare Device SDK AWS IoT Greengrasso Discovery API per ottenere informazioni di rilevamento utilizzate per connettersi e autenticarsi con il core AWS IoT dello stesso gruppo Greengrass. Le informazioni di individuazione includono:

  • Informazioni sulla connettività per il core Greengrass che appartiene allo stesso gruppo Greengrass del dispositivo client. Queste informazioni includono l'indirizzo host e il numero di porta di ciascun endpoint per il dispositivo core.

  • Il certificato CA del gruppo utilizzato per firmare il certificato del server MQTT locale. I dispositivi client utilizzano il certificato CA di gruppo per convalidare il certificato del server MQTT presentato dal core.

Di seguito sono riportate le migliori pratiche per i dispositivi client per gestire l'autenticazione reciproca con un core Greengrass. Queste procedure possono contribuire a ridurre i rischi in caso di compromissione del dispositivo core.

Convalidare il certificato del server MQTT locale per ogni connessione.

I dispositivi client devono convalidare il certificato del server MQTT presentato dal core ogni volta che stabiliscono una connessione con il core. Questa convalida riguarda il lato del dispositivo client dell'autenticazione reciproca tra un dispositivo principale e i dispositivi client. I dispositivi client devono essere in grado di rilevare un errore e interrompere la connessione.

Non eseguire le informazioni di individuazione hardcode.

I dispositivi client devono fare affidamento sulle operazioni di rilevamento per ottenere le informazioni di connettività di base e il certificato CA di gruppo, anche se il core utilizza un indirizzo IP statico. I dispositivi client non devono codificare queste informazioni di rilevamento.

Aggiornare periodicamente le informazioni di individuazione.

I dispositivi client devono eseguire periodicamente il rilevamento per aggiornare le informazioni di connettività di base e il certificato CA di gruppo. Consigliamo ai dispositivi client di aggiornare queste informazioni prima di stabilire una connessione con il core. Poiché intervalli più brevi tra le operazioni di rilevamento possono ridurre al minimo il potenziale tempo di esposizione, consigliamo di disconnettere e riconnettersi periodicamente i dispositivi client per attivare l'aggiornamento.

Se perdi il controllo di un dispositivo core Greengrass e desideri impedire ai dispositivi client di trasmettere dati al core, procedi come segue:

  1. Rimuovere il core di Greengrass dal gruppo Greengrass.

  2. Ruotare il certificato CA del gruppo. Nella AWS IoT console, puoi ruotare il certificato CA nella pagina Impostazioni del gruppo. Nell'AWS IoT GreengrassAPI, puoi utilizzare l'CreateGroupCertificateAuthorityazione.

    Si consiglia inoltre di utilizzare la crittografia completa del disco se il disco rigido del dispositivo core è vulnerabile al furto.

Per ulteriori informazioni, consulta Autenticazione e autorizzazione del dispositivo per AWS IoT Greengrass.

Consulta anche