Autenticazione del dispositivo client - 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à.

Autenticazione del dispositivo client

Il componente di autenticazione del dispositivo client (aws.greengrass.clientdevices.Auth) autentica i dispositivi client e autorizza le azioni dei dispositivi client.

Nota

I dispositivi client sono dispositivi IoT locali che si connettono a un dispositivo core Greengrass per inviare messaggi MQTT e dati da elaborare. Per ulteriori informazioni, consulta Interagisci con dispositivi IoT locali.

Versioni

Nota

La versione 2.3.0 di autenticazione dei dispositivi client è stata interrotta. Si consiglia vivamente di eseguire l'aggiornamento alla versione 2.3.1 o successiva di autenticazione del dispositivo client.

Questo componente ha le seguenti versioni:

  • 2.4.x

  • 2.3.x

  • 2.2.x

  • 2.1.x

  • 2,0x

Type

Questo componente è un componente del plugin ()aws.greengrass.plugin. Il nucleo Greengrass esegue questo componente nella stessa Java Virtual Machine (JVM) del nucleo. Il nucleo si riavvia quando si modifica la versione di questo componente sul dispositivo principale.

Questo componente utilizza lo stesso file di registro del nucleo Greengrass. Per ulteriori informazioni, consulta Monitora AWS IoT Greengrass i registri.

Per ulteriori informazioni, consultare Tipi di componenti.

Sistema operativo

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

  • Linux

  • Windows

Requisiti

Questo componente presenta i seguenti requisiti:

  • Il ruolo del servizio Greengrass deve essere associato all'utente Account AWS e consentire l'iot:DescribeCertificateautorizzazione.

  • La AWS IoT politica del dispositivo principale deve consentire le seguenti autorizzazioni:

    • greengrass:GetConnectivityInfo, dove le risorse includono l'ARN del dispositivo principale che esegue questo componente

    • greengrass:VerifyClientDeviceIoTCertificateAssociation, dove le risorse includono l'Amazon Resource Name (ARN) di ogni dispositivo client che si connette al dispositivo principale

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:PutCertificateAuthorities

    • iot:Publish, dove le risorse includono l'ARN del seguente argomento MQTT:

      • $aws/things/coreDeviceThingName*-gci/shadow/get

    • iot:Subscribe, dove le risorse includono gli ARN dei seguenti filtri tematici MQTT:

      • $aws/things/coreDeviceThingName*-gci/shadow/update/delta

      • $aws/things/coreDeviceThingName*-gci/shadow/get/accepted

    • iot:Receive, dove le risorse includono gli ARN dei seguenti argomenti MQTT:

      • $aws/things/coreDeviceThingName*-gci/shadow/update/delta

      • $aws/things/coreDeviceThingName*-gci/shadow/get/accepted

    Per ulteriori informazioni, consulta Policy AWS IoT per operazioni del piano dei dati e AWS IoTPolitica minima per supportare i dispositivi client.

  • (Facoltativo) Per utilizzare l'autenticazione offline, il ruolo AWS Identity and Access Management (IAM) utilizzato dal AWS IoT Greengrass servizio deve contenere le seguenti autorizzazioni:

    • greengrass:ListClientDevicesAssociatedWithCoreDeviceper consentire al dispositivo principale di elencare i client per l'autenticazione offline.

  • Il componente di autenticazione del dispositivo client è supportato per l'esecuzione in un VPC. Per distribuire questo componente in un VPC, è necessario quanto segue.

    • Il componente di autenticazione del dispositivo client deve avere connettività a AWS IoT data, AWS IoT Credentials e Amazon S3.

Endpoint e porte

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

Endpoint Porta Richiesto Descrizione

iot.region.amazonaws.com

443

Utilizzato per ottenere informazioni sui AWS IoT certificati Thing.

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.

2.4.4

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.6.0 <2.13.0 Flessibili
2.4.3

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.6.0 <2.12.0 Flessibili
2.4.1 and 2.4.2

La tabella seguente elenca le dipendenze per le versioni 2.4.1 e 2.4.2 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.6.0 <2.11.0 Flessibili
2.3.0 – 2.4.0

La tabella seguente elenca le dipendenze per le versioni da 2.3.0 a 2.4.0 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.6.0 <2.10.0 Flessibili
2.3.0

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.6.0 <2.10.0 Flessibili
2.2.3

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.6.0 <=2.9.0 Flessibili
2.2.2

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.6.0 <=2.8.0 Flessibili
2.2.1

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.6.0 <2.8.0 Flessibili
2.2.0

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

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

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

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.2.0 <2.7.0 Flessibili
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.2.0 <2.6.0 Flessibili
2.0.2 and 2.0.3

La tabella seguente elenca le dipendenze per le versioni 2.0.2 e 2.0.3 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.2.0 <2.5.0 Flessibili
2.0.1

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

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

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

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

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.

Nota

L'autorizzazione di sottoscrizione viene valutata durante una richiesta di sottoscrizione del client al broker MQTT locale. Se l'autorizzazione di iscrizione esistente del cliente viene revocata, il cliente non sarà più in grado di iscriversi a un argomento. Tuttavia, continuerà a ricevere messaggi da qualsiasi argomento sottoscritto in precedenza. Per evitare questo comportamento, è necessario riavviare il broker MQTT locale dopo aver revocato l'autorizzazione di sottoscrizione per forzare la riautorizzazione dei client.

Per il componente broker MQTT 5 (EMQX), aggiornate la configurazione per riavviare il broker MQTT 5. restartIdentifier Per ulteriori informazioni, consultate la configurazione del componente del broker MQTT 5.

Per impostazione predefinita, il componente broker MQTT 3.1.1 (Moquette) si riavvia settimanalmente quando il certificato del server cambia e i client devono effettuare una nuova autorizzazione. È possibile forzare il riavvio modificando le informazioni di connettività (indirizzi IP) del dispositivo principale o effettuando una distribuzione per rimuovere il componente broker e quindi ridistribuirlo in un secondo momento.

v2.4.5
deviceGroups

I gruppi di dispositivi sono gruppi di dispositivi client che dispongono delle autorizzazioni per connettersi e comunicare con un dispositivo principale. Utilizza le regole di selezione per identificare gruppi di dispositivi client e definisci politiche di autorizzazione dei dispositivi client che specificano le autorizzazioni per ciascun gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

formatVersion

La versione del formato per questo oggetto di configurazione.

Seleziona una delle opzioni seguenti:

  • 2021-03-05

definitions

I gruppi di dispositivi per questo dispositivo principale. Ogni definizione specifica una regola di selezione per valutare se un dispositivo client è membro del gruppo. Ogni definizione specifica anche la politica di autorizzazione da applicare ai dispositivi client che corrispondono alla regola di selezione. Se un dispositivo client è membro di più gruppi di dispositivi, le autorizzazioni del dispositivo comprendono le politiche di autorizzazione di ciascun gruppo.

Questo oggetto contiene le seguenti informazioni:

groupNameKey

Il nome di questo gruppo di dispositivi. Sostituiscilo groupNameKeycon un nome che ti aiuti a identificare questo gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

selectionRule

La query che specifica quali dispositivi client sono membri di questo gruppo di dispositivi. Quando un dispositivo client si connette, il dispositivo principale valuta questa regola di selezione per determinare se il dispositivo client è membro di questo gruppo di dispositivi. Se il dispositivo client è un membro, il dispositivo principale utilizza la politica di questo gruppo di dispositivi per autorizzare le azioni del dispositivo client.

Ogni regola di selezione comprende almeno una clausola di regola di selezione, che è una singola query di espressione che può corrispondere ai dispositivi client. Le regole di selezione utilizzano la stessa sintassi di interrogazione dell'indicizzazione AWS IoT della flotta. Per ulteriori informazioni sulla sintassi delle regole di selezione, consulta la sintassi delle query di indicizzazione AWS IoT della flotta nella Guida per gli sviluppatori.AWS IoT Core

Usa il carattere * jolly per abbinare più dispositivi client con una sola clausola di regola di selezione. È possibile utilizzare questo carattere jolly all'inizio e alla fine del nome dell'oggetto per abbinare i dispositivi client i cui nomi iniziano o finiscono con la stringa specificata. Puoi anche usare questo jolly per abbinare tutti i dispositivi client.

Nota

Per selezionare un valore che contiene i due punti (:), evita i due punti con una barra rovesciata (). \ In formati come JSON, è necessario evitare i caratteri della barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una thingName: MyTeam\\:ClientDevice1 cosa il cui nome è. MyTeam:ClientDevice1

È possibile specificare il seguente selettore:

  • thingName— Il nome dell' AWS IoT oggetto di un dispositivo client.

Esempio di regola di selezione

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi sono MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Esempio di regola di selezione (usa caratteri jolly)

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi iniziano conMyClientDevice.

thingName: MyClientDevice*
Esempio di regola di selezione (usa caratteri jolly)

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi terminano conMyClientDevice.

thingName: *MyClientDevice
Esempio di regola di selezione (corrisponde a tutti i dispositivi)

La seguente regola di selezione corrisponde a tutti i dispositivi client.

thingName: *
policyName

La politica di autorizzazione che si applica ai dispositivi client di questo gruppo di dispositivi. Specificate il nome di una politica definita nell'policiesoggetto.

policies

