View a markdown version of this page

Panoramica di AWS IoT Greengrass sicurezza - AWS IoT Greengrass

Avviso di fine del supporto: il 7 ottobre 2026, AWS interromperà il supporto per. AWS IoT Greengrass Version 1 Dopo il 7 ottobre 2026, non potrai più accedere alle risorse. AWS IoT Greengrass V1 Per ulteriori informazioni, visita Migrate from. AWS IoT Greengrass Version 1

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

Panoramica di AWS IoT Greengrass sicurezza

AWS IoT Greengrass utilizza X.509 certificati, AWS IoT policy e policy e ruoli IAM per proteggere le applicazioni eseguite sui dispositivi nell'ambiente Greengrass locale.

Il diagramma seguente mostra i componenti del modello di AWS IoT Greengrass sicurezza:

Diagramma dell'architettura dei servizi Greengrass che mostra AWS i servizi, i dispositivi principali e connessi di Greengrass e le relative interazioni con i certificati.
A - Ruolo del servizio Greengrass

Un ruolo IAM creato dal cliente che viene assunto AWS IoT Greengrass quando si accede alle AWS risorse da e ad AWS IoT Core altri AWS Lambda servizi. AWS Per ulteriori informazioni, consulta Ruolo del servizio Greengrass.

B - Certificato dispositivo core

Un X.509 certificato utilizzato per autenticare un core Greengrass con e. AWS IoT Core AWS IoT Greengrass Per ulteriori informazioni, consulta Autenticazione e autorizzazione del dispositivo per AWS IoT Greengrass.

C - Certificato dispositivo

Un X.509 certificato utilizzato per autenticare un dispositivo client, noto anche come dispositivo connesso, con e. AWS IoT Core AWS IoT Greengrass Per ulteriori informazioni, consulta Autenticazione e autorizzazione del dispositivo per AWS IoT Greengrass.

D - Ruolo gruppo

Un ruolo IAM creato dal cliente assunto da AWS IoT Greengrass quando si chiamano AWS i servizi da un core di Greengrass.

Utilizzi questo ruolo per specificare le autorizzazioni di accesso necessarie alle funzioni e ai connettori Lambda definiti dall'utente per accedere AWS ai servizi, come DynamoDB. Lo usi anche per consentire di AWS IoT Greengrass esportare gli stream manager nei servizi e scrivere AWS nei log. CloudWatch Per ulteriori informazioni, consulta Ruolo del gruppo Greengrass.

Nota

AWS IoT Greengrass non utilizza il ruolo di esecuzione Lambda specificato in AWS Lambda per la versione cloud di una funzione Lambda.

Certificato server e-MQTT

Il certificato utilizzato per l'autenticazione reciproca Transport Layer Security (TLS) tra un dispositivo principale Greengrass e i dispositivi client del gruppo Greengrass. Il certificato è firmato dal certificato CA di gruppo, che è archiviato nel. Cloud AWS

Flusso di lavoro di connessione del dispositivo

Questa sezione descrive come i dispositivi client si connettono al AWS IoT Greengrass servizio e ai dispositivi principali di Greengrass. I dispositivi client sono AWS IoT Core dispositivi registrati che fanno parte dello stesso gruppo Greengrass del dispositivo principale.

  • Un dispositivo principale Greengrass utilizza il certificato del dispositivo, la chiave privata e il certificato CA AWS IoT Core principale per connettersi al AWS IoT Greengrass servizio. Sul dispositivo principale, l'oggetto crypto nel file di configurazione specifica il percorso del file per questi elementi.

  • Il dispositivo core Greengrass scarica le informazioni sull'appartenenza al gruppo dal servizio AWS IoT Greengrass .

  • Quando viene effettuata una distribuzione sul dispositivo core di Greengrass, Device Certificate Manager (DCM) si occupa della gestione dei certificati del server locale per il dispositivo core Greengrass.

  • Un dispositivo client si connette al AWS IoT Greengrass servizio utilizzando il certificato del dispositivo, la chiave privata e il certificato CA AWS IoT Core principale. Dopo aver effettuato la connessione, il dispositivo client utilizza il Greengrass Discovery Service per trovare l'indirizzo IP del suo dispositivo principale Greengrass. Il dispositivo client scarica anche il certificato CA di gruppo, utilizzato per l'autenticazione reciproca TLS con il dispositivo principale Greengrass.

  • Un dispositivo client tenta di connettersi al dispositivo principale di Greengrass, trasmettendo il certificato del dispositivo e l'ID client. Se l'ID client corrisponde al nome dell'oggetto del dispositivo client e il certificato è valido (parte del gruppo Greengrass), la connessione viene stabilita. In caso contrario, la connessione viene terminata.

