View a markdown version of this page

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

Tunneling sicuro

Con il aws.greengrass.SecureTunneling componente, è possibile stabilire una comunicazione bidirezionale sicura con un dispositivo principale di Greengrass situato dietro firewall limitati.

Ad esempio, immaginate di avere un dispositivo principale Greengrass protetto da un firewall che proibisce tutte le connessioni in entrata. Il tunneling sicuro utilizza MQTT per trasferire un token di accesso al dispositivo e quindi per stabilire una connessione SSH WebSockets al dispositivo tramite il firewall. Con questo tunnel AWS IoT gestito, puoi aprire la connessione SSH necessaria per il tuo dispositivo. Per ulteriori informazioni sull'utilizzo del tunneling AWS IoT sicuro per la connessione a dispositivi remoti, consulta AWS IoT Secure Tunneling nella Developer Guide. AWS IoT

Questo componente si abbona al broker di messaggi AWS IoT Core MQTT sull'argomento per ricevere notifiche di tunneling sicuro. $aws/things/greengrass-core-device/tunnels/notify

Versioni

Questo componente ha le seguenti versioni:

  • 2.0.x

  • 1.1.x

  • 1.0.x

Tipo

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

Per ulteriori informazioni, consulta Tipi di componenti.

Sistema operativo

Questo componente può essere installato solo su dispositivi Linux core.

Architetture:

  • Armv71

  • Armv8 (AArch64)

  • x86_64

Requisiti

Questo componente ha i seguenti requisiti:

2.0.x
  • Almeno 4 MB di spazio su disco disponibile per il componente Secure Tunneling. Questo requisito non include il software di base Greengrass o altri componenti in esecuzione sullo stesso dispositivo.

  • Sono disponibili almeno 3 MB di RAM per il componente di tunneling sicuro. Questo requisito non include il software di base Greengrass o altri componenti in esecuzione sullo stesso dispositivo.

  • GNU C Library (glibc) versione 2.35 o successiva. Le versioni del sistema operativo e delle librerie che hanno superato la data di scadenza del supporto a lungo termine non sono supportate. È necessario utilizzare un sistema operativo e librerie con supporto a lungo termine.

  • Le seguenti librerie di runtime installate sul dispositivo principale di Greengrass:

    • libstdc++versione 3.4.29 o superiore

    • libgcc_sversione 3.0 o successiva

    • OpenSSL versione 3.0.0 o successiva

  • Apri il traffico in uscita sulla porta 443 del dispositivo principale Greengrass.

  • Attiva il supporto per il servizio di comunicazione che desideri utilizzare per comunicare con il dispositivo principale Greengrass. Ad esempio, per aprire una connessione SSH al dispositivo, è necessario attivare SSH su quel dispositivo.

1.0.x - 1.1.x
  • Almeno 32 MB di spazio su disco disponibile per il componente Secure Tunneling. Questo requisito non include il software di base Greengrass o altri componenti in esecuzione sullo stesso dispositivo.

  • Sono disponibili almeno 16 MB di RAM per il componente di tunneling sicuro. Questo requisito non include il software di base Greengrass o altri componenti in esecuzione sullo stesso dispositivo. Per ulteriori informazioni, consulta Controlla l'allocazione della memoria con le opzioni JVM.

  • La versione 2.25 o successiva della libreria GNU C (glibc) con un kernel Linux 3.2 o superiore è richiesta per la versione 1.0.12 e successive del componente di tunneling sicuro. Le versioni del sistema operativo e delle librerie che hanno superato la data di scadenza del supporto a lungo termine non sono supportate. È necessario utilizzare un sistema operativo e librerie con supporto a lungo termine.

  • Sia il sistema operativo che il runtime Java devono essere installati a 64 bit.

  • Python 3.5 o successivo è stato installato sul dispositivo principale di Greengrass e aggiunto alla variabile di ambiente PATH.

  • libcrypto.so.1.1installato sul dispositivo principale Greengrass e aggiunto alla variabile di ambiente PATH.

  • Apri il traffico in uscita sulla porta 443 del dispositivo principale Greengrass.

  • Attiva il supporto per il servizio di comunicazione che desideri utilizzare per comunicare con il dispositivo principale Greengrass. Ad esempio, per aprire una connessione SSH al dispositivo, è necessario attivare SSH su quel dispositivo.

