

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

# Installa il software AWS IoT Greengrass Core con il provisioning AWS IoT della flotta
<a name="fleet-provisioning"></a>

Questa funzionalità è disponibile per la versione 2.4.0 e successive del componente [Greengrass](greengrass-nucleus-component.md) nucleus.

Con AWS IoT Fleet Provisioning, è possibile AWS IoT configurare la generazione e la distribuzione sicura di certificati e chiavi private X.509 ai dispositivi quando si connettono per la prima volta. AWS IoT AWS IoT fornisce certificati client firmati dall'autorità di certificazione Amazon Root (CA). Puoi anche configurare AWS IoT per specificare gruppi di oggetti, tipi di oggetti e autorizzazioni per i dispositivi core Greengrass di cui effettui il provisioning con il fleet provisioning. È possibile definire un *modello di provisioning per definire il modo AWS IoT in cui viene effettuato* il provisioning di ciascun dispositivo. Il modello di provisioning specifica l'oggetto, la policy e le risorse dei certificati da creare per un dispositivo durante il provisioning. *Per ulteriori informazioni, consulta [Provisioning templates](https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html) nella Developer Guide.AWS IoT Core *

AWS IoT Greengrass fornisce un plug-in per il provisioning del AWS IoT parco veicoli che è possibile utilizzare per installare il software AWS IoT Greengrass Core utilizzando AWS le risorse create dal AWS IoT fleet provisioning. Il plug-in per il provisioning della flotta utilizza il *provisioning* by claim. I dispositivi utilizzano un certificato di richiesta di provisioning e una chiave privata per ottenere un certificato e una chiave privata univoci del dispositivo X.509 da utilizzare per le normali operazioni. È possibile incorporare il certificato di richiesta e la chiave privata in ogni dispositivo durante la produzione, in modo che i clienti possano attivare i dispositivi in un secondo momento, quando ogni dispositivo sarà online. Puoi utilizzare lo stesso certificato di richiesta e la stessa chiave privata per più dispositivi. Per ulteriori informazioni, consulta [Provisioning by claim](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#claim-based) nella *AWS IoT Core Developer Guide*.

**Nota**  
Il plug-in fleet provisioning attualmente non supporta l'archiviazione di chiavi private e file di certificato in un modulo di sicurezza hardware (HSM). Per utilizzare un HSM, [installa il software AWS IoT Greengrass Core con](manual-installation.md) provisioning manuale.

Per installare il software AWS IoT Greengrass Core con il provisioning AWS IoT della flotta, è necessario configurare le risorse nel dispositivo AWS IoT utilizzato per Account AWS il provisioning dei dispositivi core Greengrass. Queste risorse includono un modello di provisioning, certificati di richiesta e un ruolo IAM per [lo scambio di token](device-service-role.md). Dopo aver creato queste risorse, puoi riutilizzarle per effettuare il provisioning di più dispositivi principali in una flotta. Per ulteriori informazioni, consulta [Configura il provisioning AWS IoT della flotta per i dispositivi core Greengrass](fleet-provisioning-setup.md).

**Importante**  <a name="install-greengrass-core-requirements-note"></a>
Prima di scaricare il software AWS IoT Greengrass Core, verificate che il dispositivo principale soddisfi i [requisiti](greengrass-nucleus-component.md#greengrass-v2-requirements) per installare ed eseguire il software AWS IoT Greengrass Core v2.0.

**Topics**
+ [Prerequisiti](#fleet-provisioning-prerequisites)
+ [Recupera AWS IoT gli endpoint](#retrieve-iot-endpoints)
+ [Scarica i certificati sul dispositivo](#download-claim-certificates)
+ [Configura l'ambiente del dispositivo](#set-up-device-environment)
+ [Scarica il software Core AWS IoT Greengrass](#download-greengrass-core-v2)
+ [Scarica il plug-in per il provisioning AWS IoT della flotta](#download-fleet-provisioning-plugin)
+ [Installa il software AWS IoT Greengrass Core](#run-greengrass-core-v2-installer-fleet)
+ [Configura il provisioning AWS IoT della flotta per i dispositivi core Greengrass](fleet-provisioning-setup.md)
+ [Configurare il plug-in per il provisioning AWS IoT della flotta](fleet-provisioning-configuration.md)
+ [AWS IoT log delle modifiche del plugin per il provisioning della flotta](fleet-provisioning-changelog.md)

## Prerequisiti
<a name="fleet-provisioning-prerequisites"></a>

Per installare il software AWS IoT Greengrass Core con il provisioning AWS IoT della flotta, devi prima [configurare il provisioning del AWS IoT parco veicoli per i dispositivi core Greengrass](fleet-provisioning-setup.md). Dopo aver completato questi passaggi una volta, puoi utilizzare il provisioning del parco veicoli per installare il software AWS IoT Greengrass Core su un numero qualsiasi di dispositivi.

## Recupera AWS IoT gli endpoint
<a name="retrieve-iot-endpoints"></a>

Ottieni gli AWS IoT endpoint per te e salvali per Account AWS utilizzarli in un secondo momento. Il tuo dispositivo utilizza questi endpoint per connettersi a. AWS IoT Esegui questa operazione:

1. Ottieni l'endpoint di AWS IoT dati per il tuo. Account AWS

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.

   ```
   {
     "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
   }
   ```

1. Ottieni l'endpoint delle AWS IoT credenziali per il tuo. Account AWS

   ```
   aws iot describe-endpoint --endpoint-type iot:CredentialProvider
   ```

   La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.

   ```
   {
     "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
   }
   ```

## Scarica i certificati sul dispositivo
<a name="download-claim-certificates"></a>

Il dispositivo utilizza un certificato di richiesta e una chiave privata per autenticare la richiesta di fornitura di AWS risorse e acquisire un certificato del dispositivo X.509. È possibile incorporare il certificato di richiesta e la chiave privata nel dispositivo durante la produzione oppure copiare il certificato e la chiave sul dispositivo durante l'installazione. In questa sezione, copi il certificato di richiesta e la chiave privata sul dispositivo. Puoi anche scaricare il certificato Amazon Root Certificate Authority (CA) sul dispositivo.

**Importante**  <a name="installation-fleet-provisioning-secure-claim-private-keys"></a>
Il provisioning dichiara che le chiavi private devono essere protette in ogni momento, anche sui dispositivi core Greengrass. Ti consigliamo di utilizzare i CloudWatch parametri e i log di Amazon per monitorare eventuali indicazioni di uso improprio, come l'uso non autorizzato del certificato di attestazione per il provisioning dei dispositivi. Se rilevi un uso improprio, disattiva il certificato di richiesta di approvvigionamento in modo che non possa essere utilizzato per il provisioning dei dispositivi. *Per ulteriori informazioni, consulta [Monitoring AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) nella Developer Guide.AWS IoT Core *  
Per aiutarti a gestire meglio il numero di dispositivi e i dispositivi che si registrano automaticamente nel tuo sistema Account AWS, puoi specificare un hook di pre-provisioning quando crei un modello di provisioning del parco veicoli. Un hook di pre-provisioning è una AWS Lambda funzione che convalida i parametri del modello forniti dai dispositivi durante la registrazione. Ad esempio, è possibile creare un hook di pre-provisioning che controlli l'ID di un dispositivo confrontandolo con un database per verificare che il dispositivo disponga dell'autorizzazione al provisioning. *Per ulteriori informazioni, consulta [Pre-provisioning hook](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) nella Developer Guide.AWS IoT Core *

**Per scaricare i certificati di richiesta sul dispositivo**

1. Copia il certificato di richiesta e la chiave privata sul dispositivo. Se SSH e SCP sono abilitati sul computer di sviluppo e sul dispositivo, puoi utilizzare il `scp` comando sul tuo computer di sviluppo per trasferire il certificato di richiesta e la chiave privata. Il comando di esempio seguente trasferisce questi file in una cartella denominata `claim-certs` sul computer di sviluppo al dispositivo. Sostituiscilo *device-ip-address* con l'indirizzo IP del tuo dispositivo.

   ```
   scp -r claim-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Crea la cartella principale Greengrass sul dispositivo. Successivamente installerai il software AWS IoT Greengrass Core in questa cartella.
**Nota**  
In Windows esiste un limite di lunghezza del percorso di 260 caratteri. Se usi Windows, usa una cartella principale come `C:\greengrass\v2` o `D:\greengrass\v2` per mantenere i percorsi dei componenti Greengrass al di sotto del limite di 260 caratteri.

------
#### [ Linux or Unix ]
   + Sostituisci `/greengrass/v2` con la cartella da usare.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Sostituisci *C:\$1greengrass\$1v2* con la cartella da usare.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + Sostituisci *C:\$1greengrass\$1v2* con la cartella da usare.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Solo Linux) Imposta le autorizzazioni del genitore della cartella principale di Greengrass.
   + Sostituiscilo */greengrass* con quello principale della cartella principale.

   ```
   sudo chmod 755 /greengrass
   ```

1. Sposta i certificati di reclamo nella cartella principale di Greengrass.
   + Sostituisci `/greengrass/v2` o *C:\$1greengrass\$1v2* con la cartella principale di Greengrass.

------
#### [ Linux or Unix ]

   ```
   sudo mv ~/claim-certs /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   move %USERPROFILE%\claim-certs C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   mv -Path ~\claim-certs -Destination C:\greengrass\v2
   ```

------

1. <a name="installation-download-root-ca-certificate"></a>Scarica il certificato Amazon Root Certificate Authority (CA). AWS IoT per impostazione predefinita, i certificati sono associati al certificato CA root di Amazon.

------
#### [ Linux or Unix ]

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

## Configura l'ambiente del dispositivo
<a name="set-up-device-environment"></a>

Segui i passaggi di questa sezione per configurare un dispositivo Linux o Windows da utilizzare come dispositivo AWS IoT Greengrass principale.

### Configura un dispositivo Linux
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Per configurare un dispositivo Linux per AWS IoT Greengrass V2**

1. Installa il runtime Java, necessario per l'esecuzione del software AWS IoT Greengrass Core. Ti consigliamo di utilizzare le versioni di supporto a lungo termine di [Amazon Corretto](https://aws.amazon.com/corretto/) o [OpenJDK](https://openjdk.java.net/). È richiesta la versione 8 o successiva. I seguenti comandi mostrano come installare OpenJDK sul tuo dispositivo.
   + Per le distribuzioni basate su Debian o basate su Ubuntuu:

     ```
     sudo apt install default-jdk
     ```
   + Per le distribuzioni basate su Red Hat:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Per Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Per Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Al termine dell'installazione, esegui il comando seguente per verificare che Java funzioni sul tuo dispositivo Linux.

   ```
   java -version
   ```

   Il comando stampa la versione di Java in esecuzione sul dispositivo. Ad esempio, su una distribuzione basata su Debian, l'output potrebbe essere simile all'esempio seguente.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Facoltativo) Crea l'utente e il gruppo di sistema predefiniti che eseguono i componenti sul dispositivo. Puoi anche scegliere di lasciare che il programma di installazione del software AWS IoT Greengrass Core crei questo utente e gruppo durante l'installazione con l'argomento `--component-default-user` installer. Per ulteriori informazioni, consulta [Argomenti dell'installatore](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Verificate che l'utente che esegue il software AWS IoT Greengrass Core (in genere`root`) sia autorizzato a funzionare `sudo` con qualsiasi utente e gruppo.

   1. Eseguite il comando seguente per aprire il `/etc/sudoers` file.

      ```
      sudo visudo
      ```

   1. Verificate che l'autorizzazione per l'utente sia simile all'esempio seguente.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. **(Facoltativo) Per [eseguire funzioni Lambda containerizzate](run-lambda-functions.md), è necessario abilitare [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1 e abilitare e montare i cgroup di memoria e dispositivi.** Se non intendi eseguire funzioni Lambda containerizzate, puoi saltare questo passaggio.

   Per abilitare queste opzioni di cgroups, avvia il dispositivo con i seguenti parametri del kernel Linux.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Per informazioni sulla visualizzazione e l'impostazione dei parametri del kernel per il tuo dispositivo, consulta la documentazione del tuo sistema operativo e del boot loader. Segui le istruzioni per impostare in modo permanente i parametri del kernel.

1. Installa tutte le altre dipendenze richieste sul tuo dispositivo come indicato dall'elenco dei requisiti in. [Requisiti per il dispositivo](greengrass-nucleus-component.md#greengrass-v2-requirements)

### Configura un dispositivo Windows
<a name="set-up-windows-device-environment"></a>

**Nota**  
Questa funzionalità è disponibile per la versione 2.5.0 e successive del componente [Greengrass](greengrass-nucleus-component.md) nucleus.<a name="set-up-windows-device-environment-procedure"></a>

**Per configurare un dispositivo Windows per AWS IoT Greengrass V2**

1. Installa il runtime Java, necessario per l'esecuzione del software AWS IoT Greengrass Core. Ti consigliamo di utilizzare le versioni di supporto a lungo termine di [Amazon Corretto](https://aws.amazon.com/corretto/) o [OpenJDK](https://openjdk.java.net/). È richiesta la versione 8 o successiva.

1. Controlla se Java è disponibile nella variabile di sistema [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) e aggiungilo in caso contrario. L' LocalSystem account esegue il software AWS IoT Greengrass Core, quindi è necessario aggiungere Java alla variabile di sistema PATH anziché alla variabile utente PATH per l'utente. Esegui questa operazione:

   1. Premi il tasto Windows per aprire il menu di avvio.

   1. Digita **environment variables** per cercare le opzioni di sistema dal menu di avvio.

   1. Nei risultati della ricerca del menu di avvio, scegli **Modifica le variabili di ambiente di sistema** per aprire la finestra delle **proprietà del sistema**.

   1. Scegli **Variabili di ambiente...** per aprire la finestra **Variabili d'ambiente**.

   1. In **Variabili di sistema**, seleziona **Percorso**, quindi scegli **Modifica**. Nella finestra **Modifica variabile di ambiente**, puoi visualizzare ogni percorso su una riga separata.

   1. Controlla se è presente il percorso della `bin` cartella di installazione di Java. Il percorso potrebbe essere simile all'esempio seguente.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Se la `bin` cartella di installazione Java non è presente in **Path**, scegliete **Nuovo** per aggiungerla, quindi scegliete **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Aprite il prompt dei comandi di Windows (`cmd.exe`) come amministratore.

1. <a name="set-up-windows-device-environment-create"></a>Crea l'utente predefinito nell' LocalSystem account sul dispositivo Windows. Sostituiscilo *password* con una password sicura.

   ```
   net user /add ggc_user password
   ```
**Suggerimento**  <a name="windows-password-expiration-tip"></a>
A seconda della configurazione di Windows, la password dell'utente potrebbe essere impostata per scadere in date future. Per garantire che le tue applicazioni Greengrass continuino a funzionare, tieni traccia della scadenza della password e aggiornala prima che scada. Puoi anche impostare la password dell'utente in modo che non scada mai.  
Per verificare la scadenza di un utente e della relativa password, esegui il comando seguente.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Per impostare la password di un utente in modo che non scada mai, esegui il comando seguente.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Se utilizzi Windows 10 o versioni successive in cui il [`wmic`comando è obsoleto, esegui il comando](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic) seguente. PowerShell   

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Scarica e installa l'[PsExecutilità](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) di Microsoft sul dispositivo. 

1. <a name="set-up-windows-device-credentials"></a>Utilizzate l' PsExec utilità per memorizzare il nome utente e la password per l'utente predefinito nell'istanza di Credential Manager per l' LocalSystem account. Sostituiscila *password* con la password dell'utente che hai impostato in precedenza.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Se si **PsExec License Agreement**apre, scegli **Accept**di accettare la licenza ed esegui il comando.
**Nota**  
Sui dispositivi Windows, l' LocalSystem account esegue il Greengrass nucleus ed è necessario utilizzare l' PsExec utilità per memorizzare le informazioni utente predefinite nell'account. LocalSystem L'utilizzo dell'applicazione Credential Manager archivia queste informazioni nell'account Windows dell'utente attualmente connesso, anziché nell'account. LocalSystem 

## Scarica il software Core AWS IoT Greengrass
<a name="download-greengrass-core-v2"></a>

È possibile scaricare la versione più recente del software AWS IoT Greengrass Core dal seguente indirizzo:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**Nota**  
È possibile scaricare una versione specifica del software AWS IoT Greengrass Core dal seguente percorso. Sostituiscila *version* con la versione da scaricare.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Per scaricare il software AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Sul dispositivo principale, scaricate il software AWS IoT Greengrass Core in un file denominato`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Scaricando questo software accetti l'[Accordo di licenza del software Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Facoltativo) Per verificare la firma del software Greengrass nucleus
**Nota**  
Questa funzionalità è disponibile con Greengrass nucleus versione 2.9.5 e successive.

   1. Usa il seguente comando per verificare la firma del tuo artefatto Greengrass nucleus:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Il nome del file potrebbe avere un aspetto diverso a seconda della versione di JDK installata. *`jdk17.0.6_10`*Sostituiscilo con la versione JDK che hai installato.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Il nome del file potrebbe avere un aspetto diverso a seconda della versione di JDK installata. *`jdk17.0.6_10`*Sostituiscilo con la versione JDK che hai installato.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. L'`jarsigner`invocazione produce un output che indica i risultati della verifica.

      1. Se il file zip Greengrass nucleus è firmato, l'output contiene la seguente dichiarazione:

         ```
         jar verified.
         ```

      1. Se il file zip Greengrass nucleus non è firmato, l'output contiene la seguente dichiarazione:

         ```
         jar is unsigned.
         ```

   1. Se hai fornito l'`-certs`opzione Jarsigner insieme alle `-verbose` opzioni `-verify` e, l'output include anche informazioni dettagliate sul certificato del firmatario.

1. <a name="installation-unzip-ggc-software-step"></a>Decomprimi il software AWS IoT Greengrass Core in una cartella sul tuo dispositivo. Sostituiscilo *GreengrassInstaller* con la cartella che desideri utilizzare.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Facoltativo) Eseguite il comando seguente per visualizzare la versione del software AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**Importante**  <a name="installer-folder-2.4.0-warning"></a>
Se installi una versione del nucleo Greengrass precedente alla v2.4.0, non rimuovere questa cartella dopo aver installato il software Core. AWS IoT Greengrass Il software AWS IoT Greengrass Core utilizza i file in questa cartella per l'esecuzione.  
Se hai scaricato la versione più recente del software, installi la versione 2.4.0 o successiva e puoi rimuovere questa cartella dopo aver installato il software AWS IoT Greengrass Core.

## Scarica il plug-in per il provisioning AWS IoT della flotta
<a name="download-fleet-provisioning-plugin"></a>

Puoi scaricare l'ultima versione del plug-in per il provisioning AWS IoT della flotta dal seguente indirizzo:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim](https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar)-latest.jar

**Nota**  
È possibile scaricare una versione specifica del plug-in per il provisioning AWS IoT della flotta dalla seguente posizione. *version*Sostituiscila con la versione da scaricare. Per ulteriori informazioni su ciascuna versione del plug-in Fleet Provisioning, consulta[AWS IoT log delle modifiche del plugin per il provisioning della flotta](fleet-provisioning-changelog.md).  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-version.jar
```

Il plug-in per il provisioning della flotta è open source. Per visualizzarne il codice sorgente, consulta il [plug-in AWS IoT Fleet Provisioning](https://github.com/aws-greengrass/aws-greengrass-fleet-provisioning-by-claim) su. GitHub

**Per scaricare il plug-in per il provisioning AWS IoT della flotta**
+ Sul tuo dispositivo, scarica il plug-in AWS IoT Fleet Provisioning in un file denominato. `aws.greengrass.FleetProvisioningByClaim.jar` Sostituiscilo *GreengrassInstaller* con la cartella che desideri utilizzare.

------
#### [ Linux or Unix ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ Windows Command Prompt (CMD) ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ PowerShell ]

  ```
  iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar -OutFile GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------

  <a name="core-software-license"></a>Scaricando questo software accetti l'[Accordo di licenza del software Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

## Installa il software AWS IoT Greengrass Core
<a name="run-greengrass-core-v2-installer-fleet"></a>

Esegui il programma di installazione con argomenti che specificano le seguenti azioni:
+ Esegui l'installazione da un file di configurazione parziale che specifica di utilizzare il plug-in fleet provisioning per il provisioning delle risorse. AWS Il software AWS IoT Greengrass Core utilizza un file di configurazione che specifica la configurazione di ogni componente Greengrass sul dispositivo. Il programma di installazione crea un file di configurazione completo a partire dal file di configurazione parziale fornito dall'utente e dalle AWS risorse create dal plug-in Fleet Provisioning.
+ <a name="install-argument-component-default-user"></a>Specificare di utilizzare l'utente `ggc_user` del sistema per eseguire i componenti software sul dispositivo principale. Sui dispositivi Linux, questo comando specifica anche di utilizzare il gruppo di `ggc_group` sistema e il programma di installazione crea automaticamente l'utente e il gruppo di sistema.
+ <a name="install-argument-system-service"></a>Configura il software AWS IoT Greengrass Core come servizio di sistema che viene eseguito all'avvio. Sui dispositivi Linux, ciò richiede il [sistema di inizializzazione Systemd](https://en.wikipedia.org/wiki/Systemd).
**Importante**  <a name="windows-system-service-requirement-important-note"></a>
Sui dispositivi Windows core, è necessario configurare il software AWS IoT Greengrass Core come servizio di sistema.

Per ulteriori informazioni sugli argomenti che è possibile specificare, vedere[Argomenti dell'installatore](configure-installer.md).

**Nota**  
<a name="jvm-tuning-note"></a>Se utilizzi AWS IoT Greengrass un dispositivo con memoria limitata, puoi controllare la quantità di memoria utilizzata dal software AWS IoT Greengrass Core. Per controllare l'allocazione della memoria, è possibile impostare le opzioni relative alla dimensione dell'heap JVM nel parametro di `jvmOptions` configurazione del componente nucleus. Per ulteriori informazioni, consulta [Controlla l'allocazione della memoria con le opzioni JVM](configure-greengrass-core-v2.md#jvm-tuning).

**Per installare il software Core AWS IoT Greengrass**

1. <a name="installer-check-greengrass-core-software-version"></a>Controlla la versione del software AWS IoT Greengrass Core.
   + Sostituisci *GreengrassInstaller* con il percorso della cartella che contiene il software.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Utilizzate un editor di testo per creare un file di configurazione denominato `config.yaml` da fornire all'installatore.

   <a name="nano-command-intro"></a>Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il file.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Copiate il seguente contenuto YAML nel file. Questo file di configurazione parziale specifica i parametri per il plug-in Fleet Provisioning. Per ulteriori informazioni sulle opzioni che è possibile specificare, vedere. [Configurare il plug-in per il provisioning AWS IoT della flotta](fleet-provisioning-configuration.md)

------
#### [ Linux or Unix ]

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "/greengrass/v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "/greengrass/v2/claim-certs/claim.pem.crt"
         claimCertificatePrivateKeyPath: "/greengrass/v2/claim-certs/claim.private.pem.key"
         rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

------
#### [ Windows ]

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "C:\\greengrass\\v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "C:\\greengrass\\v2\\claim-certs\\claim.pem.crt"
         claimCertificatePrivateKeyPath: "C:\\greengrass\\v2\\claim-certs\\claim.private.pem.key"
         rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

------

   Successivamente, esegui queste operazioni:
   + Sostituire *2.16.1* con la versione del software AWS IoT Greengrass Core.
   + Sostituisci ogni istanza di `/greengrass/v2` o *C:\$1greengrass\$1v2* con la cartella principale di Greengrass.
**Nota**  
Sui dispositivi Windows, è necessario specificare i separatori di percorso come doppie barre rovesciate (`\\`), ad esempio. `C:\\greengrass\\v2`
   + *us-west-2*Sostituiscilo con la AWS regione in cui hai creato il modello di provisioning e altre risorse.
   + Sostituiscilo `iotDataEndpoint` con il tuo endpoint di AWS IoT dati.
   + Sostituisci l'`iotCredentialEndpoint`endpoint con AWS IoT le tue credenziali.
   + Sostituisci *GreengrassCoreTokenExchangeRoleAlias* con il nome dell'alias del ruolo di scambio di token.
   + Sostituiscilo *GreengrassFleetProvisioningTemplate* con il nome del modello di approvvigionamento della flotta.
   + Sostituisci il `claimCertificatePath` con il percorso del certificato di richiesta sul dispositivo.
   + Sostituiscilo `claimCertificatePrivateKeyPath` con il percorso della chiave privata del certificato di richiesta sul dispositivo.
   + Sostituisci i parametri del modello (`templateParameters`) con i valori da utilizzare per il provisioning del dispositivo. Questo esempio si riferisce al [modello di esempio](fleet-provisioning-setup.md#example-fleet-provisioning-template) che definisce `ThingName` i `ThingGroupName` parametri.
**Nota**  
In questo file di configurazione, è possibile personalizzare altre opzioni di configurazione come le porte e il proxy di rete da utilizzare, come illustrato nell'esempio seguente. Per ulteriori informazioni, vedere [Greengrass nucleus](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration) configuration.  

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
       configuration:
         mqtt:
           port: 443
         greengrassDataPlanePort: 443
         networkProxy:
           noProxyAddresses: "http://192.168.0.1,www.example.com"
           proxy:
             url: "http://my-proxy-server:1100"
             username: "Mary_Major"
             password: "pass@word1357"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "/greengrass/v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "/greengrass/v2/claim-certs/claim.pem.crt"
         claimCertificatePrivateKeyPath: "/greengrass/v2/claim-certs/claim.private.pem.key"
         rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
         mqttPort: 443
         proxyUrl: "http://my-proxy-server:1100"
         proxyUserName: "Mary_Major"
         proxyPassword: "pass@word1357"
   ```

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
       configuration:
         mqtt:
           port: 443
         greengrassDataPlanePort: 443
         networkProxy:
           noProxyAddresses: "http://192.168.0.1,www.example.com"
           proxy:
             url: "http://my-proxy-server:1100"
             username: "Mary_Major"
             password: "pass@word1357"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "C:\\greengrass\\v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "C:\\greengrass\\v2\\claim-certs\\claim.pem.crt"
         claimCertificatePrivateKeyPath: "C:\\greengrass\\v2\\claim-certs\\claim.private.pem.key"
         rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
         mqttPort: 443
         proxyUrl: "http://my-proxy-server:1100"
         proxyUserName: "Mary_Major"
         proxyPassword: "pass@word1357"
   ```
Per utilizzare un proxy HTTPS, è necessario utilizzare la versione 1.1.0 o successiva del plug-in Fleet Provisioning. È inoltre necessario specificare quanto segue`system`, come `rootCaPath` illustrato nell'esempio seguente.  

   ```
   ---
   system:
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
   services:
     ...
   ```

   ```
   ---
   system:
     rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem"
   services:
     ...
   ```

1. Eseguire il programma di installazione. Specificate `--trusted-plugin` di fornire il plug-in Fleet Provisioning e specificate `--init-config` di fornire il file di configurazione.
   + Sostituisci `/greengrass/v2` con la cartella principale di Greengrass.
   + Sostituisci ogni istanza di *GreengrassInstaller* con la cartella in cui hai decompresso il programma di installazione.

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar ^
     --init-config ./GreengrassInstaller/config.yaml ^
     --component-default-user ggc_user ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar `
     --init-config ./GreengrassInstaller/config.yaml `
     --component-default-user ggc_user `
     --setup-system-service true
   ```

------
**Importante**  <a name="windows-system-service-installer-argument-important-note"></a>
Nei dispositivi Windows Core, è necessario specificare `--setup-system-service true` di configurare il software AWS IoT Greengrass Core come servizio di sistema.

   <a name="installer-setup-system-service-output-message"></a>Se si specifica`--setup-system-service true`, il programma di installazione stampa `Successfully set up Nucleus as a system service` se ha configurato ed eseguito il software come servizio di sistema. Altrimenti, il programma di installazione non emette alcun messaggio se installa il software correttamente.
**Nota**  <a name="installer-deploy-dev-tools-without-provision"></a>
Non è possibile utilizzare l'`deploy-dev-tools`argomento per distribuire strumenti di sviluppo locali quando si esegue il programma di installazione senza l'argomento. `--provision true` Per informazioni sulla distribuzione della CLI Greengrass direttamente sul dispositivo, consulta. [Interfaccia a riga di comando Greengrass](gg-cli.md)

1. <a name="installer-verify-installation"></a>Verifica l'installazione visualizzando i file nella cartella principale.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Se l'installazione è riuscita, la cartella principale contiene diverse cartelle, ad esempio `config``packages`, e`logs`.

<a name="install-greengrass-core-run-software"></a>Se avete installato il software AWS IoT Greengrass Core come servizio di sistema, il programma di installazione esegue il software automaticamente. In caso contrario, è necessario eseguire il software manualmente. Per ulteriori informazioni, consulta [Esegui il software AWS IoT Greengrass Core](run-greengrass-core-v2.md).

<a name="install-greengrass-core-next-steps-intro"></a>Per ulteriori informazioni su come configurare e utilizzare il software e AWS IoT Greengrass, vedere quanto segue:<a name="install-greengrass-core-next-steps-links"></a>
+ [Configurare il software AWS IoT Greengrass Core](configure-greengrass-core-v2.md)
+ [Sviluppa AWS IoT Greengrass componenti](develop-greengrass-components.md)
+ [Implementazione AWS IoT Greengrass dei componenti sui dispositivi](manage-deployments.md)
+ [Interfaccia a riga di comando Greengrass](gg-cli.md)

# Configura il provisioning AWS IoT della flotta per i dispositivi core Greengrass
<a name="fleet-provisioning-setup"></a>

Per [installare il software AWS IoT Greengrass Core con il provisioning della flotta](fleet-provisioning.md), devi prima configurare le seguenti risorse nel tuo. Account AWS Queste risorse consentono ai dispositivi di registrarsi AWS IoT e funzionare come dispositivi core Greengrass. Segui una volta i passaggi in questa sezione per creare e configurare queste risorse nel tuo Account AWS.
+ Un ruolo IAM per lo scambio di token, utilizzato dai dispositivi principali per autorizzare le chiamate ai AWS servizi.
+ Un alias di AWS IoT ruolo che rimanda al ruolo di scambio di token.
+ (Facoltativo) Una AWS IoT policy utilizzata dai dispositivi principali per autorizzare le chiamate ai servizi AWS IoT and AWS IoT Greengrass . Questa AWS IoT politica deve consentire l'`iot:AssumeRoleWithCertificate`autorizzazione per l'alias del AWS IoT ruolo che punta al ruolo di scambio di token.

  È possibile utilizzare un'unica AWS IoT policy per tutti i dispositivi principali del parco dispositivi oppure configurare il modello di provisioning del parco veicoli per creare una AWS IoT policy per ogni dispositivo principale.
+ Un modello di approvvigionamento del AWS IoT parco veicoli. Questo modello deve specificare quanto segue:<a name="installation-fleet-provisioning-template-requirements"></a>
  + Qualsiasi AWS IoT cosa, risorsa. È possibile specificare un elenco di gruppi di oggetti esistenti per distribuire i componenti su ciascun dispositivo quando è online.
  + Una risorsa AWS IoT politica. Questa risorsa può definire una delle seguenti proprietà:
    + Il nome di una AWS IoT politica esistente. Se scegli questa opzione, i dispositivi principali che crei con questo modello utilizzano la stessa AWS IoT politica e puoi gestirne le autorizzazioni come flotta.
    + Un documento AWS IoT di policy. Se scegli questa opzione, ogni dispositivo principale creato a partire da questo modello utilizza una AWS IoT policy unica e puoi gestire le autorizzazioni per ogni singolo dispositivo principale.
  + Una risorsa AWS IoT certificata. Questa risorsa di certificato deve utilizzare il `AWS::IoT::Certificate::Id` parametro per allegare il certificato al dispositivo principale. Per ulteriori informazioni, consulta la sezione [Just-in-time Provisioning](https://docs.aws.amazon.com/iot/latest/developerguide/jit-provisioning.html) nella *AWS IoT Developer Guide*.
+ Un certificato di richiesta di AWS IoT approvvigionamento e una chiave privata per il modello di approvvigionamento della flotta. Puoi incorporare questo certificato e la chiave privata nei dispositivi durante la produzione, in modo che i dispositivi possano registrarsi e rifornirsi autonomamente quando sono online.
**Importante**  <a name="installation-fleet-provisioning-secure-claim-private-keys"></a>
Il provisioning dichiara che le chiavi private devono essere protette in ogni momento, anche sui dispositivi core Greengrass. Ti consigliamo di utilizzare i CloudWatch parametri e i log di Amazon per monitorare eventuali indicazioni di uso improprio, come l'uso non autorizzato del certificato di attestazione per il provisioning dei dispositivi. Se rilevi un uso improprio, disattiva il certificato di richiesta di approvvigionamento in modo che non possa essere utilizzato per il provisioning dei dispositivi. *Per ulteriori informazioni, consulta [Monitoring AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) nella Developer Guide.AWS IoT Core *  
Per aiutarti a gestire meglio il numero di dispositivi e i dispositivi che si registrano automaticamente nel tuo sistema Account AWS, puoi specificare un hook di pre-provisioning quando crei un modello di provisioning del parco veicoli. Un hook di pre-provisioning è una AWS Lambda funzione che convalida i parametri del modello forniti dai dispositivi durante la registrazione. Ad esempio, è possibile creare un hook di pre-provisioning che controlli l'ID di un dispositivo confrontandolo con un database per verificare che il dispositivo disponga dell'autorizzazione al provisioning. *Per ulteriori informazioni, consulta [Pre-provisioning hook](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) nella Developer Guide.AWS IoT Core *
+ Una AWS IoT politica da allegare al certificato di richiesta di approvvigionamento per consentire ai dispositivi di registrarsi e utilizzare il modello di provisioning del parco veicoli.

**Topics**
+ [Crea un ruolo di scambio di token](#create-token-exchange-role)
+ [Crea una politica AWS IoT](#create-iot-policy)
+ [Crea un modello di approvvigionamento del parco veicoli](#create-provisioning-template)
+ [Crea un certificato di richiesta di approvvigionamento e una chiave privata](#create-claim-certificates)

## Crea un ruolo di scambio di token
<a name="create-token-exchange-role"></a>

<a name="installation-create-token-exchange-role-intro"></a>I dispositivi core Greengrass utilizzano un ruolo di servizio IAM, chiamato *token exchange role*, per autorizzare le chiamate ai servizi. AWS Il dispositivo utilizza il provider di AWS IoT credenziali per ottenere AWS credenziali temporanee per questo ruolo, che consente al dispositivo di interagire AWS IoT, inviare log ad Amazon CloudWatch Logs e scaricare elementi dei componenti personalizzati da Amazon S3. Per ulteriori informazioni, consulta [Autorizza i dispositivi principali a interagire con i servizi AWS](device-service-role.md).

<a name="installation-create-token-exchange-role-alias-intro"></a>Si utilizza un *alias di AWS IoT ruolo* per configurare il ruolo di scambio di token per i dispositivi principali Greengrass. Gli alias di ruolo consentono di modificare il ruolo di scambio di token per un dispositivo ma mantengono invariata la configurazione del dispositivo. Per ulteriori informazioni, consulta [Autorizzazione delle chiamate dirette ai AWS servizi nella Guida per](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) gli *AWS IoT Core sviluppatori*.

In questa sezione, crei un ruolo IAM per lo scambio di token e un alias di AWS IoT ruolo che rimanda al ruolo. Se hai già configurato un dispositivo principale Greengrass, puoi utilizzare il ruolo di scambio di token e l'alias del ruolo invece di crearne di nuovi.

**Per creare un ruolo IAM per lo scambio di token**

1. <a name="create-token-exchange-role-create-iam-role"></a>Crea un ruolo IAM che il tuo dispositivo possa utilizzare come ruolo di scambio di token. Esegui questa operazione:

   1. Crea un file che contenga il documento sulla politica di fiducia richiesto dal ruolo di scambio di token.

      <a name="nano-command-intro"></a>Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il file.

      ```
      nano device-role-trust-policy.json
      ```

      Copiate il seguente codice JSON nel file.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "credentials.iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

   1. Crea il ruolo di scambio di token con il documento sulla politica di fiducia.
      + Sostituiscilo *GreengrassV2TokenExchangeRole* con il nome del ruolo IAM da creare.

      ```
      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json
      ```

      La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.

      ```
      {
        "Role": {
          "Path": "/",
          "RoleName": "GreengrassV2TokenExchangeRole",
          "RoleId": "AROAZ2YMUHYHK5OKM77FB",
          "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
          "CreateDate": "2021-02-06T00:13:29+00:00",
          "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Principal": {
                  "Service": "credentials.iot.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
              }
            ]
          }
        }
      ```

   1. Crea un file che contenga il documento sulla politica di accesso richiesto dal ruolo di scambio di token.

      <a name="nano-command-intro"></a>Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il file.

      ```
      nano device-role-access-policy.json
      ```

      Copiate il seguente codice JSON nel file.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "logs:CreateLogGroup",
              "logs:CreateLogStream",
              "logs:PutLogEvents",
              "logs:DescribeLogStreams",
              "s3:GetBucketLocation"
            ],
            "Resource": "*"
          }
        ]
      }
      ```
**Nota**  
Questa politica di accesso non consente l'accesso agli artefatti dei componenti nei bucket S3. Per distribuire componenti personalizzati che definiscono gli artefatti in Amazon S3, devi aggiungere autorizzazioni al ruolo per consentire al dispositivo principale di recuperare gli artefatti dei componenti. Per ulteriori informazioni, consulta [Consenti l'accesso ai bucket S3 per gli artefatti dei componenti](device-service-role.md#device-service-role-access-s3-bucket).  
Se non disponi ancora di un bucket S3 per gli artefatti dei componenti, puoi aggiungere queste autorizzazioni in un secondo momento dopo aver creato un bucket.

   1. Crea la policy IAM dal documento di policy.
      + Sostituiscila *GreengrassV2TokenExchangeRoleAccess* con il nome della policy IAM da creare.

      ```
      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json
      ```

      La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.

      ```
      {
        "Policy": {
          "PolicyName": "GreengrassV2TokenExchangeRoleAccess",
          "PolicyId": "ANPAZ2YMUHYHACI7C5Z66",
          "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
          "Path": "/",
          "DefaultVersionId": "v1",
          "AttachmentCount": 0,
          "PermissionsBoundaryUsageCount": 0,
          "IsAttachable": true,
          "CreateDate": "2021-02-06T00:37:17+00:00",
          "UpdateDate": "2021-02-06T00:37:17+00:00"
        }
      }
      ```

   1. Allega la policy IAM al ruolo di scambio di token.
      + Sostituisci *GreengrassV2TokenExchangeRole* con il nome del ruolo IAM.
      + Sostituisci l'ARN della policy con l'ARN della policy IAM che hai creato nel passaggio precedente.

      ```
      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
      ```

      Il comando non ha alcun output se la richiesta ha esito positivo.

1. <a name="create-token-exchange-role-create-iot-role-alias"></a>Crea un alias di AWS IoT ruolo che punti al ruolo di scambio di token.
   + Sostituiscilo *GreengrassCoreTokenExchangeRoleAlias* con il nome dell'alias del ruolo da creare.
   + Sostituisci il ruolo ARN con l'ARN del ruolo IAM creato nel passaggio precedente.

   ```
   aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole
   ```

   La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.

   ```
   {
     "roleAlias": "GreengrassCoreTokenExchangeRoleAlias",
     "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
   }
   ```
**Nota**  
Per creare un alias di ruolo, devi disporre dell'autorizzazione a passare il ruolo IAM per lo scambio di token a. AWS IoT Se ricevi un messaggio di errore quando tenti di creare un alias di ruolo, verifica che AWS l'utente disponga di questa autorizzazione. *Per ulteriori informazioni, consulta [Concessione a un utente delle autorizzazioni per il trasferimento di un ruolo a un AWS servizio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) nella Guida per l'AWS Identity and Access Management utente.*

## Crea una politica AWS IoT
<a name="create-iot-policy"></a>

Dopo aver registrato un dispositivo come AWS IoT oggetto, quel dispositivo può utilizzare un certificato digitale con AWS cui autenticarsi. Questo certificato include una o più AWS IoT politiche che definiscono le autorizzazioni che un dispositivo può utilizzare con il certificato. Queste politiche consentono al dispositivo di comunicare con AWS IoT e AWS IoT Greengrass.

Con AWS IoT Fleet Provisioning, i dispositivi si connettono AWS IoT per creare e scaricare un certificato del dispositivo. Nel modello di provisioning del parco veicoli creato nella sezione successiva, puoi specificare se AWS IoT allega la stessa AWS IoT policy ai certificati di tutti i dispositivi o crea una nuova policy per ogni dispositivo.

In questa sezione, crei una AWS IoT policy da AWS IoT allegare ai certificati di tutti i dispositivi. Con questo approccio, puoi gestire le autorizzazioni per tutti i dispositivi come una flotta. Se preferisci creare una nuova AWS IoT politica per ogni dispositivo, puoi saltare questa sezione e fare riferimento alla politica in essa contenuta quando definisci il modello del tuo parco veicoli.

**Per creare una policy AWS IoT**
+ Crea una AWS IoT politica che definisca le AWS IoT autorizzazioni per la tua flotta di dispositivi principali Greengrass. La seguente politica consente l'accesso a tutti gli argomenti MQTT e alle operazioni di Greengrass, in modo che il dispositivo funzioni con applicazioni personalizzate e modifiche future che richiedono nuove operazioni Greengrass. Questa politica consente anche l'`iot:AssumeRoleWithCertificate`autorizzazione, che consente ai dispositivi di utilizzare il ruolo di scambio di token creato nella sezione precedente. Puoi limitare questa politica in base al tuo caso d'uso. Per ulteriori informazioni, consulta [AWS IoT Politica minima per i dispositivi AWS IoT Greengrass V2 principali](device-auth.md#greengrass-core-minimal-iot-policy).

  Esegui questa operazione:

  1. Crea un file che contenga il documento di AWS IoT policy richiesto dai dispositivi core Greengrass.

     <a name="nano-command-intro"></a>Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il file.

     ```
     nano greengrass-v2-iot-policy.json
     ```

     Copiate il seguente codice JSON nel file.
     + Sostituisci la `iot:AssumeRoleWithCertificate` risorsa con l'ARN dell'alias del AWS IoT ruolo creato nella sezione precedente.

------
#### [ JSON ]

****  

     ```
     {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Action": [
             "iot:Publish",
             "iot:Subscribe",
             "iot:Receive",
             "iot:Connect",
             "greengrass:*"
           ],
           "Resource": [
             "*"
           ]
         },
         {
           "Effect": "Allow",
           "Action": "iot:AssumeRoleWithCertificate",
           "Resource": "arn:aws:iot:us-east-1:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
         }
       ]
     }
     ```

------

  1. Crea una AWS IoT politica dal documento di policy.
     + Sostituisci *GreengrassV2IoTThingPolicy* con il nome della politica da creare.

     ```
     aws iot create-policy --policy-name GreengrassV2IoTThingPolicy --policy-document file://greengrass-v2-iot-policy.json
     ```

     La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.

------
#### [ JSON ]

****  

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

------

## Crea un modello di approvvigionamento del parco veicoli
<a name="create-provisioning-template"></a>

AWS IoT i modelli di provisioning della flotta definiscono come fornire AWS IoT oggetti, politiche e certificati. Per effettuare il provisioning dei dispositivi core Greengrass con il plug-in fleet provisioning, è necessario creare un modello che specifichi quanto segue:<a name="installation-fleet-provisioning-template-requirements"></a>
+ Una cosa, una risorsa AWS IoT . È possibile specificare un elenco di gruppi di oggetti esistenti per distribuire i componenti su ciascun dispositivo quando è online.
+ Una risorsa AWS IoT politica. Questa risorsa può definire una delle seguenti proprietà:
  + Il nome di una AWS IoT politica esistente. Se scegli questa opzione, i dispositivi principali che crei con questo modello utilizzano la stessa AWS IoT politica e puoi gestirne le autorizzazioni come flotta.
  + Un documento AWS IoT di policy. Se scegli questa opzione, ogni dispositivo principale creato a partire da questo modello utilizza una AWS IoT policy unica e puoi gestire le autorizzazioni per ogni singolo dispositivo principale.
+ Una risorsa AWS IoT certificata. Questa risorsa di certificato deve utilizzare il `AWS::IoT::Certificate::Id` parametro per allegare il certificato al dispositivo principale. Per ulteriori informazioni, consulta la sezione [Just-in-time Provisioning](https://docs.aws.amazon.com/iot/latest/developerguide/jit-provisioning.html) nella *AWS IoT Developer Guide*.

Nel modello, è possibile specificare di aggiungere l' AWS IoT oggetto a un elenco di gruppi di oggetti esistenti. Quando il dispositivo principale si connette AWS IoT Greengrass per la prima volta, riceve le distribuzioni Greengrass per ogni gruppo di cose di cui è membro. Puoi utilizzare i gruppi di oggetti per distribuire il software più recente su ciascun dispositivo non appena è online. Per ulteriori informazioni, consulta [Implementazione AWS IoT Greengrass dei componenti sui dispositivi](manage-deployments.md).

Il AWS IoT servizio richiede le autorizzazioni per creare e aggiornare AWS IoT le risorse nei dispositivi Account AWS durante il provisioning. Per consentire l'accesso al AWS IoT servizio, crei un ruolo IAM e lo fornisci quando crei il modello. AWS IoT fornisce una policy gestita, [AWSIoTThingsRegistration](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration), che consente l'accesso a tutte le autorizzazioni che AWS IoT potrebbero essere utilizzate per il provisioning dei dispositivi. È possibile utilizzare questa policy gestita o creare una policy personalizzata che definisca le autorizzazioni nella policy gestita in base al proprio caso d'uso.

In questa sezione, crei un ruolo IAM che consente di AWS IoT effettuare il provisioning di risorse per i dispositivi e crei un modello di provisioning della flotta che utilizza quel ruolo IAM.

**Per creare un modello di provisioning della flotta**

1. Crea un ruolo IAM che AWS IoT possa pretendere di fornire risorse nel tuo Account AWS. Esegui questa operazione:

   1. Crea un file che contenga il documento sulla politica di fiducia che AWS IoT consente di assumere il ruolo.

      <a name="nano-command-intro"></a>Ad esempio, su un sistema basato su Linux, è possibile eseguire il seguente comando per utilizzare GNU nano per creare il file.

      ```
      nano aws-iot-trust-policy.json
      ```

      Copiate il seguente codice JSON nel file.

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

------

   1. Crea un ruolo IAM con il documento sulla politica di fiducia.
      + Sostituiscilo *GreengrassFleetProvisioningRole* con il nome del ruolo IAM da creare.

      ```
      aws iam create-role --role-name GreengrassFleetProvisioningRole --assume-role-policy-document file://aws-iot-trust-policy.json
      ```

      La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "iot:Connect",
              "iot:Publish",
              "iot:Subscribe",
              "iot:Receive"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Consulta la politica [AWSIoTThingsdi registrazione](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration), che consente l'accesso a tutte le autorizzazioni che AWS IoT potrebbero essere utilizzate per il provisioning dei dispositivi. Puoi utilizzare questa politica gestita o creare una politica personalizzata che definisca autorizzazioni ridotte per il tuo caso d'uso. Se scegli di creare una politica personalizzata, fallo ora.

   1. Allega la policy IAM al ruolo di provisioning della flotta.
      + Sostituisci *GreengrassFleetProvisioningRole* con il nome del ruolo IAM.
      + Se hai creato una policy personalizzata nel passaggio precedente, sostituisci l'ARN della policy con l'ARN della policy IAM da utilizzare.

      ```
      aws iam attach-role-policy --role-name GreengrassFleetProvisioningRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration
      ```

      Il comando non ha alcun output se la richiesta ha esito positivo.

1. (Facoltativo) Crea un *hook di pre-provisioning*, che è una AWS Lambda funzione che convalida i parametri del modello forniti dai dispositivi durante la registrazione. Puoi utilizzare un hook di pre-provisioning per avere un maggiore controllo su quali e quanti dispositivi sono integrati nel tuo dispositivo. Account AWS*Per ulteriori informazioni, consulta gli [hook di pre-provisioning](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) nella Developer Guide.AWS IoT Core *

1. Crea un modello di provisioning del parco veicoli. Esegui questa operazione:

   1. Crea un file per contenere il documento del modello di approvvigionamento.

      <a name="nano-command-intro"></a>Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il file.

      ```
      nano greengrass-fleet-provisioning-template.json
      ```

      Scrivete il documento modello di provisioning. È possibile iniziare dal seguente esempio di modello di provisioning, che specifica di creare un AWS IoT oggetto con le seguenti proprietà:
      + Il nome dell'oggetto è il valore specificato nel parametro `ThingName` template.
      + L'oggetto è un membro del gruppo di oggetti specificato nel parametro `ThingGroupName` template. Il gruppo di cose deve esistere nel tuo Account AWS.
      + Al certificato dell'oggetto è `GreengrassV2IoTThingPolicy` allegata la AWS IoT politica denominata.

      Per ulteriori informazioni, consulta [Provisioning templates](https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html) nella *AWS IoT Core Developer Guide*.

      ```
      {
        "Parameters": {
          "ThingName": {
            "Type": "String"
          },
          "ThingGroupName": {
            "Type": "String"
          },
          "AWS::IoT::Certificate::Id": {
            "Type": "String"
          }
        },
        "Resources": {
          "MyThing": {
            "OverrideSettings": {
              "AttributePayload": "REPLACE",
              "ThingGroups": "REPLACE",
              "ThingTypeName": "REPLACE"
            },
            "Properties": {
              "AttributePayload": {},
              "ThingGroups": [
                {
                  "Ref": "ThingGroupName"
                }
              ],
              "ThingName": {
                "Ref": "ThingName"
              }
            },
            "Type": "AWS::IoT::Thing"
          },
          "MyPolicy": {
            "Properties": {
              "PolicyName": "GreengrassV2IoTThingPolicy"
            },
            "Type": "AWS::IoT::Policy"
          },
          "MyCertificate": {
            "Properties": {
              "CertificateId": {
                "Ref": "AWS::IoT::Certificate::Id"
              },
              "Status": "Active"
            },
            "Type": "AWS::IoT::Certificate"
          }
        }
      }
      ```
**Nota**  
*MyThing**MyPolicy*, e *MyCertificate* sono nomi arbitrari che identificano ogni specifica di risorsa nel modello di provisioning del parco veicoli. AWS IoT non utilizza questi nomi nelle risorse che crea dal modello. È possibile utilizzare questi nomi o sostituirli con valori che consentano di identificare ogni risorsa nel modello.

   1. Crea il modello di approvvigionamento del parco veicoli dal documento relativo al modello di approvvigionamento.
      + Sostituisci *GreengrassFleetProvisioningTemplate* con il nome del modello da creare.
      + Sostituisci la descrizione del modello con una descrizione per il tuo modello.
      + Sostituisci l'ARN del ruolo di provisioning con l'ARN del ruolo creato in precedenza.

------
#### [ Linux or Unix ]

      ```
      aws iot create-provisioning-template \
        --template-name GreengrassFleetProvisioningTemplate \
        --description "A provisioning template for Greengrass core devices." \
        --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" \
        --template-body file://greengrass-fleet-provisioning-template.json \
        --enabled
      ```

------
#### [ Windows Command Prompt (CMD) ]

      ```
      aws iot create-provisioning-template ^
        --template-name GreengrassFleetProvisioningTemplate ^
        --description "A provisioning template for Greengrass core devices." ^
        --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" ^
        --template-body file://greengrass-fleet-provisioning-template.json ^
        --enabled
      ```

------
#### [ PowerShell ]

      ```
      aws iot create-provisioning-template `
        --template-name GreengrassFleetProvisioningTemplate `
        --description "A provisioning template for Greengrass core devices." `
        --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" `
        --template-body file://greengrass-fleet-provisioning-template.json `
        --enabled
      ```

------
**Nota**  
Se hai creato un hook di pre-provisioning, specifica l'ARN della funzione Lambda dell'hook di pre-provisioning con l'argomento. `--pre-provisioning-hook`  

      ```
      --pre-provisioning-hook targetArn=arn:aws:lambda:us-west-2:123456789012:function:GreengrassPreProvisioningHook
      ```

      La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.

      ```
      {
          "templateArn": "arn:aws:iot:us-west-2:123456789012:provisioningtemplate/GreengrassFleetProvisioningTemplate",
          "templateName": "GreengrassFleetProvisioningTemplate",
          "defaultVersionId": 1
      }
      ```

## Crea un certificato di richiesta di approvvigionamento e una chiave privata
<a name="create-claim-certificates"></a>

I certificati di attestazione sono certificati X.509 che consentono ai dispositivi di registrarsi come AWS IoT oggetti e di recuperare un certificato di dispositivo X.509 univoco da utilizzare per le normali operazioni. Dopo aver creato un certificato di attestazione, alleghi una AWS IoT politica che consente ai dispositivi di utilizzarlo per creare certificati di dispositivo unici e fornire un modello di provisioning del parco veicoli. I dispositivi con il certificato di richiesta possono effettuare il provisioning utilizzando solo il modello di provisioning consentito nella AWS IoT politica.

In questa sezione, crei il certificato di richiesta e lo configuri per i dispositivi da utilizzare con il modello di provisioning del parco veicoli creato nella sezione precedente.

**Importante**  <a name="installation-fleet-provisioning-secure-claim-private-keys"></a>
Il provisioning dichiara che le chiavi private devono essere protette in ogni momento, anche sui dispositivi core Greengrass. Ti consigliamo di utilizzare i CloudWatch parametri e i log di Amazon per monitorare eventuali indicazioni di uso improprio, come l'uso non autorizzato del certificato di attestazione per il provisioning dei dispositivi. Se rilevi un uso improprio, disattiva il certificato di richiesta di approvvigionamento in modo che non possa essere utilizzato per il provisioning dei dispositivi. *Per ulteriori informazioni, consulta [Monitoring AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) nella Developer Guide.AWS IoT Core *  
Per aiutarti a gestire meglio il numero di dispositivi e i dispositivi che si registrano automaticamente nel tuo sistema Account AWS, puoi specificare un hook di pre-provisioning quando crei un modello di provisioning del parco veicoli. Un hook di pre-provisioning è una AWS Lambda funzione che convalida i parametri del modello forniti dai dispositivi durante la registrazione. Ad esempio, è possibile creare un hook di pre-provisioning che controlli l'ID di un dispositivo confrontandolo con un database per verificare che il dispositivo disponga dell'autorizzazione al provisioning. *Per ulteriori informazioni, consulta [Pre-provisioning hook](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) nella Developer Guide.AWS IoT Core *

**Per creare un certificato di richiesta di approvvigionamento e una chiave privata**

1. Crea una cartella in cui scaricare il certificato di richiesta e la chiave privata.

   ```
   mkdir claim-certs
   ```

1. Crea e salva un certificato e una chiave privata da utilizzare per il provisioning. AWS IoT fornisce certificati client firmati dall'autorità di certificazione Amazon Root (CA).

------
#### [ Linux or Unix ]

   ```
   aws iot create-keys-and-certificate \
     --certificate-pem-outfile "claim-certs/claim.pem.crt" \
     --public-key-outfile "claim-certs/claim.public.pem.key" \
     --private-key-outfile "claim-certs/claim.private.pem.key" \
     --set-as-active
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iot create-keys-and-certificate ^
     --certificate-pem-outfile "claim-certs/claim.pem.crt" ^
     --public-key-outfile "claim-certs/claim.public.pem.key" ^
     --private-key-outfile "claim-certs/claim.private.pem.key" ^
     --set-as-active
   ```

------
#### [ PowerShell ]

   ```
   aws iot create-keys-and-certificate `
     --certificate-pem-outfile "claim-certs/claim.pem.crt" `
     --public-key-outfile "claim-certs/claim.public.pem.key" `
     --private-key-outfile "claim-certs/claim.private.pem.key" `
     --set-as-active
   ```

------

   La risposta contiene informazioni sul certificato, se la richiesta ha esito positivo. Salva l'ARN del certificato per utilizzarlo in seguito.

1. Crea e allega una AWS IoT policy che consenta ai dispositivi di utilizzare il certificato per creare certificati univoci per i dispositivi ed esegui il provisioning con il modello di provisioning del parco veicoli. La seguente policy consente l'accesso all'API MQTT per il provisioning dei dispositivi. *Per ulteriori informazioni, consulta [Device Provisioning MQTT API nella Device Provisioning](https://docs.aws.amazon.com/iot/latest/developerguide/fleet-provision-api.html) nella Developer Guide.AWS IoT Core *

   Esegui questa operazione:

   1. Crea un file che contenga il documento di AWS IoT policy richiesto dai dispositivi core Greengrass.

      <a name="nano-command-intro"></a>Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il file.

      ```
      nano greengrass-provisioning-claim-iot-policy.json
      ```

      Copiate il seguente codice JSON nel file.
      + Sostituisci ogni istanza di *region* con quella Regione AWS in cui hai impostato il provisioning della flotta.
      + Sostituisci ogni istanza di *account-id* con il tuo Account AWS ID.
      + Sostituisci ogni istanza di *GreengrassFleetProvisioningTemplate* con il nome del modello di approvvigionamento della flotta creato nella sezione precedente.

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "iot:Connect",
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "iot:Publish",
              "iot:Receive"
            ],
            "Resource": [
            "arn:aws:iot:us-east-1:123456789012:topic/$aws/certificates/create/*",
        "arn:aws:iot:us-east-1:123456789012:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*"
            ]
          },
          {
            "Effect": "Allow",
            "Action": "iot:Subscribe",
            "Resource": [
            "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/certificates/create/*",
        "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*"
            ]
          }
        ]
      }
      ```

------

   1. Crea una AWS IoT politica dal documento di policy.
      + Sostituisci *GreengrassProvisioningClaimPolicy* con il nome della politica da creare.

      ```
      aws iot create-policy --policy-name GreengrassProvisioningClaimPolicy --policy-document file://greengrass-provisioning-claim-iot-policy.json
      ```

      La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.

------
#### [ JSON ]

****  

      ```
      {
        "policyName": "GreengrassProvisioningClaimPolicy",
        "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassProvisioningClaimPolicy",
        "policyDocument": "{
          \"Version\": \"2012-10-17\",
          \"Statement\": [
            {
              \"Effect\": \"Allow\",
              \"Action\": \"iot:Connect\",
              \"Resource\": \"*\"
            },
            {
              \"Effect\": \"Allow\",
              \"Action\": [
                \"iot:Publish\",
                \"iot:Receive\"
              ],
              \"Resource\": [
              \"arn:aws:iot:us-east-1:123456789012:topic/$aws/certificates/create/*\",
        \"arn:aws:iot:us-east-1:123456789012:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\"
              ]
            },
            {
              \"Effect\": \"Allow\",
              \"Action\": \"iot:Subscribe\",
              \"Resource\": [
              \"arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/certificates/create/*\",
        \"arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\"
              ]
            }
          ]
        }",
        "policyVersionId": "1"
      }
      ```

------

1. Allega la AWS IoT politica al certificato di richiesta di approvvigionamento.
   + Sostituiscila *GreengrassProvisioningClaimPolicy* con il nome della politica da allegare.
   + Sostituisci l'ARN di destinazione con l'ARN del certificato di richiesta di approvvigionamento.

   ```
   aws iot attach-policy --policy-name GreengrassProvisioningClaimPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
   ```

   Il comando non produce alcun output se la richiesta ha esito positivo.

Ora disponi di un certificato di richiesta di provisioning e di una chiave privata che i dispositivi possono utilizzare per registrarsi AWS IoT e rifornirsi come dispositivi core Greengrass. È possibile incorporare il certificato di richiesta e la chiave privata nei dispositivi durante la produzione oppure copiare il certificato e la chiave sui dispositivi prima di installare il AWS IoT Greengrass software Core. Per ulteriori informazioni, consulta [Installa il software AWS IoT Greengrass Core con il provisioning AWS IoT della flotta](fleet-provisioning.md).

# Configurare il plug-in per il provisioning AWS IoT della flotta
<a name="fleet-provisioning-configuration"></a>

Il plug-in per il provisioning AWS IoT della flotta fornisce i seguenti parametri di configurazione che è possibile personalizzare quando si [installa il software AWS IoT Greengrass Core con il](fleet-provisioning.md) provisioning della flotta.

`rootPath`  
Il percorso della cartella da utilizzare come root per il software AWS IoT Greengrass Core.

`awsRegion`  
 Regione AWS Quello che il plug-in Fleet Provisioning utilizza per fornire AWS le risorse.

`iotDataEndpoint`  
<a name="nucleus-component-configuration-iot-data-endpoint"></a>L'endpoint di AWS IoT dati per il tuo. Account AWS

`iotCredentialEndpoint`  
<a name="nucleus-component-configuration-iot-cred-endpoint"></a>L'endpoint di AWS IoT credenziali per il tuo. Account AWS

`iotRoleAlias`  
<a name="nucleus-component-configuration-iot-role-alias"></a>L'alias del AWS IoT ruolo che rimanda a un ruolo IAM per lo scambio di token. Il fornitore di AWS IoT credenziali assume questo ruolo per consentire al dispositivo principale Greengrass di interagire con i servizi. AWS Per ulteriori informazioni, consulta [Autorizza i dispositivi principali a interagire con i servizi AWS](device-service-role.md).

`provisioningTemplate`  
Il modello di provisioning AWS IoT della flotta da utilizzare per il provisioning delle risorse. AWS Questo modello deve specificare quanto segue:  <a name="installation-fleet-provisioning-template-requirements"></a>
+ Qualsiasi AWS IoT cosa, risorsa. È possibile specificare un elenco di gruppi di oggetti esistenti per distribuire i componenti su ciascun dispositivo quando è online.
+ Una risorsa AWS IoT politica. Questa risorsa può definire una delle seguenti proprietà:
  + Il nome di una AWS IoT politica esistente. Se scegli questa opzione, i dispositivi principali che crei a partire da questo modello utilizzano la stessa AWS IoT politica e puoi gestirne le autorizzazioni come flotta.
  + Un documento AWS IoT di policy. Se scegli questa opzione, ogni dispositivo principale creato a partire da questo modello utilizza una AWS IoT policy unica e puoi gestire le autorizzazioni per ogni singolo dispositivo principale.
+ Una risorsa AWS IoT certificata. Questa risorsa di certificato deve utilizzare il `AWS::IoT::Certificate::Id` parametro per allegare il certificato al dispositivo principale. Per ulteriori informazioni, consulta la sezione [Just-in-time Provisioning](https://docs.aws.amazon.com/iot/latest/developerguide/jit-provisioning.html) nella *AWS IoT Developer Guide*.
Per ulteriori informazioni, consulta [Provisioning templates](https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html) nella *AWS IoT Core Developer* Guide.

`claimCertificatePath`  
Il percorso del certificato di richiesta di provisioning per il modello di provisioning specificato in. `provisioningTemplate` Per ulteriori informazioni, consulta [CreateProvisioningClaim](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningClaim.html) nella *documentazione di riferimento dell’API AWS IoT Core *.

`claimCertificatePrivateKeyPath`  
Il percorso della chiave privata del certificato di richiesta di approvvigionamento per il modello di provisioning specificato in. `provisioningTemplate` Per ulteriori informazioni, consulta [CreateProvisioningClaim](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningClaim.html) nella *documentazione di riferimento dell’API AWS IoT Core *.  
Il provisioning dichiara che le chiavi private devono essere protette in ogni momento, anche sui dispositivi core Greengrass. Ti consigliamo di utilizzare i CloudWatch parametri e i log di Amazon per monitorare eventuali indicazioni di uso improprio, come l'uso non autorizzato del certificato di attestazione per il provisioning dei dispositivi. Se rilevi un uso improprio, disattiva il certificato di richiesta di approvvigionamento in modo che non possa essere utilizzato per il provisioning dei dispositivi. *Per ulteriori informazioni, consulta [Monitoring AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) nella Developer Guide.AWS IoT Core *  
Per aiutarti a gestire meglio il numero di dispositivi e i dispositivi che si registrano automaticamente nel tuo sistema Account AWS, puoi specificare un hook di pre-provisioning quando crei un modello di provisioning del parco veicoli. Un hook di pre-provisioning è una AWS Lambda funzione che convalida i parametri del modello forniti dai dispositivi durante la registrazione. Ad esempio, è possibile creare un hook di pre-provisioning che controlli l'ID di un dispositivo confrontandolo con un database per verificare che il dispositivo disponga dell'autorizzazione al provisioning. *Per ulteriori informazioni, consulta [Pre-provisioning hook](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) nella Developer Guide.AWS IoT Core *

`rootCaPath`  
Il percorso verso il certificato Amazon Root Certificate Authority (CA).

`templateParameters`  
(Facoltativo) La mappa dei parametri da fornire al modello di provisioning della flotta. *Per ulteriori informazioni, consulta la [sezione Parametri dei modelli di provisioning](https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html#parameters-section) nella Guida per gli sviluppatori.AWS IoT Core *

`deviceId`  
(Facoltativo) L'identificatore del dispositivo da utilizzare come ID client quando il plug-in Fleet Provisioning crea una connessione MQTT. AWS IoT  
Impostazione predefinita: un UUID casuale.

`mqttPort`  
(Facoltativo) La porta da usare per le connessioni MQTT.  
Impostazione predefinita: `8883`

`proxyUrl`  
(Facoltativo) L'URL del server proxy nel formato`scheme://userinfo@host:port`. Per utilizzare un proxy HTTPS, è necessario utilizzare la versione 1.1.0 o successiva del plug-in Fleet Provisioning.  <a name="nucleus-component-configuration-proxy-url-segments"></a>
+ `scheme`— Lo schema, che deve essere `http` o. `https`
**Importante**  
<a name="https-proxy-greengrass-nucleus-requirement"></a>I dispositivi core Greengrass devono eseguire [Greengrass nucleus](greengrass-nucleus-component.md) v2.5.0 o versione successiva per utilizzare i proxy HTTPS.  
Se configuri un proxy HTTPS, devi aggiungere il certificato CA del server proxy al certificato Amazon root CA del dispositivo principale. Per ulteriori informazioni, consulta [Abilita il dispositivo principale in modo che consideri attendibile un proxy HTTPS](configure-greengrass-core-v2.md#https-proxy-certificate-trust).
+ `userinfo`— (Facoltativo) Le informazioni sul nome utente e sulla password. Se si specificano queste informazioni nel`url`, il dispositivo principale Greengrass ignora i `username` campi and. `password`
+ `host`— Il nome host o l'indirizzo IP del server proxy.
+ `port`— (Facoltativo) Il numero di porta. Se non specifichi la porta, il dispositivo principale Greengrass utilizza i seguenti valori predefiniti:
  + `http`— 80
  + `https`— 443

`proxyUserName`  
(Facoltativo) Il nome utente che autentica il server proxy.

`proxyPassword`  
(Facoltativo) Il nome utente che autentica il server proxy.

CSRPath  
(Facoltativo) Il percorso del file di richiesta di firma del certificato (CSR) da utilizzare per creare il certificato del dispositivo da una CSR. *Per ulteriori informazioni, consulta [Provisioning by claim nella guida per](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#claim-based) sviluppatori. AWS IoT Core *

csrPrivateKeyPercorso  
(Facoltativo, `csrPath` obbligatorio se dichiarato) Il percorso della chiave privata utilizzata per generare la CSR. La chiave privata deve essere stata utilizzata per generare la CSR. Per ulteriori informazioni, consulta [Provisioning by claim](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#claim-based) nella guida per *AWS IoT Core sviluppatori*.

Percorso del certificato  
(Facoltativo) Il percorso da utilizzare per salvare il certificato del dispositivo scaricato.

privateKeyPath  
(Facoltativo) Il percorso da utilizzare per salvare la chiave privata del dispositivo scaricata.

# AWS IoT log delle modifiche del plugin per il provisioning della flotta
<a name="fleet-provisioning-changelog"></a>

La tabella seguente descrive le modifiche apportate a ciascuna versione del plug-in AWS IoT Fleet Provisioning by claim (`aws.greengrass.FleetProvisioningByClaim`).


|  Versione  |  Modifiche  | 
| --- | --- | 
|  1.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/greengrass/v2/developerguide/fleet-provisioning-changelog.html)  | 
|  1.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/greengrass/v2/developerguide/fleet-provisioning-changelog.html)  | 
|  1.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/greengrass/v2/developerguide/fleet-provisioning-changelog.html)  | 
|  1.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/greengrass/v2/developerguide/fleet-provisioning-changelog.html)  | 
|  1.0.0  |  Versione iniziale.  | 