Le politiche di autorizzazione dei dispositivi client per i dispositivi client che si connettono al dispositivo principale. Ogni politica di autorizzazione specifica una serie di azioni e le risorse in cui un dispositivo client può eseguire tali azioni.

Questo oggetto contiene le seguenti informazioni:

policyNameKey

Il nome di questa politica di autorizzazione. Sostituiscilo policyNameKeycon un nome che ti aiuti a identificare questa politica di autorizzazione. Questo nome di policy viene utilizzato per definire quale criterio si applica a un gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

statementNameKey

Il nome di questa dichiarazione politica. Sostituire statementNameKeycon un nome che consenta di identificare questa dichiarazione politica.

Questo oggetto contiene le seguenti informazioni:

operations

L'elenco delle operazioni per consentire l'utilizzo delle risorse in questa politica.

È possibile includere una delle seguenti operazioni:

  • mqtt:connect— Concede l'autorizzazione alla connessione al dispositivo principale. I dispositivi client devono disporre di questa autorizzazione per connettersi a un dispositivo principale.

    Questa operazione supporta le seguenti risorse:

    • mqtt:clientId:deviceClientId— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al broker MQTT del dispositivo principale. Sostituisci deviceClientIdcon l'ID client da utilizzare.

  • mqtt:publish— Concede l'autorizzazione a pubblicare messaggi MQTT sugli argomenti.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topic:mqttTopic— Limita l'accesso in base all'argomento MQTT in cui un dispositivo client pubblica un messaggio. Sostituisci MQTTTopic con l'argomento da utilizzare.

      Questa risorsa non supporta i caratteri jolly degli argomenti MQTT.

  • mqtt:subscribe— Concede l'autorizzazione a sottoscrivere i filtri degli argomenti MQTT per ricevere messaggi.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topicfilter:mqttTopicFilter— Limita l'accesso in base agli argomenti MQTT in cui un dispositivo client può iscriversi ai messaggi. mqttTopicFilterSostituiscilo con il filtro per argomenti da utilizzare.

      Questa risorsa supporta i caratteri jolly + degli argomenti # MQTT. Per ulteriori informazioni, consultate gli argomenti relativi a MQTT nella Developer Guide AWS IoT Core .

      Il dispositivo client può sottoscrivere gli stessi filtri tematici consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la mqtt:topicfilter:client/+/status risorsa, il dispositivo client può abbonarsi client/+/status ma non farloclient/client1/status.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le azioni.

resources

L'elenco delle risorse per consentire le operazioni previste da questa politica. Specificare le risorse che corrispondono alle operazioni di questa politica. Ad esempio, è possibile specificare un elenco di risorse tematiche MQTT (mqtt:topic:mqttTopic) in una politica che specifica l'mqtt:publishoperazione.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le risorse. Non è possibile utilizzare il carattere * jolly per abbinare identificatori di risorse parziali. Ad esempio, puoi specificare"resources": "*", ma non puoi specificare. "resources": "mqtt:clientId:*"

statementDescription

(Facoltativo) Una descrizione per questa dichiarazione politica.

certificates

(Facoltativo) Le opzioni di configurazione del certificato per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni:

serverCertificateValiditySeconds

(Facoltativo) La quantità di tempo (in secondi) dopo la quale scade il certificato del server MQTT locale. È possibile configurare questa opzione per personalizzare la frequenza con cui i dispositivi client si disconnettono e si riconnettono al dispositivo principale.

Questo componente ruota il certificato del server MQTT locale 24 ore prima della scadenza. Il broker MQTT, ad esempio il componente broker MQTT Moquette, genera un nuovo certificato e si riavvia. Quando ciò accade, tutti i dispositivi client collegati a questo dispositivo principale vengono disconnessi. I dispositivi client possono riconnettersi al dispositivo principale dopo un breve periodo di tempo.

Impostazione predefinita: 604800 (7 giorni)

Valore minimo: 172800 (2 giorni)

Valore massimo: 864000 (10 giorni)

performance

(Facoltativo) Le opzioni di configurazione delle prestazioni per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni:

maxActiveAuthTokens

(Facoltativo) Il numero massimo di token di autorizzazione attivi per i dispositivi client. È possibile aumentare questo numero per consentire a un numero maggiore di dispositivi client di connettersi a un dispositivo single-core, senza riautenticarli.

Impostazione predefinita: 2500

cloudRequestQueueSize

(Facoltativo) Il numero massimo di Cloud AWS richieste da mettere in coda prima che questo componente rifiuti le richieste.

Impostazione predefinita: 100

maxConcurrentCloudRequests

(Facoltativo) Il numero massimo di richieste simultanee da inviare a. Cloud AWSÈ possibile aumentare questo numero per migliorare le prestazioni di autenticazione sui dispositivi principali in cui si connettono un gran numero di dispositivi client.

Impostazione predefinita: 1

certificateAuthority

(Facoltativo) Opzioni di configurazione dell'autorità di certificazione per sostituire l'autorità intermedia del dispositivo principale con la propria autorità di certificazione intermedia.

Nota

Se configuri il tuo dispositivo principale Greengrass con un'autorità di certificazione (CA) personalizzata e utilizzi la stessa CA per emettere certificati per dispositivi client, Greengrass aggira i controlli delle politiche di autorizzazione per le operazioni MQTT dei dispositivi client. Il componente di autenticazione del dispositivo client si fida completamente dei client che utilizzano i certificati firmati dalla CA per cui è configurato.

Per limitare questo comportamento quando si utilizza una CA personalizzata, crea e firma i dispositivi client utilizzando una CA o una CA intermedia diversa, quindi modifica i certificateChainUri campi certificateUri e in modo che puntino alla CA intermedia corretta.

Questo oggetto contiene le seguenti informazioni.

URI del certificato

La posizione del certificato. Può essere un URI del file system o un URI che punta a un certificato archiviato in un modulo di sicurezza hardware.

certificateChainUri

La posizione della catena di certificati per la CA del dispositivo principale. Questa dovrebbe essere la catena completa di certificati fino alla CA principale. Può essere un URI del file system o un URI che punta a una catena di certificati archiviata in un modulo di sicurezza hardware.

privateKeyUri

La posizione della chiave privata del dispositivo principale. Può essere un URI del file system o un URI che punta a una chiave privata del certificato memorizzata in un modulo di sicurezza hardware.

security

(Facoltativo) Opzioni di configurazione della sicurezza per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni.

clientDeviceTrustDurationMinutes

Durata in minuti entro la quale è possibile considerare attendibili le informazioni di autenticazione di un dispositivo client prima che sia necessario riautenticarsi con il dispositivo principale. Il valore predefinito è 1.

metrics

(Facoltativo) Le opzioni di metrica per questo dispositivo principale. Le metriche degli errori verranno visualizzate solo se si verifica un errore nell'autenticazione del dispositivo client. Questo oggetto contiene le seguenti informazioni:

disableMetrics

Se il disableMetrics campo è impostato sutrue, l'autenticazione del dispositivo client non raccoglierà le metriche.

Impostazione predefinita: false

aggregatePeriodSeconds

Il periodo di aggregazione in secondi che determina la frequenza con cui l'autenticazione del dispositivo client aggrega le metriche e le invia all'agente di telemetria. Ciò non modifica la frequenza con cui le metriche vengono pubblicate, poiché l'agente di telemetria le pubblica ancora una volta al giorno.

Impostazione predefinita: 3600

startupTimeoutSeconds

(Facoltativo) Il tempo massimo in secondi di avvio del componente. Lo stato del componente cambia BROKEN se supera questo timeout.

Impostazione predefinita: 120

Esempio: aggiornamento dell'unione della configurazione (utilizzando una politica restrittiva)

La configurazione di esempio seguente specifica di consentire ai dispositivi client i cui nomi iniziano con di connettersi e MyClientDevice pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Esempio: configurazione merge update (utilizzando una politica permissiva)

La configurazione di esempio seguente specifica di consentire a tutti i dispositivi client di connettersi e pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.4.2 - v2.4.4
deviceGroups

I gruppi di dispositivi sono gruppi di dispositivi client che dispongono delle autorizzazioni per connettersi e comunicare con un dispositivo principale. Utilizza le regole di selezione per identificare gruppi di dispositivi client e definisci politiche di autorizzazione dei dispositivi client che specificano le autorizzazioni per ciascun gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

formatVersion

La versione del formato per questo oggetto di configurazione.

Seleziona una delle opzioni seguenti:

  • 2021-03-05

definitions

I gruppi di dispositivi per questo dispositivo principale. Ogni definizione specifica una regola di selezione per valutare se un dispositivo client è membro del gruppo. Ogni definizione specifica anche la politica di autorizzazione da applicare ai dispositivi client che corrispondono alla regola di selezione. Se un dispositivo client è membro di più gruppi di dispositivi, le autorizzazioni del dispositivo comprendono le politiche di autorizzazione di ciascun gruppo.

Questo oggetto contiene le seguenti informazioni:

groupNameKey

Il nome di questo gruppo di dispositivi. Sostituiscilo groupNameKeycon un nome che ti aiuti a identificare questo gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

selectionRule

La query che specifica quali dispositivi client sono membri di questo gruppo di dispositivi. Quando un dispositivo client si connette, il dispositivo principale valuta questa regola di selezione per determinare se il dispositivo client è membro di questo gruppo di dispositivi. Se il dispositivo client è un membro, il dispositivo principale utilizza la politica di questo gruppo di dispositivi per autorizzare le azioni del dispositivo client.