La AWS IoT policy per i dispositivi client deve concedere l'greengrass:Discoverautorizzazione per consentire ai dispositivi client di scoprire le informazioni di connettività per il core. Per ulteriori informazioni sull’istruzione di policy, consulta Autorizzazione alla scoperta.

Configurazione AWS IoT Greengrass sicurezza

Per configurare la sicurezza dell'applicazione Greengrass:
  1. Crea AWS IoT Core qualcosa per il tuo dispositivo principale Greengrass.

  2. Generare una coppia di chiavi e un certificato di dispositivo per il dispositivo core Greengrass.

  3. Creare e collegare una policy AWS IoT al certificato del dispositivo. Il certificato e la policy consentono al dispositivo principale di Greengrass l'accesso AWS IoT Core e AWS IoT Greengrass i servizi. Per ulteriori informazioni, consulta AWS IoT Politica minima per il dispositivo principale.

    Nota

    L'uso delle variabili di policy thing (iot:Connection.Thing.*) nella AWS IoT policy per un dispositivo principale non è supportato. Il core utilizza lo stesso certificato del dispositivo per effettuare più connessioni AWS IoT Core , ma l'ID client in una connessione potrebbe non corrispondere esattamente al nome dell'oggetto principale.

  4. Creare un ruolo di servizio Greengrass. Questo ruolo IAM autorizza AWS IoT Greengrass ad accedere alle risorse di altri AWS servizi per tuo conto. Ciò consente di AWS IoT Greengrass eseguire attività essenziali, come il recupero delle AWS Lambda funzioni e la gestione delle ombre dei dispositivi.

    Puoi utilizzare lo stesso ruolo di servizio su Regione AWS s, ma deve essere associato al tuo Account AWS in ogni Regione AWS luogo in cui utilizzi. AWS IoT Greengrass

  5. (Facoltativo) Creare un ruolo del gruppo Greengrass. Questo ruolo IAM concede il permesso alle funzioni e ai connettori Lambda in esecuzione su un core Greengrass di chiamare i servizi. AWS Ad esempio, il connettore Kinesis Firehose richiede l'autorizzazione per scrivere record in un flusso di distribuzione Amazon Data Firehose.

    È possibile associare un solo ruolo a un gruppo Greengrass.

  6. Crea un AWS IoT Core oggetto per ogni dispositivo che si connette al tuo core Greengrass.

    Nota

    Puoi anche utilizzare AWS IoT Core oggetti e certificati esistenti.

  7. Crea certificati di dispositivo, coppie di chiavi e AWS IoT policy per ogni dispositivo che si connette al tuo core Greengrass.

AWS IoT Greengrass principi di sicurezza fondamentali

Il core di Greengrass utilizza i seguenti principi di sicurezza: AWS IoT client, server MQTT locale e gestore di segreti locali. La configurazione per questi principal è memorizzata nell'oggetto crypto nel file di configurazione config.json. Per ulteriori informazioni, consulta AWS IoT Greengrass file di configurazione principale.

Questa configurazione include il percorso della chiave privata utilizzata dal componente principal per l'autenticazione e la crittografia. AWS IoT Greengrass supporta due modi di storage della chiave privata: basato su hardware o basato su file system (impostazione predefinita). Per ulteriori informazioni sulla memorizzazione delle chiavi in moduli di sicurezza hardware, consulta Integrazione della sicurezza hardware.