Endpoint e porte

Questo componente deve essere in grado di eseguire richieste in uscita ai seguenti endpoint e porte, oltre agli endpoint e alle porte necessari per il funzionamento di base. Per ulteriori informazioni, consulta Consenti il traffico dei dispositivi tramite un proxy o un firewall.

Endpoint Porta Richiesto Description

data.tunneling.iot.region.amazonaws.com

443

Stabilisci tunnel sicuri.

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.

2.0.0

La versione 2.0.0 di questo componente supporta sia Greengrass nucleus che Greengrass nucleus lite. La tabella seguente elenca le dipendenze per la versione 2.0.0 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Greengrass nucleus O Greengrass nucleus lite Greengrass Nucleus Lite > =2.0.0 <3.0.0 Flessibili
1.0.19 – 1.1.3

La tabella seguente elenca le dipendenze per le versioni da 1.0.19 a 1.1.3 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <3.0.0 Flessibili
1.0.18

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.13.0 Flessibili
1.0.16 – 1.0.17

La tabella seguente elenca le dipendenze per le versioni da 1.0.16 a 1.0.17 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.12.0 Flessibili
1.0.14 – 1.0.15

La tabella seguente elenca le dipendenze per le versioni da 1.0.14 a 1.0.15 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo di Greengrass > =2.0.0 <2.11.0 Flessibili
1.0.11 – 1.0.13

La tabella seguente elenca le dipendenze per le versioni 1.0.11 - 1.0.13 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.10.0 Flessibili
1.0.10

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.9.0 Flessibili
1.0.9

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.8.0 Flessibili
1.0.8

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.7.0 Flessibili
1.0.5 - 1.0.7

La tabella seguente elenca le dipendenze per le versioni da 1.0.5 a 1.0.7 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.6.0 Flessibili
1.0.4

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.5.0 Flessibili
1.0.3

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.4.0 Flessibili
1.0.2

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.3.0 Flessibili
1.0.1

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.0 <2.2.0 Flessibili
1.0.0

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass > =2.0.3 <2.1.0 Flessibili

Per ulteriori informazioni sulle dipendenze dei componenti, vedere il riferimento alla ricetta dei componenti. ComponentDependencies

Configurazione

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

2.0.x
maxConcurrentTunnels

(Facoltativo) Numero massimo di tunnel simultanei consentito.

Nota

Il valore non può essere superiore a 20.

Impostazione predefinita: 20

tunnelTimeoutSeconds

(Facoltativo) Durata del timeout del tunnel in secondi.

Impostazione predefinita: 43200 (12 ore)

accessControl

(Facoltativo) L'oggetto che contiene la politica di autorizzazione che consente al componente di sottoscrivere l'argomento delle notifiche di tunneling sicuro.

Nota

Non modificate questo parametro di configurazione se la distribuzione è destinata a un gruppo di oggetti. Se la distribuzione è destinata a un singolo dispositivo principale e desideri limitarne la sottoscrizione all'argomento del dispositivo, specifica il nome dell'oggetto del dispositivo principale. Nel resources valore indicato nella politica di autorizzazione del dispositivo, sostituisci il carattere jolly dell'argomento MQTT con il nome dell'oggetto del dispositivo.

{ "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.SecureTunneling:mqttproxy:1": { "policyDescription": "Access to tunnel notification pubsub topic", "operations": [ "aws.greengrass#SubscribeToIoTCore" ], "resources": [ "$aws/things/+/tunnels/notify" ] } } }
Esempio Esempio: aggiornamento dell'unione delle configurazioni

La seguente configurazione di esempio specifica il numero massimo di tunnel simultanei e le impostazioni di timeout.

{ "maxConcurrentTunnels": 20, "tunnelTimeoutSeconds": 43200, "accessControl": { "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.SecureTunneling:mqttproxy:1": { "policyDescription": "Access to tunnel notification pubsub topic", "operations": [ "aws.greengrass#SubscribeToIoTCore" ], "resources": [ "$aws/things/MyGreengrassCore/tunnels/notify" ] } } } }
1.0.x - 1.1.x
OS_DIST_INFO