Ogni regola di selezione comprende almeno una clausola di regola di selezione, che è una singola query di espressione che può corrispondere ai dispositivi client. Le regole di selezione utilizzano la stessa sintassi di interrogazione dell'indicizzazione AWS IoT della flotta. Per ulteriori informazioni sulla sintassi delle regole di selezione, consulta la sintassi delle query di indicizzazione AWS IoT della flotta nella Guida per gli sviluppatori.AWS IoT Core

Usa il carattere * jolly per abbinare più dispositivi client con una sola clausola di regola di selezione. È possibile utilizzare questo carattere jolly alla fine del nome dell'oggetto per abbinare i dispositivi client i cui nomi iniziano con una stringa specificata dall'utente. Puoi anche usare questo jolly per abbinare tutti i dispositivi client.

Nota

Per selezionare un valore che contiene i due punti (:), evita i due punti con una barra rovesciata (). \\ In formati come JSON, è necessario evitare i caratteri della barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una thingName: MyTeam\\\\:ClientDevice1 cosa il cui nome è. MyTeam:ClientDevice1

È possibile specificare il seguente selettore:

  • thingName— Il nome dell' AWS IoT oggetto di un dispositivo client.

Esempio di regola di selezione

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi sono MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Esempio di regola di selezione (usa caratteri jolly)

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi iniziano conMyClientDevice.

thingName: MyClientDevice*
Esempio di regola di selezione (corrisponde a tutti i dispositivi)

La seguente regola di selezione corrisponde a tutti i dispositivi client.

thingName: *
policyName

La politica di autorizzazione che si applica ai dispositivi client di questo gruppo di dispositivi. Specificate il nome di una politica definita nell'policiesoggetto.

policies

Le politiche di autorizzazione dei dispositivi client per i dispositivi client che si connettono al dispositivo principale. Ogni politica di autorizzazione specifica una serie di azioni e le risorse in cui un dispositivo client può eseguire tali azioni.

Questo oggetto contiene le seguenti informazioni:

policyNameKey

Il nome di questa politica di autorizzazione. Sostituiscilo policyNameKeycon un nome che ti aiuti a identificare questa politica di autorizzazione. Questo nome di policy viene utilizzato per definire quale criterio si applica a un gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

statementNameKey

Il nome di questa dichiarazione politica. Sostituire statementNameKeycon un nome che consenta di identificare questa dichiarazione politica.

Questo oggetto contiene le seguenti informazioni:

operations

L'elenco delle operazioni per consentire l'utilizzo delle risorse in questa politica.

È possibile includere una delle seguenti operazioni:

  • mqtt:connect— Concede l'autorizzazione alla connessione al dispositivo principale. I dispositivi client devono disporre di questa autorizzazione per connettersi a un dispositivo principale.

    Questa operazione supporta le seguenti risorse:

    • mqtt:clientId:deviceClientId— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al broker MQTT del dispositivo principale. Sostituisci deviceClientIdcon l'ID client da utilizzare.

  • mqtt:publish— Concede l'autorizzazione a pubblicare messaggi MQTT sugli argomenti.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topic:mqttTopic— Limita l'accesso in base all'argomento MQTT in cui un dispositivo client pubblica un messaggio. Sostituisci MQTTTopic con l'argomento da utilizzare.

      Questa risorsa non supporta i caratteri jolly degli argomenti MQTT.

  • mqtt:subscribe— Concede l'autorizzazione a sottoscrivere i filtri degli argomenti MQTT per ricevere messaggi.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topicfilter:mqttTopicFilter— Limita l'accesso in base agli argomenti MQTT in cui un dispositivo client può iscriversi ai messaggi. mqttTopicFilterSostituiscilo con il filtro per argomenti da utilizzare.

      Questa risorsa supporta i caratteri jolly + degli argomenti # MQTT. Per ulteriori informazioni, consultate gli argomenti relativi a MQTT nella Developer Guide AWS IoT Core .

      Il dispositivo client può sottoscrivere gli stessi filtri tematici consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la mqtt:topicfilter:client/+/status risorsa, il dispositivo client può abbonarsi client/+/status ma non farloclient/client1/status.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le azioni.

resources

L'elenco delle risorse per consentire le operazioni previste da questa politica. Specificare le risorse che corrispondono alle operazioni di questa politica. Ad esempio, è possibile specificare un elenco di risorse tematiche MQTT (mqtt:topic:mqttTopic) in una politica che specifica l'mqtt:publishoperazione.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le risorse. Non è possibile utilizzare il carattere * jolly per abbinare identificatori di risorse parziali. Ad esempio, puoi specificare"resources": "*", ma non puoi specificare. "resources": "mqtt:clientId:*"

statementDescription

(Facoltativo) Una descrizione per questa dichiarazione politica.

certificates

(Facoltativo) Le opzioni di configurazione del certificato per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni:

serverCertificateValiditySeconds

(Facoltativo) La quantità di tempo (in secondi) dopo la quale scade il certificato del server MQTT locale. È possibile configurare questa opzione per personalizzare la frequenza con cui i dispositivi client si disconnettono e si riconnettono al dispositivo principale.

Questo componente ruota il certificato del server MQTT locale 24 ore prima della scadenza. Il broker MQTT, ad esempio il componente broker MQTT Moquette, genera un nuovo certificato e si riavvia. Quando ciò accade, tutti i dispositivi client collegati a questo dispositivo principale vengono disconnessi. I dispositivi client possono riconnettersi al dispositivo principale dopo un breve periodo di tempo.

Impostazione predefinita: 604800 (7 giorni)

Valore minimo: 172800 (2 giorni)

Valore massimo: 864000 (10 giorni)

performance

(Facoltativo) Le opzioni di configurazione delle prestazioni per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni:

maxActiveAuthTokens

(Facoltativo) Il numero massimo di token di autorizzazione attivi per i dispositivi client. È possibile aumentare questo numero per consentire a un numero maggiore di dispositivi client di connettersi a un dispositivo single-core, senza riautenticarli.

Impostazione predefinita: 2500

cloudRequestQueueSize

(Facoltativo) Il numero massimo di Cloud AWS richieste da mettere in coda prima che questo componente rifiuti le richieste.

Impostazione predefinita: 100

maxConcurrentCloudRequests

(Facoltativo) Il numero massimo di richieste simultanee da inviare a. Cloud AWSÈ possibile aumentare questo numero per migliorare le prestazioni di autenticazione sui dispositivi principali in cui si connettono un gran numero di dispositivi client.

Impostazione predefinita: 1

certificateAuthority

(Facoltativo) Opzioni di configurazione dell'autorità di certificazione per sostituire l'autorità intermedia del dispositivo principale con la propria autorità di certificazione intermedia.

Nota

Se configuri il tuo dispositivo principale Greengrass con un'autorità di certificazione (CA) personalizzata e utilizzi la stessa CA per emettere certificati per dispositivi client, Greengrass aggira i controlli delle politiche di autorizzazione per le operazioni MQTT dei dispositivi client. Il componente di autenticazione del dispositivo client si fida completamente dei client che utilizzano i certificati firmati dalla CA per cui è configurato.

Per limitare questo comportamento quando si utilizza una CA personalizzata, crea e firma i dispositivi client utilizzando una CA o una CA intermedia diversa, quindi modifica i certificateChainUri campi certificateUri e in modo che puntino alla CA intermedia corretta.

Questo oggetto contiene le seguenti informazioni.

URI del certificato

La posizione del certificato. Può essere un URI del file system o un URI che punta a un certificato archiviato in un modulo di sicurezza hardware.

certificateChainUri

La posizione della catena di certificati per la CA del dispositivo principale. Questa dovrebbe essere la catena completa di certificati fino alla CA principale. Può essere un URI del file system o un URI che punta a una catena di certificati archiviata in un modulo di sicurezza hardware.

privateKeyUri

La posizione della chiave privata del dispositivo principale. Può essere un URI del file system o un URI che punta a una chiave privata del certificato memorizzata in un modulo di sicurezza hardware.

security

(Facoltativo) Opzioni di configurazione della sicurezza per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni.

clientDeviceTrustDurationMinutes

Durata in minuti entro la quale è possibile considerare attendibili le informazioni di autenticazione di un dispositivo client prima che sia necessario riautenticarsi con il dispositivo principale. Il valore predefinito è 1.

metrics

(Facoltativo) Le opzioni di metrica per questo dispositivo principale. Le metriche degli errori verranno visualizzate solo se si verifica un errore nell'autenticazione del dispositivo client. Questo oggetto contiene le seguenti informazioni:

disableMetrics

Se il disableMetrics campo è impostato sutrue, l'autenticazione del dispositivo client non raccoglierà le metriche.

Impostazione predefinita: false

aggregatePeriodSeconds

Il periodo di aggregazione in secondi che determina la frequenza con cui l'autenticazione del dispositivo client aggrega le metriche e le invia all'agente di telemetria. Ciò non modifica la frequenza con cui le metriche vengono pubblicate, poiché l'agente di telemetria le pubblica ancora una volta al giorno.

Impostazione predefinita: 3600

startupTimeoutSeconds

(Facoltativo) Il tempo massimo in secondi di avvio del componente. Lo stato del componente cambia BROKEN se supera questo timeout.

Impostazione predefinita: 120

Esempio: aggiornamento dell'unione della configurazione (utilizzando una politica restrittiva)

