Autenticazione e autorizzazione del dispositivo per AWS IoT Greengrass - AWS IoT Greengrass

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Autenticazione e autorizzazione del dispositivo per AWS IoT Greengrass

I dispositivi negli ambienti AWS IoT Greengrass utilizzano i certificati X.509 per l'autenticazione e le policy AWS IoT per l'autorizzazione. I certificati e le policy consentono ai dispositivi di connettersi in modo sicuro tra loro, AWS IoT Core e AWS IoT Greengrass.

I certificati X.509 sono certificati digitali che usano lo standard di infrastruttura a chiave pubblica X.509 per associare una chiave pubblica all'identità contenuta in un certificato. I certificati X.509 vengono rilasciati da un'entità attendibile denominata autorità di certificazione (CA). L'autorità di certificazione mantiene uno o più certificati speciali chiamati certificati CA, che usa per rilasciare certificati X.509. Solo l'autorità di certificazione ha accesso a certificati CA.

Le policy AWS IoT definiscono l'insieme di operazioni consentite per i dispositivi AWS IoT. In particolare, consentono e negano l'accesso alle operazioni del piano dei dati AWS IoT Core e AWS IoT Greengrass, ad esempio la pubblicazione di messaggi MQTT e il recupero delle copie shadow dei dispositivi.

Tutti i dispositivi richiedono una voce nel Registro di sistema AWS IoT Core e un certificato X.509 attivato con una policy AWS IoT allegata. I dispositivi rientrano in due categorie:

  • Dispositivi core Greengrass

    I dispositivi core Greengrass utilizzano certificati e AWS IoT policy per connettersi a AWS IoT Core e. AWS IoT Greengrass I certificati e le politiche consentono inoltre di AWS IoT Greengrass distribuire componenti e configurazioni sui dispositivi principali.

  • Dispositivi client

    I dispositivi client MQTT utilizzano certificati e policy per la connessione AWS IoT Core e il AWS IoT Greengrass servizio. Ciò consente ai dispositivi client di utilizzare il AWS IoT Greengrass cloud discovery per trovare e connettersi a un dispositivo principale Greengrass. Un dispositivo client utilizza lo stesso certificato per connettersi al servizio AWS IoT Core cloud e ai dispositivi principali. I dispositivi client utilizzano anche le informazioni di rilevamento per l'autenticazione reciproca con il dispositivo principale. Per ulteriori informazioni, consulta Interagisci con dispositivi IoT locali.

Certificati X.509

La comunicazione tra dispositivi principali e dispositivi client e tra dispositivi AWS IoT Core e/o AWS IoT Greengrass deve essere autenticata. Questa autenticazione si basa su certificati di dispositivo X.509 registrati e chiavi crittografiche.

In un ambiente AWS IoT Greengrass, i dispositivi utilizzano certificati con chiavi pubbliche e private per le seguenti connessioni TLS (Transport Layer Security):

  • Il componente AWS IoT client del dispositivo principale Greengrass che si connette a AWS IoT Core e AWS IoT Greengrass tramite Internet.

  • Dispositivi client che si connettono a AWS IoT Greengrass Internet per rilevare i dispositivi principali.

  • Il componente broker MQTT sul core Greengrass si collega ai dispositivi Greengrass del gruppo tramite la rete locale.

AWS IoT Greengrassi dispositivi principali archiviano i certificati nella cartella principale di Greengrass.

Certificati dell'autorità di certificazione (CA)

I dispositivi core e i dispositivi client Greengrass scaricano un certificato CA root utilizzato per l'autenticazione con i servizi AWS IoT Core andAWS IoT Greengrass. Ti consigliamo di utilizzare un certificato di CA root di Amazon Trust Services (ATS), ad esempio Amazon Root CA 1. Per ulteriori informazioni, consulta Certificati emessi da una CA per l'autenticazione del server nella Guida per gli sviluppatori AWS IoT Core.

