Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Provisioning di dispositivi che non dispongono di certificati dispositivo mediante il provisioning del parco istanze dispositivi

Modalità Focus
Provisioning di dispositivi che non dispongono di certificati dispositivo mediante il provisioning del parco istanze dispositivi - AWS IoT Core

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

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

Utilizzando AWS IoT Fleet Provisioning, AWS IoT puoi generare e fornire in modo sicuro certificati e chiavi private ai tuoi dispositivi quando si connettono AWS IoT per la prima volta. AWS IoT fornisce certificati client firmati dall'autorità di certificazione Amazon Root (CA).

Esistono due modi per utilizzare il provisioning del parco istanze dispositivi:

Provisioning tramite attestazione

I dispositivi possono essere fabbricati con un certificato di attestazione di provisioning e una chiave privata (che sono credenziali per scopi speciali) incorporati in essi. Se questi certificati sono registrati presso AWS IoT, il servizio può scambiarli con certificati di dispositivo univoci che il dispositivo può utilizzare per le normali operazioni. Il processo include le seguenti fasi:

Prima di distribuire il dispositivo
  1. Chiamare CreateProvisioningTemplate per creare un modello di provisioning. Questa API restituisce un ARN del modello. Per ulteriori informazioni, consulta API MQTT di provisioning del dispositivo.

    Puoi anche creare un modello di provisioning del parco veicoli nella AWS IoT console.

    1. Nel pannello di navigazione, scegli Connect (Connetti), quindi Fleet provisioning templates (Modelli di provisioning del parco istanze).

    2. Scegli Create template (Crea modello) e segui le istruzioni.

  2. Creazione di certificati e chiavi private associate da utilizzare come certificati delle attestazioni di provisioning.

  3. Registra questi certificati AWS IoT e associa una policy IoT che ne limiti l'uso. La policy di esempio IoT seguente limita l'uso del certificato associato a questa policy ai dispositivi di provisioning.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iot:Connect"], "Resource": "*" }, { "Effect": "Allow", "Action": ["iot:Publish","iot:Receive"], "Resource": [ "arn:aws:iot:aws-region:aws-account-id:topic/$aws/certificates/create/*", "arn:aws:iot:aws-region:aws-account-id:topic/$aws/provisioning-templates/templateName/provision/*" ] }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:aws:iot:aws-region:aws-account-id:topicfilter/$aws/certificates/create/*", "arn:aws:iot:aws-region:aws-account-id:topicfilter/$aws/provisioning-templates/templateName/provision/*" ] } ] }
  4. Concedi al AWS IoT servizio l'autorizzazione a creare o aggiornare risorse IoT come oggetti e certificati nel tuo account durante il provisioning dei dispositivi. A tale scopo, collega la policy AWSIoTThingsRegistration gestita a un ruolo IAM (chiamato ruolo di provisioning) che si fida del responsabile del servizio. AWS IoT

  5. Il dispositivo viene prodotto con il certificato di attestazione di provisioning integrato in modo sicuro.

Il dispositivo è ora pronto per essere distribuito dove verrà installato per l'uso.

Importante

Le chiavi private dell'attestazione di provisioning devono essere protette in ogni momento, anche sul dispositivo. Ti consigliamo di utilizzare AWS IoT CloudWatch metriche e log per monitorare eventuali indicazioni di uso improprio. Se si rileva un uso improprio, disattivare il certificato di attestazione del provisioning in modo che non possa essere utilizzato per il provisioning del dispositivo.

Inizializzazione del dispositivo per l'utilizzo
  1. Il dispositivo utilizza il AWS IoT SDK per dispositivi, SDK per dispositivi mobili e AWS IoT client per dispositivi per connettersi e autenticarsi AWS IoT utilizzando il certificato di provisioning claim installato sul dispositivo.

    Nota

    Per sicurezza, il valore certificateOwnershipToken restituito da CreateCertificateFromCsr e da CreateKeysAndCertificate scade dopo un'ora. RegisterThing deve essere chiamato prima della scadenza di certificateOwnershipToken. Se il certificato creato da CreateCertificateFromCsr o CreateKeysAndCertificate non è stato attivato e non è stato collegato a una policy o a un oggetto entro la scadenza del token, il certificato viene eliminato. Se il token scade, il dispositivo può chiamare nuovamente CreateCertificateFromCsr o CreateKeysAndCertificate per generare un nuovo certificato.

  2. Il dispositivo ottiene un certificato permanente e una chiave privata utilizzando una di queste opzioni. Il dispositivo utilizzerà il certificato e la chiave per tutte le future autenticazioni con AWS IoT.

    1. Chiama CreateKeysAndCertificateper creare un nuovo certificato e una chiave privata utilizzando l'autorità di AWS certificazione.

      Or

    2. Chiama CreateCertificateFromCsr per generare un certificato da una richiesta di firma del certificato che mantenga la propria chiave privata protetta.

  3. Dal dispositivo, richiamare RegisterThing per registrare il dispositivo con AWS IoT e creare risorse cloud.

    Il servizio di provisioning del parco istanze utilizza un modello di provisioning per definire e creare risorse cloud, come oggetti IoT. Il modello può specificare gli attributi e i gruppi a cui appartiene l'oggetto. I gruppi di oggetti devono esistere prima di poter aggiungere il nuovo oggetto.

  4. Dopo aver salvato il certificato permanente sul dispositivo, il dispositivo deve disconnettersi dalla sessione avviata con il certificato di attestazione di provisioning e riconnettersi utilizzando il certificato permanente.

Il dispositivo è ora pronto per comunicare normalmente con AWS IoT.

Provisioning tramite utente attendibile

In molti casi, un dispositivo si connette AWS IoT per la prima volta quando un utente affidabile, ad esempio un utente finale o un tecnico di installazione, utilizza un'app mobile per configurare il dispositivo nella posizione in cui è installato.

Importante

Per eseguire questa procedura, è necessario gestire l'accesso e l'autorizzazione dell'utente attendibile. Un modo per eseguire questa operazione consiste nel fornire e gestire un account per l'utente attendibile che lo autentichi e conceda l'accesso alle funzionalità e alle API AWS IoT necessarie per eseguire questa procedura.

Prima di distribuire il dispositivo
  1. Chiama CreateProvisioningTemplate per creare un modello di provisioning e restituire i relativi templateArn e templateName.

  2. Creare un ruolo IAM utilizzato da un utente attendibile per avviare il processo di provisioning. Il modello di provisioning consente solo all'utente di eseguire il provisioning di un dispositivo. Per esempio:

    { "Effect": "Allow", "Action": [ "iot:CreateProvisioningClaim" ], "Resource": [ "arn:aws:iot:aws-region:aws-account-id:provisioningtemplate/templateName" ] }
  3. Concedi al AWS IoT servizio l'autorizzazione a creare o aggiornare risorse IoT, come oggetti e certificati nel tuo account durante il provisioning dei dispositivi. A tale scopo, collega la policy AWSIoTThingsRegistration gestita a un ruolo IAM (chiamato ruolo di provisioning) che si fida del responsabile del servizio. AWS IoT

  4. Fornisci i mezzi per identificare i tuoi utenti fidati, ad esempio fornendo loro un account in grado di autenticarli e autorizzare le loro interazioni con le operazioni AWS API necessarie per registrare i loro dispositivi.

Inizializzazione del dispositivo per l'utilizzo
  1. Un utente attendibile accede all'app per dispositivi mobili o al servizio Web di provisioning.

  2. L'applicazione per dispositivi mobili o l'applicazione Web utilizza il ruolo IAM e chiama CreateProvisioningClaim per ottenere un certificato di attestazione di provisioning temporaneo da AWS IoT.

    Nota

    Per motivi di sicurezza, il certificato di attestazione di provisioning temporaneo restituito da CreateProvisioningClaim è valido solo per cinque minuti. Le fasi seguenti devono restituire un certificato valido prima della scadenza del certificato di attestazione di provisioning temporaneo. I certificati di attestazione di provisioning temporaneo non vengono visualizzati nell'elenco dei certificati dell'account.

  3. L'app per dispositivi mobili o l'applicazione Web fornisce al dispositivo il certificato di attestazione di provisioning temporaneo insieme a tutte le informazioni di configurazione necessarie, ad esempio le credenziali Wi-Fi.

  4. Il dispositivo utilizza il certificato di attestazione di provisioning temporaneo per connettersi a AWS IoT , utilizzando AWS IoT SDK per dispositivi, SDK per dispositivi mobili e AWS IoT client per dispositivi.

  5. Il dispositivo ottiene un certificato permanente e una chiave privata utilizzando una di queste opzioni entro cinque minuti dalla connessione al certificato di richiesta AWS IoT di approvvigionamento temporaneo. Il dispositivo utilizzerà il certificato e la chiave restituiti da queste opzioni per tutte le future autenticazioni con AWS IoT.

    1. Chiama CreateKeysAndCertificateper creare un nuovo certificato e una nuova chiave privata utilizzando l'autorità di AWS certificazione.

      Or

    2. Chiama CreateCertificateFromCsr per generare un certificato da una richiesta di firma del certificato che mantenga la propria chiave privata protetta.

    Nota

    Ricorda CreateKeysAndCertificateo CreateCertificateFromCsrdevi restituire un certificato valido entro cinque minuti dalla connessione al AWS IoT certificato di richiesta di approvvigionamento temporaneo.

  6. Il dispositivo chiama RegisterThingper registrare il dispositivo AWS IoT e creare risorse cloud.

    Il servizio di provisioning del parco istanze utilizza un modello di provisioning per definire e creare risorse cloud, come oggetti IoT. Il modello può specificare gli attributi e i gruppi a cui appartiene l'oggetto. I gruppi di oggetti devono esistere prima di poter aggiungere il nuovo oggetto.

  7. Dopo aver salvato il certificato permanente sul dispositivo, il dispositivo deve disconnettersi dalla sessione avviata con il certificato di attestazione di provisioning temporaneo e riconnettersi utilizzando il certificato permanente.

Il dispositivo è ora pronto per comunicare normalmente con AWS IoT.

Utilizzo degli hook di pre-provisioning con l'interfaccia a riga di comando AWS

La procedura seguente crea un modello di provisioning con hook di pre-provisioning. La funzione Lambda utilizzata qui è un esempio che può essere modificato.

Per creare e applicare un hook di pre-provisioning a un modello di provisioning
  1. Creare una funzione Lambda con input e output definiti. Le funzioni Lambda sono altamente personalizzabili. allowProvisioning e parameterOverrides sono necessari per la creazione di hook pre-provisioning. Per ulteriori informazioni sulla creazione di funzioni Lambda, consulta Utilizzo AWS Lambda con l'interfaccia a riga di AWS comando.

    Di seguito è riportato un esempio di output di una funzione Lambda:

    { "allowProvisioning": True, "parameterOverrides": { "incomingKey0": "incomingValue0", "incomingKey1": "incomingValue1" } }
  2. AWS IoT utilizza politiche basate sulle risorse per chiamare Lambda, quindi è necessario autorizzare la chiamata AWS IoT alla funzione Lambda.

    Importante

    Assicurati di includere il valore source-arn o source-account nelle chiavi del contesto delle condizioni globali delle policy associate all'operazione Lambda per impedire la manipolazione delle autorizzazioni. Per ulteriori informazioni, consulta Prevenzione del confused deputy tra servizi.

    Di seguito è riportato un esempio che utilizza add-permission per concedere l'autorizzazione IoT all'utente Lambda.

    aws lambda add-permission \ --function-name myLambdaFunction \ --statement-id iot-permission \ --action lambda:InvokeFunction \ --principal iot.amazonaws.com
  3. Aggiungere un hook di pre-provisioning a un modello utilizzando il comando create-provisioning-template o update-provisioning-template.

    Nell'esempio dell'interfaccia a riga di comando seguente viene utilizzato create-provisioning-template per creare un modello di provisioning con hook di pre-provisioning:

    aws iot create-provisioning-template \ --template-name myTemplate \ --provisioning-role-arn arn:aws:iam:us-east-1:1234564789012:role/myRole \ --template-body file://template.json \ --pre-provisioning-hook file://hooks.json

    L'output di questo comando è simile al seguente:

    { "templateArn": "arn:aws:iot:us-east-1:1234564789012:provisioningtemplate/myTemplate", "defaultVersionId": 1, "templateName": myTemplate }

    È in oltre possibile caricare un parametro da un file invece di digitarlo per intero come valore di parametro della riga di comando per risparmiare tempo. Per ulteriori informazioni, consulta Caricamento dei parametri da un file AWS CLI. Di seguito è riportato il parametro template in formato JSON espanso:

    { "Parameters" : { "DeviceLocation": { "Type": "String" } }, "Mappings": { "LocationTable": { "Seattle": { "LocationUrl": "https://example.aws" } } }, "Resources" : { "thing" : { "Type" : "AWS::IoT::Thing", "Properties" : { "AttributePayload" : { "version" : "v1", "serialNumber" : "serialNumber" }, "ThingName" : {"Fn::Join":["",["ThingPrefix_",{"Ref":"SerialNumber"}]]}, "ThingTypeName" : {"Fn::Join":["",["ThingTypePrefix_",{"Ref":"SerialNumber"}]]}, "ThingGroups" : ["widgets", "WA"], "BillingGroup": "BillingGroup" }, "OverrideSettings" : { "AttributePayload" : "MERGE", "ThingTypeName" : "REPLACE", "ThingGroups" : "DO_NOTHING" } }, "certificate" : { "Type" : "AWS::IoT::Certificate", "Properties" : { "CertificateId": {"Ref": "AWS::IoT::Certificate::Id"}, "Status" : "Active" } }, "policy" : { "Type" : "AWS::IoT::Policy", "Properties" : { "PolicyDocument" : { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action":["iot:Publish"], "Resource": ["arn:aws:iot:us-east-1:504350838278:topic/foo/bar"] }] } } } }, "DeviceConfiguration": { "FallbackUrl": "https://www.example.com/test-site", "LocationUrl": { "Fn::FindInMap": ["LocationTable",{"Ref": "DeviceLocation"}, "LocationUrl"]} } }

    Di seguito è riportato il parametro pre-provisioning-hook in formato JSON espanso:

    { "targetArn" : "arn:aws:lambda:us-east-1:765219403047:function:pre_provisioning_test", "payloadVersion" : "2020-04-01" }
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.