La configurazione di esempio seguente specifica di consentire ai dispositivi client i cui nomi iniziano con di connettersi e MyClientDevice pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Esempio: configurazione merge update (utilizzando una politica permissiva)

La configurazione di esempio seguente specifica di consentire a tutti i dispositivi client di connettersi e pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.4.0 - v2.4.1
deviceGroups

I gruppi di dispositivi sono gruppi di dispositivi client che dispongono delle autorizzazioni per connettersi e comunicare con un dispositivo principale. Utilizza le regole di selezione per identificare gruppi di dispositivi client e definisci politiche di autorizzazione dei dispositivi client che specificano le autorizzazioni per ciascun gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

formatVersion

La versione del formato per questo oggetto di configurazione.

Seleziona una delle opzioni seguenti:

  • 2021-03-05

definitions

I gruppi di dispositivi per questo dispositivo principale. Ogni definizione specifica una regola di selezione per valutare se un dispositivo client è membro del gruppo. Ogni definizione specifica anche la politica di autorizzazione da applicare ai dispositivi client che corrispondono alla regola di selezione. Se un dispositivo client è membro di più gruppi di dispositivi, le autorizzazioni del dispositivo comprendono le politiche di autorizzazione di ciascun gruppo.

Questo oggetto contiene le seguenti informazioni:

groupNameKey

Il nome di questo gruppo di dispositivi. Sostituiscilo groupNameKeycon un nome che ti aiuti a identificare questo gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

selectionRule

La query che specifica quali dispositivi client sono membri di questo gruppo di dispositivi. Quando un dispositivo client si connette, il dispositivo principale valuta questa regola di selezione per determinare se il dispositivo client è membro di questo gruppo di dispositivi. Se il dispositivo client è un membro, il dispositivo principale utilizza la politica di questo gruppo di dispositivi per autorizzare le azioni del dispositivo client.

Ogni regola di selezione comprende almeno una clausola di regola di selezione, che è una singola query di espressione che può corrispondere ai dispositivi client. Le regole di selezione utilizzano la stessa sintassi di interrogazione dell'indicizzazione AWS IoT della flotta. Per ulteriori informazioni sulla sintassi delle regole di selezione, consulta la sintassi delle query di indicizzazione AWS IoT della flotta nella Guida per gli sviluppatori.AWS IoT Core

Usa il carattere * jolly per abbinare più dispositivi client con una sola clausola di regola di selezione. È possibile utilizzare questo carattere jolly alla fine del nome dell'oggetto per abbinare i dispositivi client i cui nomi iniziano con una stringa specificata dall'utente. Puoi anche usare questo jolly per abbinare tutti i dispositivi client.

Nota

Per selezionare un valore che contiene i due punti (:), evita i due punti con una barra rovesciata (). \\ In formati come JSON, è necessario evitare i caratteri della barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una thingName: MyTeam\\\\:ClientDevice1 cosa il cui nome è. MyTeam:ClientDevice1

È possibile specificare il seguente selettore:

  • thingName— Il nome dell' AWS IoT oggetto di un dispositivo client.

Esempio di regola di selezione

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi sono MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Esempio di regola di selezione (usa caratteri jolly)

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi iniziano conMyClientDevice.

thingName: MyClientDevice*
Esempio di regola di selezione (corrisponde a tutti i dispositivi)

La seguente regola di selezione corrisponde a tutti i dispositivi client.

thingName: *
policyName

La politica di autorizzazione che si applica ai dispositivi client di questo gruppo di dispositivi. Specificate il nome di una politica definita nell'policiesoggetto.

policies

Le politiche di autorizzazione dei dispositivi client per i dispositivi client che si connettono al dispositivo principale. Ogni politica di autorizzazione specifica una serie di azioni e le risorse in cui un dispositivo client può eseguire tali azioni.

Questo oggetto contiene le seguenti informazioni:

policyNameKey

Il nome di questa politica di autorizzazione. Sostituiscilo policyNameKeycon un nome che ti aiuti a identificare questa politica di autorizzazione. Questo nome di policy viene utilizzato per definire quale criterio si applica a un gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

statementNameKey

Il nome di questa dichiarazione politica. Sostituire statementNameKeycon un nome che consenta di identificare questa dichiarazione politica.

Questo oggetto contiene le seguenti informazioni:

operations

L'elenco delle operazioni per consentire l'utilizzo delle risorse in questa politica.

È possibile includere una delle seguenti operazioni:

  • mqtt:connect— Concede l'autorizzazione alla connessione al dispositivo principale. I dispositivi client devono disporre di questa autorizzazione per connettersi a un dispositivo principale.

    Questa operazione supporta le seguenti risorse:

    • mqtt:clientId:deviceClientId— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al broker MQTT del dispositivo principale. Sostituisci deviceClientIdcon l'ID client da utilizzare.

  • mqtt:publish— Concede l'autorizzazione a pubblicare messaggi MQTT sugli argomenti.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topic:mqttTopic— Limita l'accesso in base all'argomento MQTT in cui un dispositivo client pubblica un messaggio. Sostituisci MQTTTopic con l'argomento da utilizzare.

      Questa risorsa non supporta i caratteri jolly degli argomenti MQTT.

  • mqtt:subscribe— Concede l'autorizzazione a sottoscrivere i filtri degli argomenti MQTT per ricevere messaggi.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topicfilter:mqttTopicFilter— Limita l'accesso in base agli argomenti MQTT in cui un dispositivo client può iscriversi ai messaggi. mqttTopicFilterSostituiscilo con il filtro per argomenti da utilizzare.

      Questa risorsa supporta i caratteri jolly + degli argomenti # MQTT. Per ulteriori informazioni, consultate gli argomenti relativi a MQTT nella Developer Guide AWS IoT Core .

      Il dispositivo client può sottoscrivere gli stessi filtri tematici consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la mqtt:topicfilter:client/+/status risorsa, il dispositivo client può abbonarsi client/+/status ma non farloclient/client1/status.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le azioni.

resources

L'elenco delle risorse per consentire le operazioni previste da questa politica. Specificare le risorse che corrispondono alle operazioni di questa politica. Ad esempio, è possibile specificare un elenco di risorse tematiche MQTT (mqtt:topic:mqttTopic) in una politica che specifica l'mqtt:publishoperazione.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le risorse. Non è possibile utilizzare il carattere * jolly per abbinare identificatori di risorse parziali. Ad esempio, puoi specificare"resources": "*", ma non puoi specificare. "resources": "mqtt:clientId:*"

statementDescription

(Facoltativo) Una descrizione per questa dichiarazione politica.

certificates

(Facoltativo) Le opzioni di configurazione del certificato per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni:

serverCertificateValiditySeconds

(Facoltativo) La quantità di tempo (in secondi) dopo la quale scade il certificato del server MQTT locale. È possibile configurare questa opzione per personalizzare la frequenza con cui i dispositivi client si disconnettono e si riconnettono al dispositivo principale.

Questo componente ruota il certificato del server MQTT locale 24 ore prima della scadenza. Il broker MQTT, ad esempio il componente broker MQTT Moquette, genera un nuovo certificato e si riavvia. Quando ciò accade, tutti i dispositivi client collegati a questo dispositivo principale vengono disconnessi. I dispositivi client possono riconnettersi al dispositivo principale dopo un breve periodo di tempo.

Impostazione predefinita: 604800 (7 giorni)

Valore minimo: 172800 (2 giorni)

Valore massimo: 864000 (10 giorni)

performance

(Facoltativo) Le opzioni di configurazione delle prestazioni per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni:

maxActiveAuthTokens

(Facoltativo) Il numero massimo di token di autorizzazione attivi per i dispositivi client. È possibile aumentare questo numero per consentire a un numero maggiore di dispositivi client di connettersi a un dispositivo single-core, senza riautenticarli.

Impostazione predefinita: 2500

cloudRequestQueueSize

(Facoltativo) Il numero massimo di Cloud AWS richieste da mettere in coda prima che questo componente rifiuti le richieste.

Impostazione predefinita: 100

maxConcurrentCloudRequests

(Facoltativo) Il numero massimo di richieste simultanee da inviare a. Cloud AWSÈ possibile aumentare questo numero per migliorare le prestazioni di autenticazione sui dispositivi principali in cui si connettono un gran numero di dispositivi client.

Impostazione predefinita: 1

certificateAuthority

(Facoltativo) Opzioni di configurazione dell'autorità di certificazione per sostituire l'autorità intermedia del dispositivo principale con la propria autorità di certificazione intermedia. Questo oggetto contiene le seguenti informazioni.

Questo oggetto contiene le seguenti informazioni:

URI del certificato

La posizione del certificato. Può essere un URI del file system o un URI che punta a un certificato archiviato in un modulo di sicurezza hardware.

certificateChainUri

La posizione della catena di certificati per la CA del dispositivo principale. Questa dovrebbe essere la catena completa di certificati fino alla CA principale. Può essere un URI del file system o un URI che punta a una catena di certificati archiviata in un modulo di sicurezza hardware.

privateKeyUri

La posizione della chiave privata del dispositivo principale. Può essere un URI del file system o un URI che punta a una chiave privata del certificato memorizzata in un modulo di sicurezza hardware.

security

(Facoltativo) Opzioni di configurazione della sicurezza per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni.

clientDeviceTrustDurationMinutes