(Facoltativo) Il sistema operativo del dispositivo principale. Per impostazione predefinita, il componente tenta di identificare automaticamente il sistema operativo in esecuzione sul dispositivo principale. Se il componente non si avvia con il valore predefinito, utilizzate questo valore per specificare il sistema operativo. Per un elenco dei sistemi operativi supportati per questo componente, vedereRequisiti per il dispositivo.

Questo valore può essere uno dei seguenti:auto,ubuntu,amzn2,raspberrypi.

Impostazione predefinita: auto

accessControl

(Facoltativo) L'oggetto che contiene la politica di autorizzazione che consente al componente di sottoscrivere l'argomento delle notifiche di tunneling sicuro.

Nota

Non modificate questo parametro di configurazione se la distribuzione è destinata a un gruppo di oggetti. Se la distribuzione è destinata a un singolo dispositivo principale e desideri limitarne la sottoscrizione all'argomento del dispositivo, specifica il nome dell'oggetto del dispositivo principale. Nel resources valore indicato nella politica di autorizzazione del dispositivo, sostituisci il carattere jolly dell'argomento MQTT con il nome dell'oggetto del dispositivo.

{ "aws.greengrass.ipc.mqttproxy": { "aws.iot.SecureTunneling:mqttproxy:1": { "policyDescription": "Access to tunnel notification pubsub topic", "operations": [ "aws.greengrass#SubscribeToIoTCore" ], "resources": [ "$aws/things/+/tunnels/notify" ] } } }
Esempio Esempio: aggiornamento dell'unione delle configurazioni

La seguente configurazione di esempio specifica di consentire a questo componente di aprire tunnel sicuri su un dispositivo principale denominato MyGreengrassCore che esegue Ubuntu.

{ "OS_DIST_INFO": "ubuntu", "accessControl": { "aws.greengrass.ipc.mqttproxy": { "aws.iot.SecureTunneling:mqttproxy:1": { "policyDescription": "Access to tunnel notification pubsub topic", "operations": [ "aws.greengrass#SubscribeToIoTCore" ], "resources": [ "$aws/things/MyGreengrassCore/tunnels/notify" ] } } } }

File di registro locale

Greengrass nucleus

Questo componente utilizza il seguente file di registro.

/greengrass/v2/logs/aws.greengrass.SecureTunneling.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. Sostituiscilo /greengrass/v2 con il percorso della cartella AWS IoT Greengrass principale.

    sudo tail -f /greengrass/v2/logs/aws.greengrass.SecureTunneling.log
Greengrass nucleus lite

Esegui il seguente comando sul dispositivo principale per visualizzare i log di questo componente.

journalctl -xeau ggl.aws.greengrass.SecureTunneling.service

Esegui il comando seguente sul dispositivo principale per visualizzare i log di questo componente in tempo reale.

journalctl -fau ggl.aws.greengrass.SecureTunneling.service

Licenze

Questo componente include le seguenti terze parti software/licensing:

2.0.x
1.0.x - 1.1.x

Utilizzo

Per utilizzare il componente di tunneling sicuro sul tuo dispositivo, procedi come segue:

  1. Distribuisci il componente di tunneling sicuro sul tuo dispositivo.

  2. Apri la AWS IoT console. Dal menu a sinistra, scegli Azioni remote, quindi scegli Secure tunnels.

  3. Crea un tunnel verso il tuo dispositivo Greengrass.

  4. Scarica il token di accesso alla fonte.

  5. Usa il proxy locale con il token di accesso alla fonte per connetterti alla tua destinazione. Per ulteriori informazioni, consulta Come usare il proxy locale nella Guida per gli AWS IoT sviluppatori.

Consulta anche

Changelog

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

Versione

Modifiche

2.0.1

Correzioni di bug e miglioramenti
  • Aggiorna il file binario del proxy locale in dotazione alla versione 3.3.0.

  • Risolve i bug relativi alla concorrenza e alla durata degli oggetti che potevano influire sull'integrità dei dati del tunnel.

  • Richiede TLS 1.2 o successivo e non consente più SSLv2, SSLv3, TLS 1.0 o TLS 1.1.

2.0.0