AWS IoT Client

Il AWS IoT client (client IoT) gestisce la comunicazione su Internet tra il core di Greengrass e AWS IoT Core. AWS IoT Greengrass utilizza X.509 certificati con chiavi pubbliche e private per l'autenticazione reciproca quando stabilisce connessioni TLS per questa comunicazione. Per ulteriori informazioni, consulta X.509 i certificati e AWS IoT Core la Guida per gli AWS IoT Core sviluppatori.

Il client IoT supporta certificati e chiavi RSA ed EC. Il percorso del certificato e della chiave privata è specificato per il principal IoTCertificate in config.json.

Server MQTT

Il server MQTT locale gestisce la comunicazione sulla rete locale tra il core di Greengrass e i dispositivi client del gruppo. AWS IoT Greengrass utilizza X.509 certificati con chiavi pubbliche e private per l'autenticazione reciproca quando stabilisce connessioni TLS per questa comunicazione.

Per impostazione predefinita, AWS IoT Greengrass genera una chiave privata RSA per te. Per configurare il core per usare un'altra chiave privata, è necessario fornire il percorso della chiave per il principal MQTTServerCertificate in config.json. L'utente è responsabile della rotazione di una chiave fornita dal cliente.

Supporto per la chiave privata
Chiave RSA Chiave CE
Tipo di chiavi Supportata Supportata
Parametri chiave Lunghezza minima 2048 bit Curva NIST P-256 o NIST P-384
Formato disco PKCS#1, PKCS#8 SECG1, PKCS#8
Versione GGC minima
  • Usa chiave RSA predefinita: 1.0

  • Specifica una chiave RSA: 1.7

  • Specifica una chiave EC: 1.9

La configurazione della chiave privata determina processi correlati. Per l'elenco delle suite di cifratura supportate dal core Greengrass supporta come server, consulta Supporto TLS per le suite di cifratura.

Se nessuna chiave privata è specificata (impostazione predefinita)
  • AWS IoT Greengrass ruota la chiave in base alle impostazioni di rotazione impostate.

  • Il core genera una chiave RSA che viene utilizzata per generare il certificato.

  • Il certificato del server MQTT ha una chiave pubblica RSA e una firma RSA. SHA-256

Se viene specificata una chiave privata RSA (richiede GGC v1.7 o successivo)
  • Sei responsabile della rotazione della chiave.

  • Il core utilizza la chiave specificata per generare il certificato.

  • La chiave RSA deve avere una lunghezza minima di 2048 bit.

  • Il certificato del server MQTT ha una chiave pubblica RSA e una firma RSA. SHA-256

Se viene specificata una chiave privata EC (richiede GGC v1.9 o successivo)
  • Sei responsabile della rotazione della chiave.

  • Il core utilizza la chiave specificata per generare il certificato.

  • La chiave privata EC deve utilizzare una curva NIST o NIST. P-256 P-384

  • Il certificato del server MQTT ha una chiave pubblica EC e una firma RSA. SHA-256

    Il certificato del server MQTT presentato dal core ha una firma SHA-256 RSA, indipendentemente dal tipo di chiave. Per questo motivo, i client devono supportare la convalida del certificato SHA-256 RSA per stabilire una connessione sicura con il core.

Secrets Manager

Il gestore dei segreti locali gestisce in modo sicuro le copie locali dei segreti che crei. AWS Secrets Manager Utilizza una chiave privata per proteggere la chiave dati utilizzata per crittografare i segreti. Per ulteriori informazioni, consulta Distribuisci i segreti al AWS IoT Greengrass core.

Per impostazione predefinita, viene utilizzata la chiave privata del client IoT, ma è possibile specificare una chiave privata diversa per il principal SecretsManager in config.json. Solo il tipo di chiave RSA è supportato. Per ulteriori informazioni, consulta Specificare la chiave privata per la crittografia dei segreti.