Durata in minuti entro la quale è possibile considerare attendibili le informazioni di autenticazione di un dispositivo client prima che sia necessario riautenticarsi con il dispositivo principale. Il valore predefinito è 1.

metrics

(Facoltativo) Le opzioni di metrica per questo dispositivo principale. Le metriche degli errori verranno visualizzate solo se si verifica un errore nell'autenticazione del dispositivo client. Questo oggetto contiene le seguenti informazioni:

disableMetrics

Se il disableMetrics campo è impostato sutrue, l'autenticazione del dispositivo client non raccoglierà le metriche.

Impostazione predefinita: false

aggregatePeriodSeconds

Il periodo di aggregazione in secondi che determina la frequenza con cui l'autenticazione del dispositivo client aggrega le metriche e le invia all'agente di telemetria. Ciò non modifica la frequenza con cui le metriche vengono pubblicate, poiché l'agente di telemetria le pubblica ancora una volta al giorno.

Impostazione predefinita: 3600

Esempio: aggiornamento basato sull'unione della configurazione (utilizzando una politica restrittiva)

La configurazione di esempio seguente specifica di consentire ai dispositivi client i cui nomi iniziano con di connettersi e MyClientDevice pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Esempio: configurazione merge update (utilizzando una politica permissiva)

La configurazione di esempio seguente specifica di consentire a tutti i dispositivi client di connettersi e pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.3.x
deviceGroups

I gruppi di dispositivi sono gruppi di dispositivi client che dispongono delle autorizzazioni per connettersi e comunicare con un dispositivo principale. Utilizza le regole di selezione per identificare gruppi di dispositivi client e definisci politiche di autorizzazione dei dispositivi client che specificano le autorizzazioni per ciascun gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

formatVersion

La versione del formato per questo oggetto di configurazione.

Seleziona una delle opzioni seguenti:

  • 2021-03-05

definitions

I gruppi di dispositivi per questo dispositivo principale. Ogni definizione specifica una regola di selezione per valutare se un dispositivo client è membro del gruppo. Ogni definizione specifica anche la politica di autorizzazione da applicare ai dispositivi client che corrispondono alla regola di selezione. Se un dispositivo client è membro di più gruppi di dispositivi, le autorizzazioni del dispositivo comprendono le politiche di autorizzazione di ciascun gruppo.

Questo oggetto contiene le seguenti informazioni:

groupNameKey

Il nome di questo gruppo di dispositivi. Sostituiscilo groupNameKeycon un nome che ti aiuti a identificare questo gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

selectionRule

La query che specifica quali dispositivi client sono membri di questo gruppo di dispositivi. Quando un dispositivo client si connette, il dispositivo principale valuta questa regola di selezione per determinare se il dispositivo client è membro di questo gruppo di dispositivi. Se il dispositivo client è un membro, il dispositivo principale utilizza la politica di questo gruppo di dispositivi per autorizzare le azioni del dispositivo client.

Ogni regola di selezione comprende almeno una clausola di regola di selezione, che è una singola query di espressione che può corrispondere ai dispositivi client. Le regole di selezione utilizzano la stessa sintassi di interrogazione dell'indicizzazione AWS IoT della flotta. Per ulteriori informazioni sulla sintassi delle regole di selezione, consulta la sintassi delle query di indicizzazione AWS IoT della flotta nella Guida per gli sviluppatori.AWS IoT Core

Usa il carattere * jolly per abbinare più dispositivi client con una sola clausola di regola di selezione. È possibile utilizzare questo carattere jolly alla fine del nome dell'oggetto per abbinare i dispositivi client i cui nomi iniziano con una stringa specificata dall'utente. Puoi anche usare questo jolly per abbinare tutti i dispositivi client.

Nota

Per selezionare un valore che contiene i due punti (:), evita i due punti con una barra rovesciata (). \\ In formati come JSON, è necessario evitare i caratteri della barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una thingName: MyTeam\\\\:ClientDevice1 cosa il cui nome è. MyTeam:ClientDevice1

È possibile specificare il seguente selettore:

  • thingName— Il nome dell' AWS IoT oggetto di un dispositivo client.

Esempio di regola di selezione

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi sono MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Esempio di regola di selezione (usa caratteri jolly)

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi iniziano conMyClientDevice.

thingName: MyClientDevice*
Esempio di regola di selezione (corrisponde a tutti i dispositivi)

La seguente regola di selezione corrisponde a tutti i dispositivi client.

thingName: *
policyName

La politica di autorizzazione che si applica ai dispositivi client di questo gruppo di dispositivi. Specificate il nome di una politica definita nell'policiesoggetto.

policies

Le politiche di autorizzazione dei dispositivi client per i dispositivi client che si connettono al dispositivo principale. Ogni politica di autorizzazione specifica una serie di azioni e le risorse in cui un dispositivo client può eseguire tali azioni.

Questo oggetto contiene le seguenti informazioni:

policyNameKey

Il nome di questa politica di autorizzazione. Sostituiscilo policyNameKeycon un nome che ti aiuti a identificare questa politica di autorizzazione. Questo nome di policy viene utilizzato per definire quale criterio si applica a un gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

statementNameKey

Il nome di questa dichiarazione politica. Sostituire statementNameKeycon un nome che consenta di identificare questa dichiarazione politica.

Questo oggetto contiene le seguenti informazioni:

operations

L'elenco delle operazioni per consentire l'utilizzo delle risorse in questa politica.

È possibile includere una delle seguenti operazioni:

  • mqtt:connect— Concede l'autorizzazione alla connessione al dispositivo principale. I dispositivi client devono disporre di questa autorizzazione per connettersi a un dispositivo principale.

    Questa operazione supporta le seguenti risorse:

    • mqtt:clientId:deviceClientId— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al broker MQTT del dispositivo principale. Sostituisci deviceClientIdcon l'ID client da utilizzare.

  • mqtt:publish— Concede l'autorizzazione a pubblicare messaggi MQTT sugli argomenti.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topic:mqttTopic— Limita l'accesso in base all'argomento MQTT in cui un dispositivo client pubblica un messaggio. Sostituisci MQTTTopic con l'argomento da utilizzare.

      Questa risorsa non supporta i caratteri jolly degli argomenti MQTT.

  • mqtt:subscribe— Concede l'autorizzazione a sottoscrivere i filtri degli argomenti MQTT per ricevere messaggi.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topicfilter:mqttTopicFilter— Limita l'accesso in base agli argomenti MQTT in cui un dispositivo client può iscriversi ai messaggi. mqttTopicFilterSostituiscilo con il filtro per argomenti da utilizzare.

      Questa risorsa supporta i caratteri jolly + degli argomenti # MQTT. Per ulteriori informazioni, consultate gli argomenti relativi a MQTT nella Developer Guide AWS IoT Core .

      Il dispositivo client può sottoscrivere gli stessi filtri tematici consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la mqtt:topicfilter:client/+/status risorsa, il dispositivo client può abbonarsi client/+/status ma non farloclient/client1/status.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le azioni.

resources

L'elenco delle risorse per consentire le operazioni previste da questa politica. Specificare le risorse che corrispondono alle operazioni di questa politica. Ad esempio, è possibile specificare un elenco di risorse tematiche MQTT (mqtt:topic:mqttTopic) in una politica che specifica l'mqtt:publishoperazione.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le risorse. Non è possibile utilizzare il carattere * jolly per abbinare identificatori di risorse parziali. Ad esempio, puoi specificare"resources": "*", ma non puoi specificare. "resources": "mqtt:clientId:*"

statementDescription

(Facoltativo) Una descrizione per questa dichiarazione politica.

certificates

(Facoltativo) Le opzioni di configurazione del certificato per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni:

serverCertificateValiditySeconds

(Facoltativo) La quantità di tempo (in secondi) dopo la quale scade il certificato del server MQTT locale. È possibile configurare questa opzione per personalizzare la frequenza con cui i dispositivi client si disconnettono e si riconnettono al dispositivo principale.

Questo componente ruota il certificato del server MQTT locale 24 ore prima della scadenza. Il broker MQTT, ad esempio il componente broker MQTT Moquette, genera un nuovo certificato e si riavvia. Quando ciò accade, tutti i dispositivi client collegati a questo dispositivo principale vengono disconnessi. I dispositivi client possono riconnettersi al dispositivo principale dopo un breve periodo di tempo.

Impostazione predefinita: 604800 (7 giorni)

Valore minimo: 172800 (2 giorni)

Valore massimo: 864000 (10 giorni)

performance

(Facoltativo) Le opzioni di configurazione delle prestazioni per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni:

maxActiveAuthTokens

(Facoltativo) Il numero massimo di token di autorizzazione attivi per i dispositivi client. È possibile aumentare questo numero per consentire a un numero maggiore di dispositivi client di connettersi a un dispositivo single-core senza riautenticarli.

Impostazione predefinita: 2500

cloudRequestQueueSize

(Facoltativo) Il numero massimo di Cloud AWS richieste da mettere in coda prima che questo componente rifiuti le richieste.

Impostazione predefinita: 100

maxConcurrentCloudRequests

(Facoltativo) Il numero massimo di richieste simultanee da inviare a. Cloud AWSÈ possibile aumentare questo numero per migliorare le prestazioni di autenticazione sui dispositivi principali in cui si connettono un gran numero di dispositivi client.

Impostazione predefinita: 1

certificateAuthority

