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 MQTT messaggi e dati da elaborare. Per ulteriori informazioni, consulta Interagisci con dispositivi IoT locali.
Argomenti
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, consulta 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:DescribeCertificate
autorizzazione. -
La AWS IoT politica del dispositivo principale deve consentire le seguenti autorizzazioni:
-
greengrass:GetConnectivityInfo
, dove le risorse includono ARN il 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 ARN il seguente MQTT argomento:-
$aws/things/
coreDeviceThingName
*-gci/shadow/get
-
-
iot:Subscribe
, dove le risorse includono ARNs i seguenti filtri per MQTT argomenti:-
$aws/things/
coreDeviceThingName
*-gci/shadow/update/delta -
$aws/things/
coreDeviceThingName
*-gci/shadow/get/accepted
-
-
iot:Receive
, dove le risorse includono ARNs i seguenti MQTT argomenti:-
$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 la seguente autorizzazione:
-
greengrass:ListClientDevicesAssociatedWithCoreDevice
per consentire al dispositivo principale di elencare i client per l'autenticazione offline.
-
-
Il componente di autenticazione del dispositivo client è supportato per l'esecuzione in unVPC. Per distribuire questo componente in aVPC, è 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 |
---|---|---|---|
|
443 | Sì |
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
- 2.5.1
-
La tabella seguente elenca le dipendenze per la versione 2.5.1 di questo componente.
Dipendenza Versioni compatibili Tipo di dipendenza Nucleo Greengrass >=2.6.0 <2.14.0 Flessibili - 2.4.4 - 2.5.0
-
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
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 localeMQTT. 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 MQTT broker locale dopo aver revocato l'autorizzazione di sottoscrizione per forzare la riautorizzazione dei clienti.
Per il componente MQTT 5 broker (EMQX), aggiorna la restartIdentifier
configurazione per riavviare il 5 broker. MQTT
Per impostazione predefinita, il componente MQTT 3.1.1 broker (Moquette) si riavvia settimanalmente quando il certificato del server cambia e i client devono autorizzare nuovamente. È possibile forzare il riavvio modificando le informazioni di connettività (indirizzi IP) del dispositivo principale oppure effettuando una distribuzione per rimuovere il componente broker e quindi ridistribuirlo in un secondo momento.
- v2.5.0
-
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. Replace (Sostituisci)
groupNameKey
con un nome che consente di 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, ovvero 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 comeJSON, è necessario evitare i caratteri di barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una cosa ilthingName: MyTeam\\:ClientDevice1
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 con
MyClientDevice
.thingName: MyClientDevice*
Esempio di regola di selezione (usa caratteri jolly)
La seguente regola di selezione corrisponde ai dispositivi client i cui nomi terminano con
MyClientDevice
.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 che definite nell'
policies
oggetto.
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. Replace (Sostituisci)
policyNameKey
con un nome che consente di 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. Replace (Sostituisci)
statementNameKey
con 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 qualsiasi delle seguenti operazioni:
-
mqtt:connect
— Concede l'autorizzazione per la 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:
— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al MQTT broker del dispositivo principale. Replace (Sostituisci)deviceClientId
deviceClientId
con l'ID client da utilizzare.
-
-
mqtt:publish
— Concede l'autorizzazione a pubblicare MQTT messaggi sugli argomenti.Questa operazione supporta le seguenti risorse:
-
mqtt:topic:
— Limita l'accesso in base all'MQTTargomento in cui un dispositivo client pubblica un messaggio. Replace (Sostituisci)mqttTopic
mqttTopic
con l'argomento da utilizzare.Questa risorsa non supporta i caratteri jolly degli MQTT argomenti.
-
-
mqtt:subscribe
— Concede l'autorizzazione a sottoscrivere i filtri degli MQTT argomenti per ricevere messaggi.Questa operazione supporta le seguenti risorse:
-
mqtt:topicfilter:
— Limita l'accesso in base agli MQTT argomenti in cui un dispositivo client può iscriversi ai messaggi. Replace (Sostituisci)mqttTopicFilter
mqttTopicFilter
con il filtro per argomenti da utilizzare.Questa risorsa supporta i caratteri jolly degli
#
MQTT argomenti+
e degli argomenti. Per ulteriori informazioni, consulta MQTTgli argomenti della Guida per gli AWS IoT Core sviluppatori.Il dispositivo client può sottoscrivere gli esatti filtri per argomento consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la
mqtt:topicfilter:client/+/status
risorsa, il dispositivo client può abbonarsiclient/+/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 MQTT tematiche (
mqtt:topic:
) in una politica che specifica l'mqttTopic
mqtt:publish
operazione.È possibile specificare il carattere
*
jolly in qualsiasi punto all'interno della variabile di risorsa per consentire l'accesso a tutte le risorse. Ad esempio, potete specificaremqtt:topic:my*
di consentire l'accesso alle risorse che corrispondono a quell'input.È supportata la seguente variabile di risorsa:
-
mqtt:topic:${iot:Connection.Thing.ThingName}
Viene risolto nel nome dell'elemento nel AWS IoT Core registro per il quale viene valutata la politica. AWS IoT Core utilizza il certificato che il dispositivo presenta al momento dell'autenticazione per determinare quale elemento utilizzare per verificare la connessione. Questa variabile di policy è disponibile solo quando un dispositivo si connette tramite MQTT o MQTT tramite il WebSocket protocollo.
-
statementDescription
-
(Facoltativo) Una descrizione di 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 MQTT del server 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 MQTT server locale 24 ore prima della scadenza. Il MQTT broker, ad esempio il componente MQTT broker 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 i dispositivi client, Greengrass aggira i controlli delle politiche di autorizzazione per le operazioni dei dispositivi client. MQTT 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
campicertificateUri
e in modo che puntino alla CA intermedia corretta.Questo oggetto contiene le seguenti informazioni.
- certificateUri
-
La posizione del certificato. Può essere un file system URI o un file URI che rimanda 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 file system URI o un file 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ò trattarsi di un file system URI o di un file 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": [ "*" ] } } } } }
Esempio: aggiornamento dell'unione della configurazione (utilizzando una politica relativa ai nomi degli oggetti)
La configurazione di esempio seguente consente ai dispositivi client di pubblicare su argomenti che iniziano con il nome dell'oggetto del dispositivo client e terminano con la stringa
topic
.{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "myThing": { "selectionRule": "thingName: *", "policyName": "MyThingNamePolicy" } }, "policies": { "MyThingNamePolicy": { "policyStatement": { "statementDescription": "mqtt publish", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:${iot:Connection.Thing.ThingName}/*/topic" ] } } } } }
- 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. Replace (Sostituisci)
groupNameKey
con un nome che consente di 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, ovvero 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 comeJSON, è necessario evitare i caratteri di barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una cosa ilthingName: MyTeam\\:ClientDevice1
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 con
MyClientDevice
.thingName: MyClientDevice*
Esempio di regola di selezione (usa caratteri jolly)
La seguente regola di selezione corrisponde ai dispositivi client i cui nomi terminano con
MyClientDevice
.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 che definite nell'
policies
oggetto.
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. Replace (Sostituisci)
policyNameKey
con un nome che consente di 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. Replace (Sostituisci)
statementNameKey
con 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 qualsiasi delle seguenti operazioni:
-
mqtt:connect
— Concede l'autorizzazione per la 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:
— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al MQTT broker del dispositivo principale. Replace (Sostituisci)deviceClientId
deviceClientId
con l'ID client da utilizzare.
-
-
mqtt:publish
— Concede l'autorizzazione a pubblicare MQTT messaggi sugli argomenti.Questa operazione supporta le seguenti risorse:
-
mqtt:topic:
— Limita l'accesso in base all'MQTTargomento in cui un dispositivo client pubblica un messaggio. Replace (Sostituisci)mqttTopic
mqttTopic
con l'argomento da utilizzare.Questa risorsa non supporta i caratteri jolly degli MQTT argomenti.
-
-
mqtt:subscribe
— Concede l'autorizzazione a sottoscrivere i filtri degli MQTT argomenti per ricevere messaggi.Questa operazione supporta le seguenti risorse:
-
mqtt:topicfilter:
— Limita l'accesso in base agli MQTT argomenti in cui un dispositivo client può iscriversi ai messaggi. Replace (Sostituisci)mqttTopicFilter
mqttTopicFilter
con il filtro per argomenti da utilizzare.Questa risorsa supporta i caratteri jolly degli
#
MQTT argomenti+
e degli argomenti. Per ulteriori informazioni, consulta MQTTgli argomenti della Guida per gli AWS IoT Core sviluppatori.Il dispositivo client può sottoscrivere gli esatti filtri per argomento consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la
mqtt:topicfilter:client/+/status
risorsa, il dispositivo client può abbonarsiclient/+/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 MQTT tematiche (
mqtt:topic:
) in una politica che specifica l'mqttTopic
mqtt:publish
operazione.È 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 MQTT del server 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 MQTT server locale 24 ore prima della scadenza. Il MQTT broker, ad esempio il componente MQTT broker 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 i dispositivi client, Greengrass aggira i controlli delle politiche di autorizzazione per le operazioni dei dispositivi client. MQTT 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
campicertificateUri
e in modo che puntino alla CA intermedia corretta.Questo oggetto contiene le seguenti informazioni.
- certificateUri
-
La posizione del certificato. Può essere un file system URI o un file URI che rimanda 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 file system URI o un file 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ò trattarsi di un file system URI o di un file 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. Replace (Sostituisci)
groupNameKey
con un nome che consente di 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, ovvero 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 comeJSON, è necessario evitare i caratteri di barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una cosa ilthingName: MyTeam\\\\:ClientDevice1
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 con
MyClientDevice
.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 che definite nell'
policies
oggetto.
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. Replace (Sostituisci)
policyNameKey
con un nome che consente di 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. Replace (Sostituisci)
statementNameKey
con 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 qualsiasi delle seguenti operazioni:
-
mqtt:connect
— Concede l'autorizzazione per la 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:
— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al MQTT broker del dispositivo principale. Replace (Sostituisci)deviceClientId
deviceClientId
con l'ID client da utilizzare.
-
-
mqtt:publish
— Concede l'autorizzazione a pubblicare MQTT messaggi sugli argomenti.Questa operazione supporta le seguenti risorse:
-
mqtt:topic:
— Limita l'accesso in base all'MQTTargomento in cui un dispositivo client pubblica un messaggio. Replace (Sostituisci)mqttTopic
mqttTopic
con l'argomento da utilizzare.Questa risorsa non supporta i caratteri jolly degli MQTT argomenti.
-
-
mqtt:subscribe
— Concede l'autorizzazione a sottoscrivere i filtri degli MQTT argomenti per ricevere messaggi.Questa operazione supporta le seguenti risorse:
-
mqtt:topicfilter:
— Limita l'accesso in base agli MQTT argomenti in cui un dispositivo client può iscriversi ai messaggi. Replace (Sostituisci)mqttTopicFilter
mqttTopicFilter
con il filtro per argomenti da utilizzare.Questa risorsa supporta i caratteri jolly degli
#
MQTT argomenti+
e degli argomenti. Per ulteriori informazioni, consulta MQTTgli argomenti della Guida per gli AWS IoT Core sviluppatori.Il dispositivo client può sottoscrivere gli esatti filtri per argomento consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la
mqtt:topicfilter:client/+/status
risorsa, il dispositivo client può abbonarsiclient/+/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 MQTT tematiche (
mqtt:topic:
) in una politica che specifica l'mqttTopic
mqtt:publish
operazione.È 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 MQTT del server 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 MQTT server locale 24 ore prima della scadenza. Il MQTT broker, ad esempio il componente MQTT broker 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 i dispositivi client, Greengrass aggira i controlli delle politiche di autorizzazione per le operazioni dei dispositivi client. MQTT 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
campicertificateUri
e in modo che puntino alla CA intermedia corretta.Questo oggetto contiene le seguenti informazioni.
- certificateUri
-
La posizione del certificato. Può essere un file system URI o un file URI che rimanda 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 file system URI o un file 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ò trattarsi di un file system URI o di un file 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. Replace (Sostituisci)
groupNameKey
con un nome che consente di 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, ovvero 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 comeJSON, è necessario evitare i caratteri di barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una cosa ilthingName: MyTeam\\\\:ClientDevice1
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 con
MyClientDevice
.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 che definite nell'
policies
oggetto.
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. Replace (Sostituisci)
policyNameKey
con un nome che consente di 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. Replace (Sostituisci)
statementNameKey
con 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 qualsiasi delle seguenti operazioni:
-
mqtt:connect
— Concede l'autorizzazione per la 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:
— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al MQTT broker del dispositivo principale. Replace (Sostituisci)deviceClientId
deviceClientId
con l'ID client da utilizzare.
-
-
mqtt:publish
— Concede l'autorizzazione a pubblicare MQTT messaggi sugli argomenti.Questa operazione supporta le seguenti risorse:
-
mqtt:topic:
— Limita l'accesso in base all'MQTTargomento in cui un dispositivo client pubblica un messaggio. Replace (Sostituisci)mqttTopic
mqttTopic
con l'argomento da utilizzare.Questa risorsa non supporta i caratteri jolly degli MQTT argomenti.
-
-
mqtt:subscribe
— Concede l'autorizzazione a sottoscrivere i filtri degli MQTT argomenti per ricevere messaggi.Questa operazione supporta le seguenti risorse:
-
mqtt:topicfilter:
— Limita l'accesso in base agli MQTT argomenti in cui un dispositivo client può iscriversi ai messaggi. Replace (Sostituisci)mqttTopicFilter
mqttTopicFilter
con il filtro per argomenti da utilizzare.Questa risorsa supporta i caratteri jolly degli
#
MQTT argomenti+
e degli argomenti. Per ulteriori informazioni, consulta MQTTgli argomenti della Guida per gli AWS IoT Core sviluppatori.Il dispositivo client può sottoscrivere gli esatti filtri per argomento consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la
mqtt:topicfilter:client/+/status
risorsa, il dispositivo client può abbonarsiclient/+/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 MQTT tematiche (
mqtt:topic:
) in una politica che specifica l'mqttTopic
mqtt:publish
operazione.È 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 MQTT del server 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 MQTT server locale 24 ore prima della scadenza. Il MQTT broker, ad esempio il componente MQTT broker 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:
- certificateUri
-
La posizione del certificato. Può essere un file system URI o un file URI che rimanda 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 file system URI o un file 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ò trattarsi di un file system URI o di un file 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. Replace (Sostituisci)
groupNameKey
con un nome che consente di 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, ovvero 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 comeJSON, è necessario evitare i caratteri di barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una cosa ilthingName: MyTeam\\\\:ClientDevice1
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 con
MyClientDevice
.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 che definite nell'
policies
oggetto.
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. Replace (Sostituisci)
policyNameKey
con un nome che consente di 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. Replace (Sostituisci)
statementNameKey
con 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 qualsiasi delle seguenti operazioni:
-
mqtt:connect
— Concede l'autorizzazione per la 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:
— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al MQTT broker del dispositivo principale. Replace (Sostituisci)deviceClientId
deviceClientId
con l'ID client da utilizzare.
-
-
mqtt:publish
— Concede l'autorizzazione a pubblicare MQTT messaggi sugli argomenti.Questa operazione supporta le seguenti risorse:
-
mqtt:topic:
— Limita l'accesso in base all'MQTTargomento in cui un dispositivo client pubblica un messaggio. Replace (Sostituisci)mqttTopic
mqttTopic
con l'argomento da utilizzare.Questa risorsa non supporta i caratteri jolly degli MQTT argomenti.
-
-
mqtt:subscribe
— Concede l'autorizzazione a sottoscrivere i filtri degli MQTT argomenti per ricevere messaggi.Questa operazione supporta le seguenti risorse:
-
mqtt:topicfilter:
— Limita l'accesso in base agli MQTT argomenti in cui un dispositivo client può iscriversi ai messaggi. Replace (Sostituisci)mqttTopicFilter
mqttTopicFilter
con il filtro per argomenti da utilizzare.Questa risorsa supporta i caratteri jolly degli
#
MQTT argomenti+
e degli argomenti. Per ulteriori informazioni, consulta MQTTgli argomenti della Guida per gli AWS IoT Core sviluppatori.Il dispositivo client può sottoscrivere gli esatti filtri per argomento consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la
mqtt:topicfilter:client/+/status
risorsa, il dispositivo client può abbonarsiclient/+/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 MQTT tematiche (
mqtt:topic:
) in una politica che specifica l'mqttTopic
mqtt:publish
operazione.È 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 MQTT del server 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 MQTT server locale 24 ore prima della scadenza. Il MQTT broker, ad esempio il componente MQTT broker 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.
- certificateUri
-
La posizione del certificato. Può essere un file system URI o un file URI che rimanda 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 file system URI o un file 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ò trattarsi di un file system URI o di un file 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. Replace (Sostituisci)
groupNameKey
con un nome che consente di 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, ovvero 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 comeJSON, è necessario evitare i caratteri di barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una cosa ilthingName: MyTeam\\\\:ClientDevice1
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 con
MyClientDevice
.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 che definite nell'
policies
oggetto.
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. Replace (Sostituisci)
policyNameKey
con un nome che consente di 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. Replace (Sostituisci)
statementNameKey
con 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 qualsiasi delle seguenti operazioni:
-
mqtt:connect
— Concede l'autorizzazione per la 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:
— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al MQTT broker del dispositivo principale. Replace (Sostituisci)deviceClientId
deviceClientId
con l'ID client da utilizzare.
-
-
mqtt:publish
— Concede l'autorizzazione a pubblicare MQTT messaggi sugli argomenti.Questa operazione supporta le seguenti risorse:
-
mqtt:topic:
— Limita l'accesso in base all'MQTTargomento in cui un dispositivo client pubblica un messaggio. Replace (Sostituisci)mqttTopic
mqttTopic
con l'argomento da utilizzare.Questa risorsa non supporta i caratteri jolly degli MQTT argomenti.
-
-
mqtt:subscribe
— Concede l'autorizzazione a sottoscrivere i filtri degli MQTT argomenti per ricevere messaggi.Questa operazione supporta le seguenti risorse:
-
mqtt:topicfilter:
— Limita l'accesso in base agli MQTT argomenti in cui un dispositivo client può iscriversi ai messaggi. Replace (Sostituisci)mqttTopicFilter
mqttTopicFilter
con il filtro per argomenti da utilizzare.Questa risorsa supporta i caratteri jolly degli
#
MQTT argomenti+
e degli argomenti. Per ulteriori informazioni, consulta MQTTgli argomenti della Guida per gli AWS IoT Core sviluppatori.Il dispositivo client può sottoscrivere gli esatti filtri per argomento consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la
mqtt:topicfilter:client/+/status
risorsa, il dispositivo client può abbonarsiclient/+/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 MQTT tematiche (
mqtt:topic:
) in una politica che specifica l'mqttTopic
mqtt:publish
operazione.È 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 MQTT del server 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 MQTT server locale 24 ore prima della scadenza. Il MQTT broker, ad esempio il componente MQTT broker 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. Replace (Sostituisci)
groupNameKey
con un nome che consente di 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, ovvero 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 comeJSON, è necessario evitare i caratteri di barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una cosa ilthingName: MyTeam\\\\:ClientDevice1
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 con
MyClientDevice
.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 che definite nell'
policies
oggetto.
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. Replace (Sostituisci)
policyNameKey
con un nome che consente di 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. Replace (Sostituisci)
statementNameKey
con 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 qualsiasi delle seguenti operazioni:
-
mqtt:connect
— Concede l'autorizzazione per la 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:
— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al MQTT broker del dispositivo principale. Replace (Sostituisci)deviceClientId
deviceClientId
con l'ID client da utilizzare.
-
-
mqtt:publish
— Concede l'autorizzazione a pubblicare MQTT messaggi sugli argomenti.Questa operazione supporta le seguenti risorse:
-
mqtt:topic:
— Limita l'accesso in base all'MQTTargomento in cui un dispositivo client pubblica un messaggio. Replace (Sostituisci)mqttTopic
mqttTopic
con l'argomento da utilizzare.Questa risorsa non supporta i caratteri jolly degli MQTT argomenti.
-
-
mqtt:subscribe
— Concede l'autorizzazione a sottoscrivere i filtri degli MQTT argomenti per ricevere messaggi.Questa operazione supporta le seguenti risorse:
-
mqtt:topicfilter:
— Limita l'accesso in base agli MQTT argomenti in cui un dispositivo client può iscriversi ai messaggi. Replace (Sostituisci)mqttTopicFilter
mqttTopicFilter
con il filtro per argomenti da utilizzare.Questa risorsa supporta i caratteri jolly degli
#
MQTT argomenti+
e degli argomenti. Per ulteriori informazioni, consulta MQTTgli argomenti della Guida per gli AWS IoT Core sviluppatori.Il dispositivo client può sottoscrivere gli esatti filtri per argomento consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la
mqtt:topicfilter:client/+/status
risorsa, il dispositivo client può abbonarsiclient/+/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 MQTT tematiche (
mqtt:topic:
) in una politica che specifica l'mqttTopic
mqtt:publish
operazione.È 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 MQTT del server 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 MQTT server locale 24 ore prima della scadenza. Il MQTT broker, ad esempio il componente MQTT broker 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. Replace (Sostituisci)
groupNameKey
con un nome che consente di 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, ovvero 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 comeJSON, è necessario evitare i caratteri di barra rovesciata, quindi è necessario immettere due caratteri di barra rovesciata prima del carattere dei due punti. Ad esempio, specificate di selezionare una cosa ilthingName: MyTeam\\\\:ClientDevice1
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 con
MyClientDevice
.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 che definite nell'
policies
oggetto.
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. Replace (Sostituisci)
policyNameKey
con un nome che consente di 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. Replace (Sostituisci)
statementNameKey
con 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 qualsiasi delle seguenti operazioni:
-
mqtt:connect
— Concede l'autorizzazione per la 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:
— Limita l'accesso in base all'ID client utilizzato da un dispositivo client per connettersi al MQTT broker del dispositivo principale. Replace (Sostituisci)deviceClientId
deviceClientId
con l'ID client da utilizzare.
-
-
mqtt:publish
— Concede l'autorizzazione a pubblicare MQTT messaggi sugli argomenti.Questa operazione supporta le seguenti risorse:
-
mqtt:topic:
— Limita l'accesso in base all'MQTTargomento in cui un dispositivo client pubblica un messaggio. Replace (Sostituisci)mqttTopic
mqttTopic
con l'argomento da utilizzare.Questa risorsa non supporta i caratteri jolly degli MQTT argomenti.
-
-
mqtt:subscribe
— Concede l'autorizzazione a sottoscrivere i filtri degli MQTT argomenti per ricevere messaggi.Questa operazione supporta le seguenti risorse:
-
mqtt:topicfilter:
— Limita l'accesso in base agli MQTT argomenti in cui un dispositivo client può iscriversi ai messaggi. Replace (Sostituisci)mqttTopicFilter
mqttTopicFilter
con il filtro per argomenti da utilizzare.Questa risorsa supporta i caratteri jolly degli
#
MQTT argomenti+
e degli argomenti. Per ulteriori informazioni, consulta MQTTgli argomenti della Guida per gli AWS IoT Core sviluppatori.Il dispositivo client può sottoscrivere gli esatti filtri per argomento consentiti. Ad esempio, se consenti al dispositivo client di sottoscrivere la
mqtt:topicfilter:client/+/status
risorsa, il dispositivo client può abbonarsiclient/+/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 MQTT tematiche (
mqtt:topic:
) in una politica che specifica l'mqttTopic
mqtt:publish
operazione.È 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
-
/logs/greengrass.log/greengrass/v2
- 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
o/greengrass/v2
C:\greengrass\v2
con il percorso della cartella AWS IoT Greengrass principale.- Linux
-
sudo tail -f
/logs/greengrass.log/greengrass/v2
- Windows (PowerShell)
-
Get-Content
C:\greengrass\v2
\logs\greengrass.log -Tail 10 -Wait
Changelog
La tabella seguente descrive le modifiche apportate a ciascuna versione del componente.
Versione |
Modifiche |
---|---|
2.5.1 |
|
2.5.0 |
|
2.4.5 |
|
2.4.4 |
Versione aggiornata per Greengrass nucleus versione 2.12.0. |
2.4.3 |
Versione aggiornata per la versione 2.11.0 di Greengrass nucleus. |
2.4.2 |
|
2.4.1 |
Versione aggiornata per la versione 2.10.0 di Greengrass nucleus. |
2.4.0 |
|
2.3.2 |
|
2.3.1 |
|
2.3.0 |
avvertimentoQuesta versione non è più disponibile. I miglioramenti di questa versione sono disponibili nelle versioni successive di questo componente. Nuove funzionalità
|
2.2.3 |
Versione aggiornata per la versione 2.8.0 di Greengrass nucleus. |
2.2.2 |
|
2.2.1 |
Versione aggiornata per Greengrass nucleus versione 2.7.0. |
2.2.0 |
|
2.1.0 |
|
2.0.4 |
Versione aggiornata per la versione 2.5.0 di Greengrass nucleus. |
2.0.3 |
|
2.0.2 |
Versione aggiornata per la versione 2.4.0 di Greengrass nucleus. |
2.0.1 |
Versione aggiornata per Greengrass nucleus versione 2.3.0. |
2.0.0 |
Versione iniziale. |