I dispositivi client scaricano anche un certificato CA del dispositivo principale Greengrass. Utilizzano questo certificato per convalidare il certificato del server MQTT sul dispositivo principale durante l'autenticazione reciproca.

Rotazione dei certificati sul broker MQTT locale

Quando si abilita il supporto per i dispositivi client, i dispositivi core Greengrass generano un certificato server MQTT locale che i dispositivi client utilizzano per l'autenticazione reciproca. Questo certificato è firmato dal certificato CA del dispositivo principale, che il dispositivo principale archivia nel AWS IoT Greengrass cloud. I dispositivi client recuperano il certificato CA del dispositivo principale quando scoprono il dispositivo principale. Utilizzano il certificato CA del dispositivo principale per verificare il certificato del server MQTT del dispositivo principale quando si connettono al dispositivo principale. Il certificato CA del dispositivo principale scade dopo 5 anni.

Per impostazione predefinita, il certificato del server MQTT scade ogni 7 giorni ed è possibile configurare questa durata tra 2 e 10 giorni. Questo periodo limitato si basa sulle best practice in materia di sicurezza. Questa rotazione aiuta a mitigare la minaccia che un utente malintenzionato rubi il certificato del server MQTT e la chiave privata per impersonare il dispositivo principale Greengrass.

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

Policy AWS IoT per operazioni del piano dei dati

Utilizza AWS IoT le policy per autorizzare l'accesso ai piani dati AWS IoT Core eAWS IoT Greengrass. Il piano AWS IoT Core dati fornisce operazioni per dispositivi, utenti e applicazioni. Queste operazioni includono la possibilità di connettersi AWS IoT Core e sottoscrivere argomenti. Il piano AWS IoT Greengrass dati fornisce le operazioni per i dispositivi Greengrass. Per ulteriori informazioni, consulta Operazioni di policy AWS IoT Greengrass V2. Queste operazioni includono la capacità di risolvere le dipendenze dei componenti e scaricare gli artefatti dei componenti pubblici.

Una AWS IoT policy è un documento JSON simile a una policy IAM. Contiene una o più istruzioni delle policy che specificano le proprietà seguenti:

  • Effect. La modalità di accesso, che può essere Allow oDeny.

  • Action. L'elenco delle azioni consentite o negate dalla politica.

  • Resource. L'elenco delle risorse su cui l'azione è consentita o negata.