(Facoltativo) Opzioni di configurazione dell'autorità di certificazione per sostituire l'autorità intermedia del dispositivo principale con la propria autorità di certificazione intermedia. Questo oggetto contiene le seguenti informazioni.

URI del certificato

La posizione del certificato. Può essere un URI del file system o un URI che punta a un certificato archiviato in un modulo di sicurezza hardware.

certificateChainUri

La posizione della catena di certificati per la CA del dispositivo principale. Questa dovrebbe essere la catena completa di certificati fino alla CA principale. Può essere un URI del file system o un URI che punta a una catena di certificati archiviata in un modulo di sicurezza hardware.

privateKeyUri

La posizione della chiave privata del dispositivo principale. Può essere un URI del file system o un URI che punta a una chiave privata del certificato memorizzata in un modulo di sicurezza hardware.

security

(Facoltativo) Opzioni di configurazione della sicurezza per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni.

clientDeviceTrustDurationMinutes

Durata in minuti durante la quale è possibile considerare attendibili le informazioni di autenticazione di un dispositivo client prima che sia necessario riautenticarsi con il dispositivo principale. Il valore predefinito è 1.

Esempio: aggiornamento basato sull'unione della configurazione (utilizzando una politica restrittiva)

La configurazione di esempio seguente specifica di consentire ai dispositivi client i cui nomi iniziano con di connettersi e MyClientDevice pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Esempio: configurazione merge update (utilizzando una politica permissiva)

La configurazione di esempio seguente specifica di consentire a tutti i dispositivi client di connettersi e pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.2.x
deviceGroups

I gruppi di dispositivi sono gruppi di dispositivi client che dispongono delle autorizzazioni per connettersi e comunicare con un dispositivo principale. Utilizza le regole di selezione per identificare gruppi di dispositivi client e definisci politiche di autorizzazione dei dispositivi client che specificano le autorizzazioni per ciascun gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

formatVersion

La versione del formato per questo oggetto di configurazione.

Seleziona una delle opzioni seguenti:

  • 2021-03-05

definitions

I gruppi di dispositivi per questo dispositivo principale. Ogni definizione specifica una regola di selezione per valutare se un dispositivo client è membro del gruppo. Ogni definizione specifica anche la politica di autorizzazione da applicare ai dispositivi client che corrispondono alla regola di selezione. Se un dispositivo client è membro di più gruppi di dispositivi, le autorizzazioni del dispositivo comprendono le politiche di autorizzazione di ciascun gruppo.

Questo oggetto contiene le seguenti informazioni:

groupNameKey

Il nome di questo gruppo di dispositivi. Sostituiscilo groupNameKeycon un nome che ti aiuti a identificare questo gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

selectionRule

La query che specifica quali dispositivi client sono membri di questo gruppo di dispositivi. Quando un dispositivo client si connette, il dispositivo principale valuta questa regola di selezione per determinare se il dispositivo client è membro di questo gruppo di dispositivi. Se il dispositivo client è un membro, il dispositivo principale utilizza la politica di questo gruppo di dispositivi per autorizzare le azioni del dispositivo client.

Ogni regola di selezione comprende almeno una clausola di regola di selezione, che è una singola query di espressione che può corrispondere ai dispositivi client. Le regole di selezione utilizzano la stessa sintassi di interrogazione dell'indicizzazione AWS IoT della flotta. Per ulteriori informazioni sulla sintassi delle regole di selezione, consulta la sintassi delle query di indicizzazione AWS IoT della flotta nella Guida per gli sviluppatori.AWS IoT Core

Usa il carattere * jolly per abbinare più dispositivi client con una sola clausola di regola di selezione. È possibile utilizzare questo carattere jolly alla fine del nome dell'oggetto per abbinare i dispositivi client i cui nomi iniziano con una stringa specificata dall'utente. Puoi anche usare questo jolly per abbinare tutti i dispositivi client.

Nota

Per selezionare un valore che contiene i due punti (:), evita i due punti con una barra rovesciata (). \\ In formati come JSON, è necessario evitare i caratteri della barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una thingName: MyTeam\\\\:ClientDevice1 cosa il cui nome è. MyTeam:ClientDevice1

È possibile specificare il seguente selettore:

  • thingName— Il nome dell' AWS IoT oggetto di un dispositivo client.

Esempio di regola di selezione

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi sono MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Esempio di regola di selezione (usa caratteri jolly)

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi iniziano conMyClientDevice.

thingName: MyClientDevice*
Esempio di regola di selezione (corrisponde a tutti i dispositivi)

La seguente regola di selezione corrisponde a tutti i dispositivi client.

thingName: *
policyName

La politica di autorizzazione che si applica ai dispositivi client di questo gruppo di dispositivi. Specificate il nome di una politica definita nell'policiesoggetto.

policies

Le politiche di autorizzazione dei dispositivi client per i dispositivi client che si connettono al dispositivo principale. Ogni politica di autorizzazione specifica una serie di azioni e le risorse in cui un dispositivo client può eseguire tali azioni.

Questo oggetto contiene le seguenti informazioni:

policyNameKey

Il nome di questa politica di autorizzazione. Sostituiscilo policyNameKeycon un nome che ti aiuti a identificare questa politica di autorizzazione. Questo nome di policy viene utilizzato per definire quale criterio si applica a un gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

statementNameKey

Il nome di questa dichiarazione politica. Sostituire statementNameKeycon un nome che consenta di identificare questa dichiarazione politica.

Questo oggetto contiene le seguenti informazioni:

operations

L'elenco delle operazioni per consentire l'utilizzo delle risorse in questa politica.

È possibile includere una delle seguenti operazioni:

  • mqtt:connect— Concede l'autorizzazione alla connessione al dispositivo principale. I dispositivi client devono disporre di questa autorizzazione per connettersi a un dispositivo principale.

    Questa operazione supporta le seguenti risorse:

    • mqtt:clientId:deviceClientId— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al broker MQTT del dispositivo principale. Sostituisci deviceClientIdcon l'ID client da utilizzare.

  • mqtt:publish— Concede l'autorizzazione a pubblicare messaggi MQTT sugli argomenti.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topic:mqttTopic— Limita l'accesso in base all'argomento MQTT in cui un dispositivo client pubblica un messaggio. Sostituisci MQTTTopic con l'argomento da utilizzare.

      Questa risorsa non supporta i caratteri jolly degli argomenti MQTT.

  • mqtt:subscribe— Concede l'autorizzazione a sottoscrivere i filtri degli argomenti MQTT per ricevere messaggi.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topicfilter:mqttTopicFilter— Limita l'accesso in base agli argomenti MQTT in cui un dispositivo client può iscriversi ai messaggi. mqttTopicFilterSostituiscilo con il filtro per argomenti da utilizzare.

      Questa risorsa supporta i caratteri jolly + degli argomenti # MQTT. Per ulteriori informazioni, consultate gli argomenti relativi a MQTT nella Developer Guide AWS IoT Core .

      Il dispositivo client può sottoscrivere gli stessi filtri tematici consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la mqtt:topicfilter:client/+/status risorsa, il dispositivo client può abbonarsi client/+/status ma non farloclient/client1/status.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le azioni.

resources

L'elenco delle risorse per consentire le operazioni previste da questa politica. Specificare le risorse che corrispondono alle operazioni di questa politica. Ad esempio, è possibile specificare un elenco di risorse tematiche MQTT (mqtt:topic:mqttTopic) in una politica che specifica l'mqtt:publishoperazione.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le risorse. Non è possibile utilizzare il carattere * jolly per abbinare identificatori di risorse parziali. Ad esempio, puoi specificare"resources": "*", ma non puoi specificare. "resources": "mqtt:clientId:*"

statementDescription

(Facoltativo) Una descrizione per questa dichiarazione politica.

certificates

(Facoltativo) Le opzioni di configurazione del certificato per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni:

serverCertificateValiditySeconds

(Facoltativo) La quantità di tempo (in secondi) dopo la quale scade il certificato del server MQTT locale. È possibile configurare questa opzione per personalizzare la frequenza con cui i dispositivi client si disconnettono e si riconnettono al dispositivo principale.

Questo componente ruota il certificato del server MQTT locale 24 ore prima della scadenza. Il broker MQTT, ad esempio il componente broker MQTT Moquette, genera un nuovo certificato e si riavvia. Quando ciò accade, tutti i dispositivi client collegati a questo dispositivo principale vengono disconnessi. I dispositivi client possono riconnettersi al dispositivo principale dopo un breve periodo di tempo.

Impostazione predefinita: 604800 (7 giorni)

Valore minimo: 172800 (2 giorni)

Valore massimo: 864000 (10 giorni)

performance

(Facoltativo) Le opzioni di configurazione delle prestazioni per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni:

maxActiveAuthTokens

(Facoltativo) Il numero massimo di token di autorizzazione attivi per i dispositivi client. È possibile aumentare questo numero per consentire a un numero maggiore di dispositivi client di connettersi a un dispositivo single-core senza riautenticarli.

Impostazione predefinita: 2500

cloudRequestQueueSize

(Facoltativo) Il numero massimo di Cloud AWS richieste da mettere in coda prima che questo componente rifiuti le richieste.

Impostazione predefinita: 100

maxConcurrentCloudRequests

(Facoltativo) Il numero massimo di richieste simultanee da inviare a. Cloud AWSÈ possibile aumentare questo numero per migliorare le prestazioni di autenticazione sui dispositivi principali in cui si connettono un gran numero di dispositivi client.