Nuove funzionalità
  • Sostituisce il wrapper Java con un wrapper C.

  • Sostituisce Device Client con Securetunneling Localproxy AWS IoT . AWS IoT

  • Riduce la dimensione binaria da circa 36 MB a circa 4 MB.

  • Riduce l'ingombro della memoria da circa 100 MB a circa 2 MB.

1.1.3

Correzioni di bug e miglioramenti
  • Aggiorna il AWS IoT Device Client sottostante richiamato dal componente dalla versione 1.10.0 alla versione 1.10.1.

  • Risolve i problemi di compatibilità della libreria GNU C (glibc) nella versione 1.1.2 del componente di tunneling sicuro.

1.1.2

avvertimento

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

Correzioni di bug e miglioramenti
  • Aggiorna il AWS IoT Device Client sottostante richiamato dal componente dalla versione 1.9.0 alla versione 1.10.0.

  • Risolve il problema di trasferimento del payload che impedisce agli utenti di inoltrare file di grandi dimensioni dai dispositivi principali di Greengrass V2 al dispositivo di origine attraverso il tunnel sicuro.

1.1.1

Correzioni di bug e miglioramenti
  • Aggiunge una configurazione per supportare Greengrass nucleus lite.

1.1.0

Nuove funzionalità
  • Aggiunge il supporto alle ricette per Greengrass nucleus lite.

1.0.19

Correzioni di bug e miglioramenti
  • Aggiorna il AWS IoT Device Client sottostante richiamato dal componente dalla versione 1.8.0 alla versione 1.9.0.

  • Aumenta il limite dei tunnel simultanei a 20 tunnel a livello di componente.

  • Aumenta il timeout AWS IoT Greengrass Core IPC predefinito da 3 secondi a 10 secondi.

avvertimento

Se utilizzate il proxy locale Secure Tunneling come client di origine del tunnel, non aggiornate il componente a questa versione prima di aver aggiornato anche il proxy locale alla versione 3.1.1 o successiva.

1.0.18

Versione aggiornata per la versione 2.12.0 di Greengrass nucleus.

1.0.17

Correzioni di bug e miglioramenti
  • Risolve il problema di pulizia dei thread che impediva agli utenti di creare tunnel. Questo componente ora pulirà un thread una volta ricevuto il CloseTunnel segnale o se il tunnel è scaduto dopo 12 ore.

1.0.16

Versione aggiornata per la versione 2.11.0 di Greengrass nucleus.

1.0.15

Correzioni di bug e miglioramenti
  • Risolve un problema di avvio per gli utenti che non dispongono di una home directory sul dispositivo. Il componente di tunneling sicuro ora viene avviato senza creare una directory per i documenti shadow.

1.0.14

Versione aggiornata per la versione 2.10.0 di Greengrass nucleus.

1.0.13

Correzioni di bug e miglioramenti
  • Risolve un problema per cui un processo client orfano impedisce a più di un tunnel di indirizzare il dispositivo.

1.0.12

Correzioni di bug e miglioramenti
  • Aggiunge il supporto per x86_64 (AMD64) e ARMv8 (Aarch64) durante l'esecuzione sul sistema operativo Raspberry Pi.

1.0.11

Versione aggiornata per la versione 2.9.0 di Greengrass nucleus.

1.0.10

Versione aggiornata per la versione 2.8.0 di Greengrass nucleus.

1.0.9

Versione aggiornata per la versione 2.7.0 di Greengrass nucleus.

1.0.8

Versione aggiornata per la versione 2.6.0 di Greengrass nucleus.

1.0.7

Correzioni di bug e miglioramenti
  • Risolve un problema a causa del quale il componente si disconnette quando si trasferiscono file di grandi dimensioni su SCP.

1.0.6

Questa versione contiene correzioni di bug.

1.0.5

Versione aggiornata per la versione 2.5.0 di Greengrass nucleus.

1.0.4

Versione aggiornata per la versione 2.4.0 di Greengrass nucleus.

1.0.3

Versione aggiornata per la versione 2.3.0 di Greengrass nucleus.

1.0.2

Versione aggiornata per la versione 2.2.0 di Greengrass nucleus.

1.0.1

Versione aggiornata per la versione 2.1.0 di Greengrass nucleus.

1.0.0

Versione iniziale.