Nota

Attualmente, AWS IoT Greengrass supporta solo il meccanismo di riempimento PKCS #1 v1.5 per la crittografia e la decrittografia dei segreti locali quando si utilizzano chiavi private basate su hardware. Se stai seguendo le istruzioni fornite dal fornitore per generare manualmente chiavi private basate su hardware, assicurati di scegliere PKCS #1 v1.5. AWS IoT Greengrass non supporta l'Optimal Asymmetric Encryption Padding (OAEP).

Supporto per la chiave privata
Chiave RSA Chiave CE
Tipo di chiavi Supportata Non supportata
Parametri chiave Lunghezza minima 2048 bit Non applicabile
Formato disco PKCS#1, PKCS#8 Non applicabile
Versione GGC minima 1,7 Non applicabile

Sottoscrizioni gestite nel flusso di lavoro di messaggistica MQTT

AWS IoT Greengrass utilizza una tabella di sottoscrizione per definire in che modo i messaggi MQTT possono essere scambiati tra dispositivi client, funzioni e connettori in un gruppo Greengrass e con o il servizio shadow locale. AWS IoT Core Ogni abbonamento specifica una fonte, una destinazione e un argomento (o oggetto) MQTT su cui i messaggi vengono inviati o ricevuti. AWS IoT Greengrass consente l'invio di messaggi da una fonte a una destinazione solo se è definita una sottoscrizione corrispondente.

Una sottoscrizione definisce il flusso dei messaggi solo in una direzione, dall'origine alla destinazione. Per supportare lo scambio di messaggi bidirezionale, è necessario creare due sottoscrizioni, una per ogni direzione.

Supporto TLS per le suite di cifratura

AWS IoT Greengrass utilizza il modello di sicurezza AWS IoT Core dei trasporti per crittografare le comunicazioni con il cloud utilizzando le suite di crittografia TLS. Inoltre, AWS IoT Greengrass i dati vengono crittografati quando sono inattivi (nel cloud). Per ulteriori informazioni sulla sicurezza AWS IoT Core dei trasporti e sulle suite di crittografia supportate, consulta Transport security nella AWS IoT Core Developer Guide.

Suite di cifratura supportate per le comunicazioni sulla rete locale

Al contrario AWS IoT Core, il AWS IoT Greengrass core supporta le seguenti suite di crittografia TLS di rete locale per gli algoritmi di firma dei certificati. Tutte queste suite sono supportate quando le chiavi private sono memorizzate nel file system. Un sottoinsieme è supportato quando il core è configurato per l'utilizzo di moduli di sicurezza hardware (HSM). Per ulteriori informazioni, consulta AWS IoT Greengrass principi di sicurezza fondamentali e Integrazione della sicurezza hardware. La tabella include anche la versione minima del software Core richiesta per il supporto. AWS IoT Greengrass

Crittografia Supporto HSM Versione GGC minima
TLSv1.2 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA Supportata 1.0
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Supportata 1.0
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 Supportata 1.0
TLS_RSA_WITH_AES_128_CBC_SHA Non supportata 1.0
TLS_RSA_WITH_AES_128_GCM_SHA256 Non supportata 1.0
TLS_RSA_WITH_AES_256_CBC_SHA Non supportata 1.0
TLS_RSA_WITH_AES_256_GCM_SHA384 Non supportata 1.0
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 Supportata 1.9
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 Supportata 1.9
TLSv1.1 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA Supportata 1.0
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Supportata 1.0
TLS_RSA_WITH_AES_128_CBC_SHA Non supportata 1.0
TLS_RSA_WITH_AES_256_CBC_SHA Non supportata 1.0
TLSv1.0 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA Supportata 1.0
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Supportata 1.0
TLS_RSA_WITH_AES_128_CBC_SHA Non supportata 1.0
TLS_RSA_WITH_AES_256_CBC_SHA Non supportata 1.0