Impostazione predefinita: 1

Esempio: aggiornamento basato sull'unione della configurazione (utilizzando una politica restrittiva)

La configurazione di esempio seguente specifica di consentire ai dispositivi client i cui nomi iniziano con di connettersi e MyClientDevice pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Esempio: configurazione merge update (utilizzando una politica permissiva)

La configurazione di esempio seguente specifica di consentire a tutti i dispositivi client di connettersi e pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.1.x
deviceGroups

I gruppi di dispositivi sono gruppi di dispositivi client che dispongono delle autorizzazioni per connettersi e comunicare con un dispositivo principale. Utilizza le regole di selezione per identificare gruppi di dispositivi client e definisci politiche di autorizzazione dei dispositivi client che specificano le autorizzazioni per ciascun gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

formatVersion

La versione del formato per questo oggetto di configurazione.

Seleziona una delle opzioni seguenti:

  • 2021-03-05

definitions

I gruppi di dispositivi per questo dispositivo principale. Ogni definizione specifica una regola di selezione per valutare se un dispositivo client è membro del gruppo. Ogni definizione specifica anche la politica di autorizzazione da applicare ai dispositivi client che corrispondono alla regola di selezione. Se un dispositivo client è membro di più gruppi di dispositivi, le autorizzazioni del dispositivo comprendono le politiche di autorizzazione di ciascun gruppo.

Questo oggetto contiene le seguenti informazioni:

groupNameKey

Il nome di questo gruppo di dispositivi. Sostituiscilo groupNameKeycon un nome che ti aiuti a identificare questo gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

selectionRule

La query che specifica quali dispositivi client sono membri di questo gruppo di dispositivi. Quando un dispositivo client si connette, il dispositivo principale valuta questa regola di selezione per determinare se il dispositivo client è membro di questo gruppo di dispositivi. Se il dispositivo client è un membro, il dispositivo principale utilizza la politica di questo gruppo di dispositivi per autorizzare le azioni del dispositivo client.

Ogni regola di selezione comprende almeno una clausola di regola di selezione, che è una singola query di espressione che può corrispondere ai dispositivi client. Le regole di selezione utilizzano la stessa sintassi di interrogazione dell'indicizzazione AWS IoT della flotta. Per ulteriori informazioni sulla sintassi delle regole di selezione, consulta la sintassi delle query di indicizzazione AWS IoT della flotta nella Guida per gli sviluppatori.AWS IoT Core

Usa il carattere * jolly per abbinare più dispositivi client con una sola clausola di regola di selezione. È possibile utilizzare questo carattere jolly alla fine del nome dell'oggetto per abbinare i dispositivi client i cui nomi iniziano con una stringa specificata dall'utente. Puoi anche usare questo jolly per abbinare tutti i dispositivi client.

Nota

Per selezionare un valore che contiene i due punti (:), evita i due punti con una barra rovesciata (). \\ In formati come JSON, è necessario evitare i caratteri della barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una thingName: MyTeam\\\\:ClientDevice1 cosa il cui nome è. MyTeam:ClientDevice1

È possibile specificare il seguente selettore:

  • thingName— Il nome dell' AWS IoT oggetto di un dispositivo client.

Esempio di regola di selezione

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi sono MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Esempio di regola di selezione (usa caratteri jolly)

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi iniziano conMyClientDevice.

thingName: MyClientDevice*
Esempio di regola di selezione (corrisponde a tutti i dispositivi)

La seguente regola di selezione corrisponde a tutti i dispositivi client.

thingName: *
policyName

La politica di autorizzazione che si applica ai dispositivi client di questo gruppo di dispositivi. Specificate il nome di una politica definita nell'policiesoggetto.

policies

Le politiche di autorizzazione dei dispositivi client per i dispositivi client che si connettono al dispositivo principale. Ogni politica di autorizzazione specifica una serie di azioni e le risorse in cui un dispositivo client può eseguire tali azioni.

Questo oggetto contiene le seguenti informazioni:

policyNameKey

Il nome di questa politica di autorizzazione. Sostituiscilo policyNameKeycon un nome che ti aiuti a identificare questa politica di autorizzazione. Questo nome di policy viene utilizzato per definire quale criterio si applica a un gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

statementNameKey

Il nome di questa dichiarazione politica. Sostituire statementNameKeycon un nome che consenta di identificare questa dichiarazione politica.

Questo oggetto contiene le seguenti informazioni:

operations

L'elenco delle operazioni per consentire l'utilizzo delle risorse in questa politica.

È possibile includere una delle seguenti operazioni:

  • mqtt:connect— Concede l'autorizzazione alla connessione al dispositivo principale. I dispositivi client devono disporre di questa autorizzazione per connettersi a un dispositivo principale.

    Questa operazione supporta le seguenti risorse:

    • mqtt:clientId:deviceClientId— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al broker MQTT del dispositivo principale. Sostituisci deviceClientIdcon l'ID client da utilizzare.

  • mqtt:publish— Concede l'autorizzazione a pubblicare messaggi MQTT sugli argomenti.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topic:mqttTopic— Limita l'accesso in base all'argomento MQTT in cui un dispositivo client pubblica un messaggio. Sostituisci MQTTTopic con l'argomento da utilizzare.

      Questa risorsa non supporta i caratteri jolly degli argomenti MQTT.

  • mqtt:subscribe— Concede l'autorizzazione a sottoscrivere i filtri degli argomenti MQTT per ricevere messaggi.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topicfilter:mqttTopicFilter— Limita l'accesso in base agli argomenti MQTT in cui un dispositivo client può iscriversi ai messaggi. mqttTopicFilterSostituiscilo con il filtro per argomenti da utilizzare.

      Questa risorsa supporta i caratteri jolly + degli argomenti # MQTT. Per ulteriori informazioni, consultate gli argomenti relativi a MQTT nella Developer Guide AWS IoT Core .

      Il dispositivo client può sottoscrivere gli stessi filtri tematici consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la mqtt:topicfilter:client/+/status risorsa, il dispositivo client può abbonarsi client/+/status ma non farloclient/client1/status.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le azioni.

resources

L'elenco delle risorse per consentire le operazioni previste da questa politica. Specificare le risorse che corrispondono alle operazioni di questa politica. Ad esempio, è possibile specificare un elenco di risorse tematiche MQTT (mqtt:topic:mqttTopic) in una politica che specifica l'mqtt:publishoperazione.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le risorse. Non è possibile utilizzare il carattere * jolly per abbinare identificatori di risorse parziali. Ad esempio, puoi specificare"resources": "*", ma non puoi specificare. "resources": "mqtt:clientId:*"

statementDescription

(Facoltativo) Una descrizione per questa dichiarazione politica.

certificates

(Facoltativo) Le opzioni di configurazione del certificato per questo dispositivo principale. Questo oggetto contiene le seguenti informazioni:

serverCertificateValiditySeconds

(Facoltativo) La quantità di tempo (in secondi) dopo la quale scade il certificato del server MQTT locale. È possibile configurare questa opzione per personalizzare la frequenza con cui i dispositivi client si disconnettono e si riconnettono al dispositivo principale.

Questo componente ruota il certificato del server MQTT locale 24 ore prima della scadenza. Il broker MQTT, ad esempio il componente broker MQTT Moquette, genera un nuovo certificato e si riavvia. Quando ciò accade, tutti i dispositivi client collegati a questo dispositivo principale vengono disconnessi. I dispositivi client possono riconnettersi al dispositivo principale dopo un breve periodo di tempo.

Impostazione predefinita: 604800 (7 giorni)

Valore minimo: 172800 (2 giorni)

Valore massimo: 864000 (10 giorni)

Esempio: aggiornamento dell'unione della configurazione (utilizzando una politica restrittiva)

La configurazione di esempio seguente specifica di consentire ai dispositivi client i cui nomi iniziano con di connettersi e MyClientDevice pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Esempio: configurazione merge update (utilizzando una politica permissiva)

La configurazione di esempio seguente specifica di consentire a tutti i dispositivi client di connettersi e pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.0.x
deviceGroups

I gruppi di dispositivi sono gruppi di dispositivi client che dispongono delle autorizzazioni per connettersi e comunicare con un dispositivo principale. Utilizza le regole di selezione per identificare gruppi di dispositivi client e definisci politiche di autorizzazione dei dispositivi client che specificano le autorizzazioni per ciascun gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

formatVersion

La versione del formato per questo oggetto di configurazione.

Seleziona una delle opzioni seguenti:

  • 2021-03-05

definitions

I gruppi di dispositivi per questo dispositivo principale. Ogni definizione specifica una regola di selezione per valutare se un dispositivo client è membro del gruppo. Ogni definizione specifica anche la politica di autorizzazione da applicare ai dispositivi client che corrispondono alla regola di selezione. Se un dispositivo client è membro di più gruppi di dispositivi, le autorizzazioni del dispositivo comprendono le politiche di autorizzazione di ciascun gruppo.

Questo oggetto contiene le seguenti informazioni:

groupNameKey

Il nome di questo gruppo di dispositivi. Sostituiscilo groupNameKeycon un nome che ti aiuti a identificare questo gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

selectionRule