AWS IoTi criteri supportano i caratteri jolly * come caratteri jolly e trattano i caratteri jolly MQTT (+and#) come stringhe letterali. Per ulteriori informazioni sui caratteri jolly, vedete Uso dei * caratteri jolly negli ARN delle risorse nella Guida per l'utente. AWS Identity and Access Management

Per ulteriori informazioni, consulta Policy AWS IoT e Operazioni di policy AWS IoT nella Guida per gli sviluppatori AWS IoT Core.

Importante

Le variabili Thing Policy (iot:Connection.Thing.*) non sono supportate nelle AWS IoT politiche per i dispositivi principali o nelle operazioni del piano dati Greengrass. Puoi invece utilizzare un carattere jolly che corrisponda a più dispositivi con nomi simili. Ad esempio, puoi specificare MyGreengrassDevice* di MyGreengrassDevice1 abbinare e così via. MyGreengrassDevice2

Nota

AWS IoT Coreconsente di allegare AWS IoT policy a gruppi di oggetti per definire le autorizzazioni per gruppi di dispositivi. Le policy relative ai gruppi di oggetti non consentono l'accesso alle operazioni del piano dati AWS IoT Greengrass. Per consentire a un oggetto di accedere a un'operazione del piano dati AWS IoT Greengrass, aggiungi l'autorizzazione a una policy AWS IoT collegata al certificato dell'oggetto.

Operazioni di policy AWS IoT Greengrass V2

AWS IoT Greengrass V2definisce le seguenti azioni politiche che i dispositivi core e i dispositivi client Greengrass possono utilizzare nelle AWS IoT politiche. Per specificare una risorsa per un'azione politica, utilizzi l'Amazon Resource Name (ARN) della risorsa.

Azioni principali del dispositivo
greengrass:GetComponentVersionArtifact

Concede l'autorizzazione a ottenere un URL predefinito per scaricare un elemento del componente pubblico o un elemento del componente Lambda.

Questa autorizzazione viene valutata quando un dispositivo principale riceve una distribuzione che specifica un componente pubblico o una Lambda con artefatti. Se il dispositivo principale contiene già l'artefatto, non lo scarica nuovamente.

Tipo di risorsa: componentVersion

Formato ARN delle risorse: arn:aws:greengrass:region:account-id:components:component-name:versions:component-version

greengrass:ResolveComponentCandidates

Concede l'autorizzazione a identificare un elenco di componenti che soddisfano i requisiti di componente, versione e piattaforma per una distribuzione. Se i requisiti sono in conflitto o non esistono componenti che soddisfino i requisiti, questa operazione restituisce un errore e la distribuzione non riesce sul dispositivo.

Questa autorizzazione viene valutata quando un dispositivo principale riceve una distribuzione che specifica i componenti.

Tipo di risorsa: Nessuno

Formato ARN delle risorse: *

greengrass:GetDeploymentConfiguration

Concede l'autorizzazione a ottenere un URL predefinito per scaricare un documento di distribuzione di grandi dimensioni.

Questa autorizzazione viene valutata quando un dispositivo principale riceve una distribuzione che specifica un documento di distribuzione più grande di 7 KB (se la distribuzione ha come obiettivo un oggetto) o 31 KB (se la distribuzione è destinata a un gruppo di oggetti). Il documento di distribuzione include le configurazioni dei componenti, le politiche di distribuzione e i metadati di distribuzione. Per ulteriori informazioni, consulta Implementazione AWS IoT Greengrass dei componenti sui dispositivi.

Questa funzionalità è disponibile per la versione 2.3.0 e successive del componente Greengrass nucleus.

Tipo di risorsa: Nessuno

Formato ARN delle risorse: *

greengrass:ListThingGroupsForCoreDevice

Concede l'autorizzazione a ottenere la gerarchia dei gruppi di oggetti di un dispositivo principale.

Questa autorizzazione viene verificata quando un dispositivo principale riceve una distribuzione da. AWS IoT Greengrass Il dispositivo principale utilizza questa azione per identificare se è stato rimosso da un gruppo di oggetti dopo l'ultima distribuzione. Se il dispositivo principale è stato rimosso da un gruppo di oggetti e quel gruppo di oggetti è l'obiettivo di una distribuzione sul dispositivo principale, il dispositivo principale rimuove i componenti installati da quella distribuzione.

Questa funzionalità è utilizzata dalla versione 2.5.0 e successive del componente Greengrass nucleus.

Tipo di risorsa: thing (dispositivo principale)

Formato ARN delle risorse: arn:aws:iot:region:account-id:thing/core-device-thing-name

greengrass:VerifyClientDeviceIdentity

Concede l'autorizzazione a verificare l'identità di un dispositivo client che si connette a un dispositivo principale.

Questa autorizzazione viene valutata quando un dispositivo principale esegue il componente di autenticazione del dispositivo client e riceve una connessione MQTT da un dispositivo client. Il dispositivo client presenta il certificato del dispositivo. AWS IoT Quindi, il dispositivo principale invia il certificato del dispositivo al servizio AWS IoT Greengrass cloud per verificare l'identità del dispositivo client. Per ulteriori informazioni, consulta Interagisci con dispositivi IoT locali.

Tipo di risorsa: Nessuno

Formato ARN delle risorse: *

greengrass:VerifyClientDeviceIoTCertificateAssociation

Concede l'autorizzazione a verificare se un dispositivo client è associato a un AWS IoT certificato.

Questa autorizzazione viene valutata quando un dispositivo principale esegue il componente di autenticazione del dispositivo client e autorizza un dispositivo client a connettersi tramite MQTT. Per ulteriori informazioni, consulta Interagisci con dispositivi IoT locali.

Nota

Affinché un dispositivo principale possa utilizzare questa operazione, il ruolo di servizio Greengrass deve essere associato all'utente Account AWS e consentire l'iot:DescribeCertificateautorizzazione.

Tipo di risorsa: thing (dispositivo client)

Formato ARN delle risorse: arn:aws:iot:region:account-id:thing/client-device-thing-name

greengrass:PutCertificateAuthorities

Concede l'autorizzazione a caricare certificati di autorità di certificazione (CA) che i dispositivi client possono scaricare per verificare il dispositivo principale.

Questa autorizzazione viene valutata quando un dispositivo principale installa ed esegue il componente di autenticazione del dispositivo client. Questo componente crea un'autorità di certificazione locale e utilizza questa operazione per caricare i relativi certificati CA. I dispositivi client scaricano questi certificati CA quando utilizzano l'operazione Discover per trovare i dispositivi principali a cui connettersi. Quando i dispositivi client si connettono a un broker MQTT su un dispositivo principale, utilizzano questi certificati CA per verificare l'identità del dispositivo principale. Per ulteriori informazioni, consulta Interagisci con dispositivi IoT locali.

Tipo di risorsa: Nessuno

Formato ARN: *

greengrass:GetConnectivityInfo

Concede l'autorizzazione a ottenere informazioni sulla connettività per un dispositivo principale. Queste informazioni descrivono come i dispositivi client possono connettersi al dispositivo principale.

Questa autorizzazione viene valutata quando un dispositivo principale installa ed esegue il componente di autenticazione del dispositivo client. Questo componente utilizza le informazioni di connettività per generare certificati CA validi da caricare sul servizio AWS IoT Greengrass cloud con l'operazione. PutCertificateAuthories I dispositivi client utilizzano questi certificati CA per verificare l'identità del dispositivo principale. Per ulteriori informazioni, consulta Interagisci con dispositivi IoT locali.

È inoltre possibile utilizzare questa operazione sul piano di AWS IoT Greengrass controllo per visualizzare le informazioni di connettività per un dispositivo principale. Per ulteriori informazioni, consulta GetConnectivityInfo nella documentazione di riferimento dell'API AWS IoT Greengrass V1.

Tipo di risorsa: thing (dispositivo principale)

Formato ARN delle risorse: arn:aws:iot:region:account-id:thing/core-device-thing-name

greengrass:UpdateConnectivityInfo

Concede l'autorizzazione ad aggiornare le informazioni di connettività per un dispositivo principale. Queste informazioni descrivono come i dispositivi client possono connettersi al dispositivo principale.

Questa autorizzazione viene valutata quando un dispositivo principale esegue il componente del rilevatore IP. Questo componente identifica le informazioni necessarie ai dispositivi client per connettersi al dispositivo principale sulla rete locale. Quindi, questo componente utilizza questa operazione per caricare le informazioni di connettività sul servizio AWS IoT Greengrass cloud, in modo che i dispositivi client possano recuperare queste informazioni con l'operazione Discover. Per ulteriori informazioni, consulta Interagisci con dispositivi IoT locali.

È inoltre possibile utilizzare questa operazione sul piano di AWS IoT Greengrass controllo per aggiornare manualmente le informazioni di connettività per un dispositivo principale. Per ulteriori informazioni, consulta UpdateConnectivityInfo nella documentazione di riferimento dell'API AWS IoT Greengrass V1.

Tipo di risorsa: thing (dispositivo principale)

Formato ARN delle risorse: arn:aws:iot:region:account-id:thing/core-device-thing-name

Azioni del dispositivo client
greengrass:Discover

Concede l'autorizzazione a scoprire le informazioni di connettività per i dispositivi principali a cui un dispositivo client può connettersi. Queste informazioni descrivono come il dispositivo client può connettersi ai dispositivi principali. Un dispositivo client può scoprire solo i dispositivi principali a cui lo hai associato utilizzando l'BatchAssociateClientDeviceWithCoreDeviceoperazione. Per ulteriori informazioni, consulta Interagisci con dispositivi IoT locali.

Tipo di risorsa: thing (dispositivo client)

Formato ARN delle risorse: arn:aws:iot:region:account-id:thing/client-device-thing-name

Aggiorna la politica di un dispositivo principale AWS IoT

Puoi utilizzare le AWS IoT console AWS IoT Greengrass e o l'AWS IoTAPI per visualizzare e aggiornare la AWS IoT politica di un dispositivo principale.

Nota

Se hai utilizzato il programma di installazione del software AWS IoT Greengrass Core per il provisioning delle risorse, il tuo dispositivo principale dispone di una AWS IoT politica che consente l'accesso a tutte le AWS IoT Greengrass azioni ()greengrass:*. Puoi seguire questi passaggi per limitare l'accesso solo alle azioni utilizzate da un dispositivo principale.

  1. Nel menu di navigazione della AWS IoT Greengrassconsole, scegli Dispositivi principali.

  2. Nella pagina Dispositivi principali, scegli il dispositivo principale da aggiornare.

  3. Nella pagina dei dettagli del dispositivo principale, scegli il link all'oggetto del dispositivo principale. Questo link apre la pagina dei dettagli dell'oggetto nella AWS IoT console.

  4. Nella pagina dei dettagli dell'oggetto, scegli Certificati.

  5. Nella scheda Certificati, scegli il certificato attivo dell'oggetto.

  6. Nella pagina dei dettagli del certificato, scegli Politiche.

  7. Nella scheda Politiche, scegli la AWS IoT politica da rivedere e aggiornare. Puoi aggiungere le autorizzazioni richieste a qualsiasi policy allegata al certificato attivo del dispositivo principale.

    Nota

    Se hai utilizzato il programma di installazione del software AWS IoT Greengrass Core per il provisioning delle risorse, hai due AWS IoT politiche. Ti consigliamo di scegliere la politica denominata GreengrassV2IoTThingPolicy, se esiste. I dispositivi principali creati con il programma di installazione rapida utilizzano questo nome di policy per impostazione predefinita. Se aggiungi autorizzazioni a questa politica, le concedi anche ad altri dispositivi principali che utilizzano questa politica.

  8. Nella panoramica della politica, scegli Modifica versione attiva.

  9. Rivedi la politica e aggiungi, rimuovi o modifica le autorizzazioni secondo necessità.

  10. Per impostare una nuova versione della politica come versione attiva, in Stato della versione della politica, seleziona Imposta la versione modificata come versione attiva per questa politica.

  11. Scegli Salva come nuova versione.

  1. Elenca i principi fondamentali del AWS IoT dispositivo principale. I principali degli oggetti possono essere certificati di dispositivo X.509 o altri identificatori. Esegui il comando seguente e sostituiscilo MyGreengrassCorecon il nome del dispositivo principale.

    aws iot list-thing-principals --thing-name MyGreengrassCore

    L'operazione restituisce una risposta che elenca i componenti principali del dispositivo principale.

    { "principals": [ "arn:aws:iot:us-west-2:123456789012:cert/certificateId" ] }
  2. Identifica il certificato attivo del dispositivo principale. Esegui il comando seguente e sostituisci CertificateID con l'ID di ogni certificato del passaggio precedente fino a trovare il certificato attivo. L'ID del certificato è la stringa esadecimale alla fine dell'ARN del certificato. L'--queryargomento specifica di visualizzare solo lo stato del certificato.

    aws iot describe-certificate --certificate-id certificateId --query 'certificateDescription.status'

    L'operazione restituisce lo stato del certificato sotto forma di stringa. Ad esempio, se il certificato è attivo, questa operazione genera un output"ACTIVE".

  3. Elenca le AWS IoT politiche allegate al certificato. Esegui il comando seguente e sostituisci l'ARN del certificato con l'ARN del certificato.

    aws iot list-principal-policies --principal arn:aws:iot:us-west-2:123456789012:cert/certificateId

    L'operazione restituisce una risposta che elenca le AWS IoT politiche allegate al certificato.

    { "policies": [ { "policyName": "GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias" }, { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy" } ] }
  4. Scegli la politica da visualizzare e aggiornare.

    Nota

    Se hai utilizzato il programma di installazione del software AWS IoT Greengrass Core per il provisioning delle risorse, hai due AWS IoT politiche. Ti consigliamo di scegliere la politica denominata GreengrassV2IoTThingPolicy, se esiste. I dispositivi principali creati con il programma di installazione rapida utilizzano questo nome di policy per impostazione predefinita. Se aggiungi autorizzazioni a questa politica, le concedi anche ad altri dispositivi principali che utilizzano questa politica.

  5. Scarica il documento della politica. Esegui il comando seguente e sostituisci GreenGrassV2IoT ThingPolicy con il nome della politica.

    aws iot get-policy --policy-name GreengrassV2IoTThingPolicy

    L'operazione restituisce una risposta che contiene il documento della politica e altre informazioni sulla politica. Il documento di policy è un oggetto JSON serializzato come stringa.

    { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{\ \\"Version\\": \\"2012-10-17\\",\ \\"Statement\\": [\ {\ \\"Effect\\": \\"Allow\\",\ \\"Action\\": [\ \\"iot:Connect\\",\ \\"iot:Publish\\",\ \\"iot:Subscribe\\",\ \\"iot:Receive\\",\ \\"greengrass:*\\"\ ],\ \\"Resource\\": \\"*\\"\ }\ ]\ }", "defaultVersionId": "1", "creationDate": "2021-02-05T16:03:14.098000-08:00", "lastModifiedDate": "2021-02-05T16:03:14.098000-08:00", "generationId": "f19144b798534f52c619d44f771a354f1b957dfa2b850625d9f1d0fde530e75f" }
  6. Utilizzate un convertitore online o un altro strumento per convertire la stringa del documento di policy in un oggetto JSON, quindi salvatela in un file denominato. iot-policy.json

    Ad esempio, se è installato lo strumento jq, è possibile eseguire il comando seguente per ottenere il documento di policy, convertirlo in un oggetto JSON e salvare il documento di policy come oggetto JSON.

    aws iot get-policy --policy-name GreengrassV2IoTThingPolicy --query 'policyDocument' | jq fromjson >> iot-policy.json
  7. Esamina il documento di policy e aggiungi, rimuovi o modifica le autorizzazioni secondo necessità.

    Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per aprire il file.

    nano iot-policy.json

    Al termine, il documento sulla policy potrebbe essere simile alla AWS IoTpolicy minima per i dispositivi principali.

  8. Salva le modifiche come nuova versione della politica. Esegui il comando seguente e sostituisci GreenGrassV2IoT ThingPolicy con il nome della politica.

    aws iot create-policy-version --policy-name GreengrassV2IoTThingPolicy --policy-document file://iot-policy.json --set-as-default

    L'operazione restituisce una risposta simile all'esempio seguente se ha esito positivo.

    { "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{\ \\"Version\\": \\"2012-10-17\\",\ \\"Statement\\": [\ {\ \\"Effect\\": \\"Allow\\",\ \\"Action\\": [\ \\t\\t\\"iot:Connect\\",\ \\t\\t\\"iot:Publish\\",\ \\t\\t\\"iot:Subscribe\\",\ \\t\\t\\"iot:Receive\\",\ \\t\\t\\"greengrass:*\\"\ ],\ \\"Resource\\": \\"*\\"\ }\ ]\ }", "policyVersionId": "2", "isDefaultVersion": true }

AWS IoTPolitica minima per i dispositivi AWS IoT Greengrass V2 principali

Importante

Le versioni successive del componente Greengrass nucleus richiedono autorizzazioni aggiuntive sulla policy minima. AWS IoT Potrebbe essere necessario aggiornare le AWS IoT politiche dei dispositivi principali per concedere autorizzazioni aggiuntive.

  • I dispositivi principali che eseguono Greengrass nucleus v2.5.0 e versioni successive utilizzano l'greengrass:ListThingGroupsForCoreDeviceautorizzazione per disinstallare i componenti quando si rimuove un dispositivo principale da un gruppo di oggetti.

  • I dispositivi principali che eseguono Greengrass nucleus v2.3.0 e versioni successive utilizzano l'greengrass:GetDeploymentConfigurationautorizzazione per supportare documenti di configurazione di distribuzione di grandi dimensioni.

L'esempio di policy seguente include il set di operazioni minime necessarie per supportare le funzionalità di base di Greengrass per il dispositivo core.

  • La Connect policy include il carattere * jolly dopo il nome dell'oggetto del dispositivo principale (ad esempio,). core-device-thing-name* Il dispositivo principale utilizza lo stesso certificato del dispositivo per effettuare più sottoscrizioni simultaneeAWS IoT Core, ma l'ID client in una connessione potrebbe non corrispondere esattamente al nome dell'oggetto del dispositivo principale. Dopo i primi 50 abbonamenti, il dispositivo principale utilizza core-device-thing-name#number come ID client, dove number aumenta ogni 50 abbonamenti aggiuntivi. Ad esempio, quando un dispositivo principale denominato MyCoreDevice crea 150 abbonamenti simultanei, utilizza i seguenti ID client:

    • Abbonamenti da 1 a 50: MyCoreDevice

    • Abbonamenti da 51 a 100: MyCoreDevice#2

    • Abbonamenti da 101 a 150: MyCoreDevice#3

    La wildcard consente al dispositivo principale di connettersi quando utilizza questi ID client con un suffisso.

  • La policy elenca gli argomenti MQTT e i filtri di argomento su cui il dispositivo core può pubblicare messaggi, sottoscrivere e ricevere messaggi, inclusi gli argomenti utilizzati per lo stato shadow. Per supportare lo scambio di messaggi tra AWS IoT Core i componenti Greengrass e i dispositivi client, specifica gli argomenti e i filtri degli argomenti che desideri consentire. Per ulteriori informazioni, consulta Esempi di pubblicazione/sottoscrizione a policy nella Guida per gli sviluppatori AWS IoT Core.

  • La politica concede l'autorizzazione alla pubblicazione dei dati di telemetria nel seguente argomento.

    $aws/things/core-device-thing-name/greengrass/health/json

    Puoi rimuovere questa autorizzazione per i dispositivi principali in cui disabiliti la telemetria. Per ulteriori informazioni, consulta Raccogli dati di telemetria sanitaria del sistema dai dispositivi principali AWS IoT Greengrass.

  • La policy concede l'autorizzazione ad assumere un ruolo IAM tramite un alias di ruolo. AWS IoT Il dispositivo principale utilizza questo ruolo, chiamato ruolo di scambio di token, per acquisire AWS credenziali che può utilizzare per autenticare le richieste. AWS Per ulteriori informazioni, consulta Autorizza i dispositivi principali a interagire con i servizi AWS.

    Quando installi il software AWS IoT Greengrass Core, crei e alleghi una seconda AWS IoT policy che include solo questa autorizzazione. Se includi questa autorizzazione nella AWS IoT politica principale del tuo dispositivo principale, puoi scollegare ed eliminare l'altra AWS IoT politica.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": "arn:aws:iot:region:account-id:client/core-device-thing-name*" }, { "Effect": "Allow", "Action": [ "iot:Receive", "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/greengrass/health/json", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/greengrassv2/health/json", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/jobs/*", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/shadow/*" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name/jobs/*", "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name/shadow/*" ] }, { "Effect": "Allow", "Action": "iot:AssumeRoleWithCertificate", "Resource": "arn:aws:iot:region:account-id:rolealias/token-exchange-role-alias-name" }, { "Effect": "Allow", "Action": [ "greengrass:GetComponentVersionArtifact", "greengrass:ResolveComponentCandidates", "greengrass:GetDeploymentConfiguration", "greengrass:ListThingGroupsForCoreDevice" ], "Resource": "*" } ] }

AWS IoTPolitica minima per supportare i dispositivi client

La seguente policy di esempio include il set minimo di azioni necessarie per supportare l'interazione con i dispositivi client su un dispositivo principale. Per supportare i dispositivi client, un dispositivo principale deve disporre delle autorizzazioni previste in questa AWS IoT politica oltre alla AWS IoTpolitica minima per il funzionamento di base.

  • La policy consente al dispositivo principale di aggiornare le proprie informazioni di connettività. Questa autorizzazione (greengrass:UpdateConnectivityInfo) è richiesta solo se si distribuisce il componente del rilevatore IP sul dispositivo principale.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name-gci/shadow/get" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name-gci/shadow/update/delta", "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name-gci/shadow/get/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name-gci/shadow/update/delta", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name-gci/shadow/get/accepted" ] }, { "Effect": "Allow", "Action": [ "greengrass:PutCertificateAuthorities", "greengrass:VerifyClientDeviceIdentity" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "greengrass:VerifyClientDeviceIoTCertificateAssociation" ], "Resource": "arn:aws:iot:region:account-id:thing/*" }, { "Effect": "Allow", "Action": [ "greengrass:GetConnectivityInfo", "greengrass:UpdateConnectivityInfo" ], "Resource": [ "arn:aws:iot:region:account-id:thing/core-device-thing-name" ] } ] }

AWS IoTPolicy minima per i dispositivi client

La seguente politica di esempio include il set minimo di azioni necessarie affinché un dispositivo client rilevi i dispositivi principali su cui si connettono e comunicano tramite MQTT. La AWS IoT politica del dispositivo client deve includere l'greengrass:Discoverazione per consentire al dispositivo di scoprire le informazioni di connettività per i dispositivi core Greengrass associati. Nella Resource sezione, specifica l'Amazon Resource Name (ARN) del dispositivo client, non l'ARN del dispositivo principale Greengrass.

  • La policy consente la comunicazione su tutti gli argomenti MQTT. Per seguire le migliori pratiche di sicurezza, limitate le iot:Publish autorizzazioni e iot:Receive le autorizzazioni al set minimo di argomenti richiesti da un dispositivo client per il vostro caso d'uso. iot:Subscribe

  • La policy consente al dispositivo di scoprire i dispositivi principali per qualsiasi AWS IoT cosa. Per seguire le migliori pratiche di sicurezza, limita l'greengrass:Discoverautorizzazione all'AWS IoToggetto del dispositivo client o a un carattere jolly che corrisponda a un insieme di AWS IoT elementi.

    Importante

    Le variabili Thing Policy (iot:Connection.Thing.*) non sono supportate nelle AWS IoT politiche per i dispositivi principali o nelle operazioni del piano dati Greengrass. Puoi invece utilizzare un carattere jolly che corrisponda a più dispositivi con nomi simili. Ad esempio, puoi specificare MyGreengrassDevice* di MyGreengrassDevice1 abbinare e così via. MyGreengrassDevice2

  • La AWS IoT politica di un dispositivo client in genere non richiede autorizzazioni o iot:DeleteThingShadow azioni iot:GetThingShadowiot:UpdateThingShadow, poiché il dispositivo principale Greengrass gestisce le operazioni di sincronizzazione degli shadow per i dispositivi client. Per consentire al dispositivo principale di gestire le ombre dei dispositivi client, verifica che la AWS IoT politica del dispositivo principale consenta queste azioni e che la Resource sezione includa gli ARN dei dispositivi client.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account-id:topic/*" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topicfilter/*" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account-id:topic/*" ] }, { "Effect": "Allow", "Action": [ "greengrass:Discover" ], "Resource": [ "arn:aws:iot:region:account-id:thing/*" ] } ] }