La query che specifica quali dispositivi client sono membri di questo gruppo di dispositivi. Quando un dispositivo client si connette, il dispositivo principale valuta questa regola di selezione per determinare se il dispositivo client è membro di questo gruppo di dispositivi. Se il dispositivo client è un membro, il dispositivo principale utilizza la politica di questo gruppo di dispositivi per autorizzare le azioni del dispositivo client.

Ogni regola di selezione comprende almeno una clausola di regola di selezione, che è una singola query di espressione che può corrispondere ai dispositivi client. Le regole di selezione utilizzano la stessa sintassi di interrogazione dell'indicizzazione AWS IoT della flotta. Per ulteriori informazioni sulla sintassi delle regole di selezione, consulta la sintassi delle query di indicizzazione AWS IoT della flotta nella Guida per gli sviluppatori.AWS IoT Core

Usa il carattere * jolly per abbinare più dispositivi client con una sola clausola di regola di selezione. È possibile utilizzare questo carattere jolly alla fine del nome dell'oggetto per abbinare i dispositivi client i cui nomi iniziano con una stringa specificata dall'utente. Puoi anche usare questo jolly per abbinare tutti i dispositivi client.

Nota

Per selezionare un valore che contiene i due punti (:), evita i due punti con una barra rovesciata (). \\ In formati come JSON, è necessario evitare i caratteri della barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una thingName: MyTeam\\\\:ClientDevice1 cosa il cui nome è. MyTeam:ClientDevice1

È possibile specificare il seguente selettore:

  • thingName— Il nome dell' AWS IoT oggetto di un dispositivo client.

Esempio di regola di selezione

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi sono MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Esempio di regola di selezione (usa caratteri jolly)

La seguente regola di selezione corrisponde ai dispositivi client i cui nomi iniziano conMyClientDevice.

thingName: MyClientDevice*
Esempio di regola di selezione (corrisponde a tutti i dispositivi)

La seguente regola di selezione corrisponde a tutti i dispositivi client.

thingName: *
policyName

La politica di autorizzazione che si applica ai dispositivi client di questo gruppo di dispositivi. Specificate il nome di una politica definita nell'policiesoggetto.

policies

Le politiche di autorizzazione dei dispositivi client per i dispositivi client che si connettono al dispositivo principale. Ogni politica di autorizzazione specifica una serie di azioni e le risorse in cui un dispositivo client può eseguire tali azioni.

Questo oggetto contiene le seguenti informazioni:

policyNameKey

Il nome di questa politica di autorizzazione. Sostituiscilo policyNameKeycon un nome che ti aiuti a identificare questa politica di autorizzazione. Questo nome di policy viene utilizzato per definire quale criterio si applica a un gruppo di dispositivi.

Questo oggetto contiene le seguenti informazioni:

statementNameKey

Il nome di questa dichiarazione politica. Sostituire statementNameKeycon un nome che consenta di identificare questa dichiarazione politica.

Questo oggetto contiene le seguenti informazioni:

operations

L'elenco delle operazioni per consentire l'utilizzo delle risorse in questa politica.

È possibile includere una delle seguenti operazioni:

  • mqtt:connect— Concede l'autorizzazione alla connessione al dispositivo principale. I dispositivi client devono disporre di questa autorizzazione per connettersi a un dispositivo principale.

    Questa operazione supporta le seguenti risorse:

    • mqtt:clientId:deviceClientId— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al broker MQTT del dispositivo principale. Sostituisci deviceClientIdcon l'ID client da utilizzare.

  • mqtt:publish— Concede l'autorizzazione a pubblicare messaggi MQTT sugli argomenti.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topic:mqttTopic— Limita l'accesso in base all'argomento MQTT in cui un dispositivo client pubblica un messaggio. Sostituisci MQTTTopic con l'argomento da utilizzare.

      Questa risorsa non supporta i caratteri jolly degli argomenti MQTT.

  • mqtt:subscribe— Concede l'autorizzazione a sottoscrivere i filtri degli argomenti MQTT per ricevere messaggi.

    Questa operazione supporta le seguenti risorse:

    • mqtt:topicfilter:mqttTopicFilter— Limita l'accesso in base agli argomenti MQTT in cui un dispositivo client può iscriversi ai messaggi. mqttTopicFilterSostituiscilo con il filtro per argomenti da utilizzare.

      Questa risorsa supporta i caratteri jolly + degli argomenti # MQTT. Per ulteriori informazioni, consultate gli argomenti relativi a MQTT nella Developer Guide AWS IoT Core .

      Il dispositivo client può sottoscrivere gli stessi filtri tematici consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la mqtt:topicfilter:client/+/status risorsa, il dispositivo client può abbonarsi client/+/status ma non farloclient/client1/status.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le azioni.

resources

L'elenco delle risorse per consentire le operazioni previste da questa politica. Specificare le risorse che corrispondono alle operazioni di questa politica. Ad esempio, è possibile specificare un elenco di risorse tematiche MQTT (mqtt:topic:mqttTopic) in una politica che specifica l'mqtt:publishoperazione.

È possibile specificare il carattere * jolly per consentire l'accesso a tutte le risorse. Non è possibile utilizzare il carattere * jolly per abbinare identificatori di risorse parziali. Ad esempio, puoi specificare"resources": "*", ma non puoi specificare. "resources": "mqtt:clientId:*"

statementDescription

(Facoltativo) Una descrizione per questa dichiarazione politica.

Esempio: aggiornamento dell'unione della configurazione (utilizzando una politica restrittiva)

La configurazione di esempio seguente specifica di consentire ai dispositivi client i cui nomi iniziano con di connettersi e MyClientDevice pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Esempio: configurazione merge update (utilizzando una politica permissiva)

La configurazione di esempio seguente specifica di consentire a tutti i dispositivi client di connettersi e pubblicare/sottoscrivere su tutti gli argomenti.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }

File di registro locale

Questo componente utilizza lo stesso file di registro del componente Greengrass nucleus.

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.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/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

Changelog

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

Versione

Modifiche

2.4.5

Nuove funzionalità

Aggiunge il supporto per i prefissi jolly per la selezione dei nomi degli oggetti con il parametro. selectionRule

Correzioni di bug e miglioramenti

Risolve un problema per cui i certificati non vengono aggiornati con nuove informazioni di connettività in alcuni casi.

2.4.4

Versione aggiornata per la versione 2.12.0 di Greengrass nucleus.

2.4.3

Versione aggiornata per la versione 2.11.0 di Greengrass nucleus.

2.4.2

Nuove funzionalità

Aggiunge una nuova opzione di configurazione. startupTimeoutSeconds

2.4.1

Versione aggiornata per la versione 2.10.0 di Greengrass nucleus.

2.4.0

Nuove funzionalità
  • Aggiunge il supporto per l'autenticazione dei dispositivi client per l'emissione di metriche operative che verranno pubblicate dall'agente di telemetria.

Correzioni di bug e miglioramenti
  • Risolve un problema per cui l'autenticazione del dispositivo client impiega più di 10 secondi per verificare l'identità del dispositivo client.

  • Correzioni e miglioramenti minori aggiuntivi.

2.3.2

Correzioni di bug e miglioramenti
  • Aggiunge il supporto per la memorizzazione nella cache delle informazioni sul nome host in modo che il componente generi correttamente gli oggetti del certificato quando viene riavviato in modalità offline.

2.3.1

Correzioni di bug e miglioramenti
  • Risolve una perdita di memoria.

2.3.0

avvertimento

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

Nuove funzionalità

  • Aggiunge il supporto per l'autenticazione offline dei dispositivi client in modo che possano continuare a connettersi al dispositivo principale quando il dispositivo principale non è connesso a Internet.

  • Aggiunge il supporto per l'autorità di certificazione fornita dal cliente che il dispositivo principale utilizza come certificato principale per generare certificati broker MQTT.

2.2.3

Versione aggiornata per la versione 2.8.0 di Greengrass nucleus.

2.2.2

Correzioni di bug e miglioramenti
  • Risolve un problema per cui il certificato del server MQTT locale ruota più spesso del previsto in determinati scenari.

2.2.1

Versione aggiornata per la versione 2.7.0 di Greengrass nucleus.

2.2.0

Nuove funzionalità
  • Aggiunge il supporto per componenti personalizzati per chiamare le operazioni di comunicazione tra processi (IPC) per autenticare e autorizzare i dispositivi client. È possibile utilizzare queste operazioni in un componente broker MQTT personalizzato, ad esempio. Per ulteriori informazioni, consulta IPC: autenticazione e autorizzazione dei dispositivi client.

  • Aggiunge le threadPoolSize opzioni maxActiveAuthTokenscloudQueueSize, e che è possibile configurare per ottimizzare le prestazioni di questo componente.

2.1.0

Nuove funzionalità
  • Aggiunge l'serverCertificateValiditySecondsopzione che è possibile configurare per personalizzare alla scadenza del certificato del server del broker MQTT. È possibile configurare la scadenza del certificato del server dopo 2-10 giorni.

Correzioni di bug e miglioramenti

2.0.4

Versione aggiornata per la versione 2.5.0 di Greengrass nucleus.

2.0.3

Correzioni di bug e miglioramenti
  • Le credenziali ora si aggiornano se si ruota la chiave privata del dispositivo principale.

  • Aggiornamenti per rendere più chiari i messaggi di registro.

2.0.2

Versione aggiornata per la versione 2.4.0 di Greengrass nucleus.

2.0.1

Versione aggiornata per la versione 2.3.0 di Greengrass nucleus.

2.0.0

Versione iniziale.