

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

# Sicurezza in AWS IoT Greengrass
<a name="security"></a>

La sicurezza del cloud AWS è la massima priorità. In qualità di AWS cliente, puoi beneficiare di un data center e di un'architettura di rete progettati per soddisfare i requisiti delle organizzazioni più sensibili alla sicurezza.

La sicurezza è una responsabilità condivisa tra AWS te e te. Il [modello di responsabilità condivisa](https://aws.amazon.com/compliance/shared-responsibility-model/) descrive questo aspetto come sicurezza *del* cloud e sicurezza *nel* cloud:
+ **Sicurezza del cloud**: AWS è responsabile della protezione dell'infrastruttura che gestisce AWS i servizi in Cloud AWS. AWS fornisce inoltre servizi che è possibile utilizzare in modo sicuro. I revisori esterni testano e verificano regolarmente l'efficacia della nostra sicurezza nell'ambito dei [AWS Programmi di AWS conformità dei Programmi di conformità](https://aws.amazon.com/compliance/programs/) dei di . Per maggiori informazioni sui programmi di conformità applicabili AWS IoT Greengrass, consulta la sezione [AWS Servizi rientranti nell'ambito del programma di conformitàAWS](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Sicurezza nel cloud**: la tua responsabilità è determinata dal servizio AWS che utilizzi. L'utente è anche responsabile di altri fattori, tra cui la riservatezza dei dati, i requisiti dell'azienda e le leggi e le normative applicabili.

Durante l'utilizzo AWS IoT Greengrass, l'utente è anche responsabile della protezione dei dispositivi, della connessione di rete locale e delle chiavi private.

Questa documentazione aiuta a capire come applicare il modello di responsabilità condivisa durante l'utilizzo AWS IoT Greengrass. I seguenti argomenti mostrano come eseguire la configurazione AWS IoT Greengrass per soddisfare gli obiettivi di sicurezza e conformità. Imparerai anche a utilizzare altri AWS servizi che ti aiutano a monitorare e proteggere AWS IoT Greengrass le tue risorse. 

**Topics**
+ [Protezione dei dati in AWS IoT Greengrass](data-protection.md)
+ [Autenticazione e autorizzazione del dispositivo per AWS IoT Greengrass](device-auth.md)
+ [Gestione delle identità e degli accessi per AWS IoT Greengrass](security-iam.md)
+ [Consenti il traffico dei dispositivi tramite un proxy o un firewall](allow-device-traffic.md)
+ [Convalida della conformità per AWS IoT Greengrass](compliance-validation.md)
+ [Endpoint FIPS](FIPS.md)
+ [Resilienza in AWS IoT Greengrass](disaster-recovery-resiliency.md)
+ [Sicurezza dell'infrastruttura in AWS IoT Greengrass](infrastructure-security.md)
+ [Analisi della configurazione e delle vulnerabilità in AWS IoT Greengrass](vulnerability-analysis-and-management.md)
+ [Integrità del codice in AWS IoT Greengrass V2](code-integrity.md)
+ [AWS IoT Greengrass e endpoint VPC di interfaccia ()AWS PrivateLink](vpc-interface-endpoints.md)
+ [Best practice di sicurezza per AWS IoT Greengrass](security-best-practices.md)

# Protezione dei dati in AWS IoT Greengrass
<a name="data-protection"></a>

Il modello di [responsabilità AWS condivisa modello](https://aws.amazon.com/compliance/shared-responsibility-model/) di di si applica alla protezione dei dati in AWS IoT Greengrass. Come descritto in questo modello, AWS è responsabile della protezione dell'infrastruttura globale che gestisce tutti i Cloud AWS. L’utente è responsabile del controllo dei contenuti ospitati su questa infrastruttura. L’utente è inoltre responsabile della configurazione della protezione e delle attività di gestione per i Servizi AWS utilizzati. Per maggiori informazioni sulla privacy dei dati, consulta le [Domande frequenti sulla privacy dei dati](https://aws.amazon.com/compliance/data-privacy-faq/). Per informazioni sulla protezione dei dati in Europa, consulta il post del blog relativo al [AWS Modello di responsabilità condivisa e GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) nel *AWS Blog sulla sicurezza*.

Ai fini della protezione dei dati, consigliamo di proteggere Account AWS le credenziali e configurare i singoli utenti con AWS IAM Identity Center or AWS Identity and Access Management (IAM). In tal modo, a ogni utente verranno assegnate solo le autorizzazioni necessarie per svolgere i suoi compiti. Suggeriamo, inoltre, di proteggere i dati nei seguenti modi:
+ Utilizza l’autenticazione a più fattori (MFA) con ogni account.
+  SSL/TLS Da utilizzare per comunicare con AWS le risorse. È richiesto TLS 1.2 ed è consigliato TLS 1.3.
+ Configura l'API e la registrazione delle attività degli utenti con AWS CloudTrail. Per informazioni sull'utilizzo dei CloudTrail percorsi per acquisire AWS le attività, consulta [Lavorare con i CloudTrail percorsi](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) nella *Guida per l'AWS CloudTrail utente*.
+ Utilizza soluzioni di AWS crittografia, insieme a tutti i controlli di sicurezza predefiniti all'interno Servizi AWS.
+ Utilizza i servizi di sicurezza gestiti avanzati, come Amazon Macie, che aiutano a individuare e proteggere i dati sensibili archiviati in Amazon S3.
+ Se hai bisogno di moduli crittografici convalidati FIPS 140-3 per accedere AWS tramite un'interfaccia a riga di comando o un'API, usa un endpoint FIPS. Per ulteriori informazioni sugli endpoint FIPS disponibili, consulta il [Federal Information Processing Standard (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Ti consigliamo di non inserire mai informazioni riservate o sensibili, ad esempio gli indirizzi e-mail dei clienti, nei tag o nei campi di testo in formato libero, ad esempio nel campo **Nome**. Ciò include quando lavori AWS IoT Greengrass o Servizi AWS utilizzi la console, l'API o. AWS CLI AWS SDKs I dati inseriti nei tag o nei campi di testo in formato libero utilizzati per i nomi possono essere utilizzati per i la fatturazione o i log di diagnostica. Quando si fornisce un URL a un server esterno, suggeriamo vivamente di non includere informazioni sulle credenziali nell’URL per convalidare la richiesta al server.

Per ulteriori informazioni sulla protezione delle informazioni sensibili in AWS IoT Greengrass, consulta[Non registrare informazioni riservate](security-best-practices.md#protect-pii).

Per ulteriori informazioni sulla protezione dei dati, consulta il post del blog [AWS Modello di responsabilità condivisa e GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) su *AWS Security Blog*.

**Topics**
+ [Crittografia dei dati](data-encryption.md)
+ [Integrazione della sicurezza hardware](hardware-security.md)

# Crittografia dei dati
<a name="data-encryption"></a>

AWS IoT Greengrass utilizza la crittografia per proteggere i dati durante il transito (su Internet o rete locale) e quando sono inattivi (archiviati in). Cloud AWS

I dispositivi in un AWS IoT Greengrass ambiente spesso raccolgono dati che vengono inviati ai AWS servizi per un'ulteriore elaborazione. Per ulteriori informazioni sulla crittografia dei dati su altri AWS servizi, consulta la documentazione sulla sicurezza relativa a tale servizio.

**Topics**
+ [Crittografia in transito](encryption-in-transit.md)
+ [Crittografia a riposo](encryption-at-rest.md)
+ [Gestione delle chiavi per il dispositivo Core Greengrass](key-management.md)

# Crittografia in transito
<a name="encryption-in-transit"></a>

AWS IoT Greengrass dispone di due modalità di comunicazione in cui i dati sono in transito:
+ [Dati in transito su Internet](#data-in-transit-internet). La comunicazione tra un core Greengrass e AWS IoT Greengrass Internet è crittografata.
+ [Dati sul dispositivo core](#data-in-transit-locally). La comunicazione tra i componenti del dispositivo centrale Greengrass non è crittografata.

## Dati in transito su Internet
<a name="data-in-transit-internet"></a>

AWS IoT Greengrass utilizza Transport Layer Security (TLS) per crittografare tutte le comunicazioni su Internet. Tutti i dati inviati a vengono inviati tramite una connessione TLS utilizzando i protocolli MQTT o HTTPS, quindi sono sicuri per impostazione predefinita. Cloud AWS AWS IoT Greengrass utilizza il modello di sicurezza del AWS IoT trasporto. Per ulteriori informazioni, consulta l'argomento relativo alla [sicurezza del trasporto](https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html) nella *Guida per gli sviluppatori AWS IoT Core *.

## Dati sul dispositivo core
<a name="data-in-transit-locally"></a>

AWS IoT Greengrass non crittografa i dati scambiati localmente sul dispositivo principale Greengrass perché i dati non escono dal dispositivo. Ciò include la comunicazione tra componenti definiti dall'utente, l'SDK del AWS IoT dispositivo e componenti pubblici, come lo stream manager.

# Crittografia a riposo
<a name="encryption-at-rest"></a>

AWS IoT Greengrass archivia i tuoi dati:
+ [Dati inattivi in Cloud AWS](#data-at-rest-cloud). Questi dati sono criptati.
+ [Dati inattivi sul core Greengrass](#data-at-rest-device). Questi dati non sono crittografati (tranne le copie locali dei tuoi segreti).

## Dati inattivi in Cloud AWS
<a name="data-at-rest-cloud"></a>

AWS IoT Greengrass crittografa i dati dei clienti archiviati in. Cloud AWS Questi dati sono protetti mediante AWS KMS chiavi gestite da AWS IoT Greengrass.

## Dati inattivi sul core Greengrass
<a name="data-at-rest-device"></a>

AWS IoT Greengrass si affida alle autorizzazioni di file Unix e alla crittografia dell'intero disco (se abilitata) per proteggere i dati archiviati integralmente. È tua responsabilità proteggere il file system e il dispositivo.

Tuttavia, crittografa AWS IoT Greengrass le copie locali dei tuoi segreti recuperati da. Gestione dei segreti AWS Per ulteriori informazioni, consultate il componente [Secret Manager](secret-manager-component.md).

# Gestione delle chiavi per il dispositivo Core Greengrass
<a name="key-management"></a>

È responsabilità del cliente garantire l'archiviazione sicura delle chiavi crittografiche (pubbliche e private) sul dispositivo principale Greengrass. AWS IoT Greengrass utilizza chiavi pubbliche e private per il seguente scenario:
+ La chiave client IoT viene utilizzata con il certificato IoT per autenticare l'handshake TLS (Transport Layer Security) quando un core Greengrass si connette a AWS IoT Core. Per ulteriori informazioni, consulta [Autenticazione e autorizzazione del dispositivo per AWS IoT Greengrass](device-auth.md).
**Nota**  
La chiave e il certificato sono anche indicati come chiave privata principale e il certificato del dispositivo core.

Un dispositivo core Greengrass supporta l'archiviazione di chiavi private utilizzando le autorizzazioni del file system o un modulo di sicurezza [hardware](hardware-security.md). Se si utilizzano chiavi private basate su file system, si è responsabili della loro archiviazione sicura sul dispositivo core.

# Integrazione della sicurezza hardware
<a name="hardware-security"></a>

**Nota**  
[Questa funzionalità è disponibile per la versione 2.5.3 e successive del componente Greengrass nucleus.](greengrass-nucleus-component.md) AWS IoT Greengrass attualmente non supporta questa funzionalità sui dispositivi Windows core. 

È possibile configurare il software AWS IoT Greengrass Core per utilizzare un modulo di sicurezza hardware (HSM) tramite l'interfaccia [PKCS \$111](https://en.wikipedia.org/wiki/PKCS_11). Questa funzionalità consente di archiviare in modo sicuro la chiave privata e il certificato del dispositivo in modo che non vengano esposti o duplicati nel software. È possibile archiviare la chiave privata e il certificato su un modulo hardware come un HSM o un Trusted Platform Module (TPM).

Il software AWS IoT Greengrass Core utilizza una chiave privata e un certificato X.509 per autenticare le connessioni ai servizi e. AWS IoT AWS IoT Greengrass Il [componente secret manager](secret-manager-component.md) utilizza questa chiave privata per crittografare e decrittografare in modo sicuro i segreti distribuiti su un dispositivo centrale Greengrass. Quando configurate un dispositivo principale per l'utilizzo di un HSM, questi componenti utilizzano la chiave privata e il certificato archiviati nell'HSM.

Il [componente del broker Moquette MQTT](mqtt-broker-moquette-component.md) memorizza anche una chiave privata per il certificato del server MQTT locale. Questo componente memorizza la chiave privata sul file system del dispositivo nella cartella di lavoro del componente. Attualmente, AWS IoT Greengrass non supporta l'archiviazione di questa chiave privata o certificato in un HSM.

**Suggerimento**  
Cerca i dispositivi che supportano questa funzionalità nel [AWS Partner Device Catalog](https://devices.amazonaws.com/search?kw=%22HSI%22&page=1).

**Topics**
+ [Requisiti](#hardware-security-requirements)
+ [Procedure ottimali per la sicurezza dell'hardware](#hardware-security-best-practices)
+ [Installa il software AWS IoT Greengrass Core con sicurezza hardware](#install-with-hardware-security)
+ [Configura la sicurezza hardware su un dispositivo principale esistente](#enable-hardware-security)
+ [Utilizza hardware senza supporto PKCS \$111](#hardware-without-pkcs11)
+ [Consulta anche](#hardware-security-see-also)

## Requisiti
<a name="hardware-security-requirements"></a>

È necessario soddisfare i seguenti requisiti per utilizzare un HSM su un dispositivo core Greengrass:
+ [Greengrass nucleus](greengrass-nucleus-component.md) v2.5.3 o versione successiva installato sul dispositivo principale. È possibile scegliere una versione compatibile quando si installa il software AWS IoT Greengrass Core su un dispositivo principale.
+ Il [componente del provider PKCS \$111](pkcs11-provider-component.md) installato sul dispositivo principale. È possibile scaricare e installare questo componente quando si installa il software AWS IoT Greengrass Core su un dispositivo principale.
+ <a name="hardware-security-module-requirements-key"></a>Un modulo di sicurezza hardware che supporta lo schema di firma [PKCS \$11 v1.5](https://tools.ietf.org/html/rfc2313) e le chiavi RSA con chiave RSA-2048 (o superiore) o chiavi ECC.
**Nota**  <a name="hardware-security-module-requirements-key-notes"></a>
Per utilizzare un modulo di sicurezza hardware con chiavi ECC, è necessario utilizzare [Greengrass nucleus](greengrass-nucleus-component.md) v2.5.6 o versione successiva.  
Per utilizzare un modulo di sicurezza hardware e un [gestore segreto](secret-manager-component.md), è necessario utilizzare un modulo di sicurezza hardware con chiavi RSA.
+ <a name="hardware-security-module-requirements-pkcs11-provider-library"></a>Una libreria di provider PKCS \$111 che il software AWS IoT Greengrass Core può caricare in fase di esecuzione (usando libdl) per richiamare le funzioni PKCS \$111. La libreria del provider PKCS \$111 deve implementare le seguenti operazioni API PKCS \$111:
  + `C_Initialize`
  + `C_Finalize`
  + `C_GetSlotList`
  + `C_GetSlotInfo`
  + `C_GetTokenInfo`
  + `C_OpenSession`
  + `C_GetSessionInfo`
  + `C_CloseSession`
  + `C_Login`
  + `C_Logout`
  + `C_GetAttributeValue`
  + `C_FindObjectsInit`
  + `C_FindObjects`
  + `C_FindObjectsFinal`
  + `C_DecryptInit`
  + `C_Decrypt`
  + `C_DecryptUpdate`
  + `C_DecryptFinal`
  + `C_SignInit`
  + `C_Sign`
  + `C_SignUpdate`
  + `C_SignFinal`
  + `C_GetMechanismList`
  + `C_GetMechanismInfo`
  + `C_GetInfo`
  + `C_GetFunctionList`
+ <a name="hardware-security-module-requirements-slot-label"></a>Il modulo hardware deve essere risolvibile mediante l'etichetta dello slot, come definito nella specifica PKCS\$111.
+ <a name="hardware-security-module-requirements-private-key-and-certificate"></a>È necessario archiviare la chiave privata e il certificato nell'HSM nello stesso slot e devono utilizzare la stessa etichetta e lo stesso ID dell'oggetto, se l'HSM supporta l'oggetto. IDs
+ <a name="hardware-security-module-requirements-object-label"></a>Il certificato e la chiave privata devono essere risolvibili mediante etichette di oggetti.
+ <a name="hardware-security-module-requirements-private-key-permissions"></a>La chiave privata deve avere le seguenti autorizzazioni:
  + `sign`
  + `decrypt`
+ <a name="hardware-security-module-requirements-secret-manager-permissions"></a>(Facoltativo) Per utilizzare il [componente Secret Manager](secret-manager-component.md), è necessario utilizzare la versione 2.1.0 o successiva e la chiave privata deve disporre delle seguenti autorizzazioni:
  + `unwrap`
  + `wrap`

## Procedure ottimali per la sicurezza dell'hardware
<a name="hardware-security-best-practices"></a>

Prendi in considerazione le seguenti best practice quando configuri la sicurezza hardware sui dispositivi core Greengrass.
+ Generare chiavi private direttamente nell'HSM tramite il generatore di numeri casuali hardware interno. Questo approccio è più sicuro rispetto all'importazione di una chiave privata generata altrove, poiché la chiave privata rimane all'interno dell'HSM.
+ Configura le chiavi private in modo che siano immutabili e proibisca l'esportazione.
+ Utilizza lo strumento di provisioning consigliato dal fornitore di hardware HSM per generare una richiesta di firma del certificato (CSR) utilizzando la chiave privata protetta dall'hardware, quindi utilizza la console o l'API per generare un certificato client. AWS IoT 

**Nota**  
La procedura consigliata in materia di sicurezza per ruotare le chiavi non si applica quando si generano chiavi private su un HSM.

## Installa il software AWS IoT Greengrass Core con sicurezza hardware
<a name="install-with-hardware-security"></a>

Quando installi il software AWS IoT Greengrass Core, puoi configurarlo per utilizzare una chiave privata generata in un HSM. Questo approccio segue le [migliori pratiche di sicurezza](#hardware-security-best-practices) per generare la chiave privata nell'HSM, in modo che la chiave privata rimanga all'interno dell'HSM.

Per installare il software AWS IoT Greengrass Core con sicurezza hardware, procedi come segue:

1. Genera una chiave privata nell'HSM.

1. Crea una richiesta di firma del certificato (CSR) dalla chiave privata.

1. Crea un certificato dalla CSR. È possibile creare un certificato firmato da AWS IoT o da un'altra autorità di certificazione (CA) principale. Per ulteriori informazioni su come utilizzare un'altra CA root, consulta [Create your own client certificate](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html) nella *AWS IoT Core Developer Guide*.

1. Scarica il AWS IoT certificato e importalo nell'HSM.

1. Installa il software AWS IoT Greengrass Core da un file di configurazione che specifica di utilizzare il componente del provider PKCS \$111 e la chiave privata e il certificato nell'HSM.

È possibile scegliere una delle seguenti opzioni di installazione per installare il software AWS IoT Greengrass Core con sicurezza hardware:
+ **Installazione manuale**

  Scegli questa opzione per creare manualmente AWS le risorse richieste e configurare la sicurezza hardware. Per ulteriori informazioni, consulta [Installa il software AWS IoT Greengrass Core con provisioning manuale delle risorse](manual-installation.md).
+ **Installazione con provisioning personalizzato**

  Scegliete questa opzione per sviluppare un'applicazione Java personalizzata che crei automaticamente AWS le risorse richieste e configuri la sicurezza hardware. Per ulteriori informazioni, consulta [Installa il software AWS IoT Greengrass Core con provisioning personalizzato delle risorse](custom-provisioning.md).

Attualmente, AWS IoT Greengrass non supporta l'installazione del software AWS IoT Greengrass Core con sicurezza hardware quando si [installa con il provisioning automatico delle risorse o il provisioning del AWS IoT](quick-installation.md) [parco veicoli](fleet-provisioning.md).

## Configura la sicurezza hardware su un dispositivo principale esistente
<a name="enable-hardware-security"></a>

È possibile importare la chiave privata e il certificato di un dispositivo principale in un HSM per configurare la sicurezza hardware.

**Considerazioni**  
È necessario disporre dell'accesso root al file system del dispositivo principale.
In questa procedura, si spegne il software AWS IoT Greengrass Core, in modo che il dispositivo principale sia offline e non disponibile durante la configurazione della sicurezza hardware.

Per configurare la sicurezza hardware su un dispositivo principale esistente, procedi come segue:

1. Inizializza l'HSM.

1. Implementa il [componente del provider PKCS \$111 sul](pkcs11-provider-component.md) dispositivo principale.

1. Arresta il software AWS IoT Greengrass Core.

1. Importa la chiave privata e il certificato del dispositivo principale nell'HSM.

1. Aggiorna il file di configurazione del software AWS IoT Greengrass Core per utilizzare la chiave privata e il certificato nell'HSM.

1. Avvia il software AWS IoT Greengrass Core.

### Fase 1: inizializzare il modulo di sicurezza hardware
<a name="enable-hardware-security-initialize-hsm"></a>

Completa il passaggio seguente per inizializzare l'HSM sul tuo dispositivo principale.

**Per inizializzare il modulo di sicurezza hardware**
+ Inizializza un token PKCS \$111 nell'HSM e salva l'ID dello slot e il PIN utente relativi al token. Consulta la documentazione del tuo HSM per scoprire come inizializzare un token. L'ID dello slot e il PIN utente verranno utilizzati successivamente quando si distribuisce e si configura il componente del provider PKCS \$111.

### Fase 2: Implementazione del componente del provider PKCS \$111
<a name="enable-hardware-security-deploy-pkcs11-provider"></a>

Completare i seguenti passaggi per distribuire e configurare il componente del provider [PKCS \$111](pkcs11-provider-component.md). È possibile distribuire il componente su uno o più dispositivi principali.

#### Per distribuire il componente del provider PKCS \$111 (console)
<a name="deploy-pkcs11-provider-component-console"></a>

1. **Nel menu di navigazione della [AWS IoT Greengrass console](https://console.aws.amazon.com/greengrass), scegli Componenti.**

1. Nella pagina **Componenti**, scegli la scheda **Componenti pubblici**, quindi scegli **aws.greengrass.crypto.Pkcs11Provider**.

1. Nella pagina **aws.greengrass.crypto.Pkcs11Provider**, scegli **(Distribuisci)**.

1. <a name="deploy-component-choose-deployment-step"></a>Da **Aggiungi alla distribuzione**, scegli una distribuzione esistente da modificare oppure scegli di creare una nuova distribuzione, quindi scegli **Avanti**.

1. <a name="deploy-component-choose-target-step"></a>Se hai scelto di creare una nuova distribuzione, scegli il dispositivo principale o il gruppo di oggetti di destinazione per la distribuzione. Nella pagina **Specificare la destinazione**, in **Obiettivo di distribuzione**, scegli un dispositivo principale o un gruppo di oggetti, quindi scegli **Avanti**.

1. Nella pagina **Seleziona componenti**, in **Componenti pubblici**, seleziona **aws.greengrass.crypto.Pkcs11Provider**, quindi scegli **Avanti**.

1. Nella pagina **Configura componenti **aws.greengrass.crypto.Pkcs11Provider****, selezionate e quindi effettuate le seguenti operazioni:

   1. Scegli **Configura componente**.

   1. Nella aws.greengrass.crypto.Pkcs11Provider modalità **Configura**, in **Aggiornamento della configurazione**, in **Configurazione da unire**, inserisci il seguente aggiornamento di configurazione. Aggiorna i seguenti parametri di configurazione con i valori per i dispositivi principali di destinazione. Specificate l'ID dello slot e il PIN utente in cui avete inizializzato in precedenza il token PKCS \$111. La chiave privata e il certificato verranno importati in questo slot nell'HSM in un secondo momento.<a name="pkcs11-provider-component-configuration-parameters"></a>  
`name`  
Un nome per la configurazione PKCS \$111.  
`library`  
Il percorso assoluto del file alla libreria dell'implementazione PKCS \$111 che il software AWS IoT Greengrass Core può caricare con libdl.  
`slot`  
L'ID dello slot che contiene la chiave privata e il certificato del dispositivo. Questo valore è diverso dall'indice o dall'etichetta dello slot.  
`userPin`  
Il PIN utente da utilizzare per accedere allo slot.

      ```
      {
        "name": "softhsm_pkcs11",
        "library": "/usr/lib/softhsm/libsofthsm2.so",
        "slot": 1,
        "userPin": "1234"
      }
      ```

   1. Scegli **Conferma** per chiudere la modalità, quindi scegli **Avanti**.

1. <a name="deploy-component-configure-advanced-settings-step"></a>Nella pagina **Configura impostazioni avanzate**, mantieni le impostazioni di configurazione predefinite e scegli **Avanti**.

1. <a name="deploy-component-review-and-deploy-step"></a>Nella pagina **Review (Verifica)**, scegli **Deploy (Distribuisci)**.

   Il completamento della distribuzione può richiedere fino a un minuto.

#### Per distribuire il componente provider PKCS \$111 ()AWS CLI
<a name="deploy-pkcs11-provider-component-cli"></a>

Per distribuire il componente del provider PKCS \$111, create un documento di distribuzione che `aws.greengrass.crypto.Pkcs11Provider` includa l'`components`oggetto e specificate l'aggiornamento della configurazione per il componente. Segui le istruzioni riportate [Creare distribuzione](create-deployments.md) per creare una nuova distribuzione o modificare una distribuzione esistente.

Il seguente esempio di documento di distribuzione parziale specifica di distribuire e configurare il componente del provider PKCS \$111. Aggiornate i seguenti parametri di configurazione con i valori per i dispositivi principali di destinazione. Salva l'ID dello slot e il PIN utente da utilizzare in seguito quando importi la chiave privata e il certificato nell'HSM.<a name="pkcs11-provider-component-configuration-parameters"></a>

`name`  
Un nome per la configurazione PKCS \$111.

`library`  
Il percorso assoluto del file alla libreria dell'implementazione PKCS \$111 che il software AWS IoT Greengrass Core può caricare con libdl.

`slot`  
L'ID dello slot che contiene la chiave privata e il certificato del dispositivo. Questo valore è diverso dall'indice o dall'etichetta dello slot.

`userPin`  
Il PIN utente da utilizzare per accedere allo slot.

```
{
  "name": "softhsm_pkcs11",
  "library": "/usr/lib/softhsm/libsofthsm2.so",
  "slot": 1,
  "userPin": "1234"
}
```

```
{
  ...,
  "components": {
    ...,
    "aws.greengrass.crypto.Pkcs11Provider": {
      "componentVersion": "2.0.0",
      "configurationUpdate": {
        "merge": "{\"name\":\"softhsm_pkcs11\",\"library\":\"/usr/lib/softhsm/libsofthsm2.so\",\"slot\":1,\"userPin\":\"1234\"}"
      }
    }
  }
}
```

La distribuzione può richiedere alcuni minuti. È possibile utilizzare il AWS IoT Greengrass servizio per verificare lo stato della distribuzione. È possibile controllare i registri del software AWS IoT Greengrass Core per verificare che il componente del provider PKCS \$111 venga distribuito correttamente. Per ulteriori informazioni, consulta gli argomenti seguenti:
+ [Verifica lo stato della distribuzione](check-deployment-status.md)
+ [Monitora AWS IoT Greengrass i registri](monitor-logs.md)

Se la distribuzione non riesce, puoi risolvere i problemi relativi alla distribuzione su ogni dispositivo principale. Per ulteriori informazioni, consulta [Risoluzione dei problemi AWS IoT Greengrass V2](troubleshooting.md).

### Passaggio 3: Aggiornare la configurazione sul dispositivo principale
<a name="enable-hardware-security-configure-core-device"></a>

Il software AWS IoT Greengrass Core utilizza un file di configurazione che specifica il funzionamento del dispositivo. Questo file di configurazione include dove trovare la chiave privata e il certificato utilizzati dal dispositivo per connettersi a. Cloud AWS Completa i seguenti passaggi per importare la chiave privata e il certificato del dispositivo principale nell'HSM e aggiornare il file di configurazione per utilizzare l'HSM.

**Per aggiornare la configurazione sul dispositivo principale per utilizzare la sicurezza hardware**

1. Arresta il software AWS IoT Greengrass Core. Se hai [configurato il software AWS IoT Greengrass Core come servizio di sistema](configure-greengrass-core-v2.md#configure-system-service) con systemd, puoi eseguire il seguente comando per arrestare il software.

   ```
   sudo systemctl stop greengrass.service
   ```

1. Trova la chiave privata e i file di certificato del dispositivo principale.
   + Se hai installato il software AWS IoT Greengrass Core con [provisioning automatico](quick-installation.md) o [fleet provisioning](fleet-provisioning.md), la chiave privata esiste in`/greengrass/v2/privKey.key`, e il certificato esiste in. `/greengrass/v2/thingCert.crt`
   + Se hai installato il software AWS IoT Greengrass Core con il [provisioning manuale](manual-installation.md), la chiave privata esiste `/greengrass/v2/private.pem.key` per impostazione predefinita e il certificato esiste per impostazione predefinita. `/greengrass/v2/device.pem.crt`

   Puoi anche controllare le `system.certificateFilePath` proprietà `system.privateKeyPath` and `/greengrass/v2/config/effectiveConfig.yaml` per trovare la posizione di questi file.

1. Importa la chiave privata e il certificato nell'HSM. Consulta la documentazione del tuo HSM per scoprire come importare chiavi private e certificati al suo interno. Importa la chiave privata e il certificato utilizzando l'ID dello slot e il PIN utente su cui hai inizializzato in precedenza il token PKCS \$111. È necessario utilizzare la stessa etichetta dell'oggetto e lo stesso ID dell'oggetto per la chiave privata e il certificato. Salvate l'etichetta dell'oggetto che specificate quando importate ogni file. Questa etichetta viene utilizzata successivamente quando si aggiorna la configurazione del software AWS IoT Greengrass Core per utilizzare la chiave privata e il certificato nell'HSM.

1. Aggiorna la configurazione AWS IoT Greengrass Core per utilizzare la chiave privata e il certificato nell'HSM. Per aggiornare la configurazione, modificate il file di configurazione AWS IoT Greengrass Core ed eseguite il software AWS IoT Greengrass Core con il file di configurazione aggiornato per applicare la nuova configurazione.

   Esegui questa operazione:

   1. Create un backup del file di configurazione AWS IoT Greengrass Core. Puoi utilizzare questo backup per ripristinare il dispositivo principale in caso di problemi durante la configurazione della sicurezza hardware.

      ```
      sudo cp /greengrass/v2/config/effectiveConfig.yaml ~/ggc-config-backup.yaml
      ```

   1. Apri il file di configurazione AWS IoT Greengrass Core in un editor di testo. Ad esempio, è possibile eseguire il comando seguente per utilizzare GNU nano per modificare il file. Sostituisci `/greengrass/v2` con il percorso della cartella principale di Greengrass.

      ```
      sudo nano /greengrass/v2/config/effectiveConfig.yaml
      ```

   1. Sostituisci il valore di `system.privateKeyPath` con l'URI PKCS \$111 per la chiave privata nell'HSM. *iotdevicekey*Sostituiscilo con l'etichetta dell'oggetto in cui hai importato in precedenza la chiave privata e il certificato.

      ```
      pkcs11:object=iotdevicekey;type=private
      ```

   1. Sostituisci il valore di `system.certificateFilePath` con l'URI PKCS \$111 per il certificato nell'HSM. *iotdevicekey*Sostituiscilo con l'etichetta dell'oggetto in cui hai importato in precedenza la chiave privata e il certificato.

      ```
      pkcs11:object=iotdevicekey;type=cert
      ```

   Dopo aver completato questi passaggi, la `system` proprietà nel file di configurazione AWS IoT Greengrass Core dovrebbe essere simile all'esempio seguente.

   ```
   system:
     certificateFilePath: "pkcs11:object=iotdevicekey;type=cert"
     privateKeyPath: "pkcs11:object=iotdevicekey;type=private"
     rootCaPath: "/greengrass/v2/rootCA.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   ```

1. Applica la configurazione nel `effectiveConfig.yaml` file aggiornato. Esegui `Greengrass.jar` con il `--init-config` parametro in cui applicare la configurazione`effectiveConfig.yaml`. Sostituisci `/greengrass/v2` con il percorso della cartella principale di Greengrass.

   ```
   sudo java -Droot="/greengrass/v2" \
     -jar /greengrass/v2/alts/current/distro/lib/Greengrass.jar \
     --start false \
     --init-config /greengrass/v2/config/effectiveConfig.yaml
   ```

1. Avvia il software AWS IoT Greengrass Core. Se hai [configurato il software AWS IoT Greengrass Core come servizio di sistema](configure-greengrass-core-v2.md#configure-system-service) con systemd, puoi eseguire il seguente comando per avviare il software.

   ```
   sudo systemctl start greengrass.service
   ```

   Per ulteriori informazioni, consulta [Esegui il software AWS IoT Greengrass Core](run-greengrass-core-v2.md).

1. Controlla i registri del software AWS IoT Greengrass Core per verificare che il software si avvii e si connetta a. Cloud AWS Il software AWS IoT Greengrass Core utilizza la chiave privata e il certificato per connettersi ai AWS IoT Greengrass servizi AWS IoT and.

   ```
   sudo tail -f /greengrass/v2/logs/greengrass.log
   ```

   I seguenti messaggi di registro a livello di informazioni indicano che il software AWS IoT Greengrass Core si connette correttamente ai servizi AWS IoT and AWS IoT Greengrass .

   ```
   2021-12-06T22:47:53.702Z [INFO] (Thread-3) com.aws.greengrass.mqttclient.AwsIotMqttClient: Successfully connected to AWS IoT Core. {clientId=MyGreengrassCore5, sessionPresent=false}
   ```

1. (Facoltativo) Dopo aver verificato che il software AWS IoT Greengrass Core funzioni con la chiave privata e il certificato nell'HSM, eliminate la chiave privata e i file del certificato dal file system del dispositivo. Eseguite il comando seguente e sostituite i percorsi dei file con i percorsi della chiave privata e dei file dei certificati.

   ```
   sudo rm /greengrass/v2/privKey.key
   sudo rm /greengrass/v2/thingCert.crt
   ```

## Utilizza hardware senza supporto PKCS \$111
<a name="hardware-without-pkcs11"></a>

La libreria PKCS\$111 viene in genere offerta dal fornitore hardware o è open source. Ad esempio, con hardware conforme agli standard (ad esempio TPM1 .2), potrebbe essere possibile utilizzare il software open source esistente. Tuttavia, se il tuo hardware non dispone di un'implementazione della libreria PKCS \$111 corrispondente o se desideri scrivere un provider PKCS \$111 personalizzato, contatta il tuo rappresentante di Amazon Web Services Enterprise Support per domande relative all'integrazione.

## Consulta anche
<a name="hardware-security-see-also"></a>
+ [Guida all'uso dell'interfaccia con token crittografici PKCS \$111 versione 2.4.0](http://docs.oasis-open.org/pkcs11/pkcs11-ug/v2.40/pkcs11-ug-v2.40.html)
+ [RFC 7512](https://tools.ietf.org/html/rfc7512)
+ [PKCS \$11: RSA Encryption versione 1.5](https://tools.ietf.org/html/rfc2313)

# Autenticazione e autorizzazione del dispositivo per AWS IoT Greengrass
<a name="device-auth"></a>

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

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

AWS IoT le politiche definiscono l'insieme di operazioni consentite per i AWS IoT dispositivi. In particolare, consentono e negano l'accesso e le operazioni relative al AWS IoT Core piano AWS IoT Greengrass dati, come la pubblicazione di messaggi MQTT e il recupero delle ombre dei dispositivi.

Tutti i dispositivi richiedono una registrazione nel AWS IoT Core registro e un certificato X.509 attivato con una policy allegata. AWS IoT I dispositivi rientrano in due categorie:
+ **Dispositivi core Greengrass**

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

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

## Certificati X.509
<a name="x509-certificates"></a>

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

In un AWS IoT Greengrass ambiente, i dispositivi utilizzano certificati con chiavi pubbliche e private per le seguenti connessioni Transport Layer Security (TLS):
+ Il componente AWS IoT client del dispositivo principale Greengrass che si connette a AWS IoT Core e AWS IoT Greengrass tramite Internet.
+ Dispositivi client che si connettono a AWS IoT Greengrass Internet per rilevare i dispositivi principali.
+ Il componente broker MQTT sul core Greengrass si collega ai dispositivi Greengrass del gruppo tramite la rete locale.

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

### Certificati dell'autorità di certificazione (CA)
<a name="ca-certificates"></a>

I dispositivi core e i dispositivi client Greengrass scaricano un certificato CA root utilizzato per l'autenticazione con i servizi AWS IoT Core and AWS IoT Greengrass . Ti consigliamo di utilizzare un certificato di CA root di Amazon Trust Services (ATS), ad esempio [Amazon Root CA 1](https://www.amazontrust.com/repository/AmazonRootCA1.pem). Per ulteriori informazioni, consulta [Certificati emessi da una CA per l'autenticazione del server](https://docs.aws.amazon.com/iot/latest/developerguide/server-authentication.html#server-authentication-certs) nella *Guida per gli sviluppatori AWS IoT Core *.

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

### Rotazione dei certificati sul broker MQTT locale
<a name="mqtt-certificate-expiration"></a>

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

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

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

## AWS IoT politiche per le operazioni sul piano dati
<a name="iot-policies"></a>

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

[Una AWS IoT policy è un documento JSON simile a una policy IAM.](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html#policies-grammar-json) Contiene una o più istruzioni delle policy che specificano le proprietà seguenti:
+ `Effect`. La modalità di accesso, che può essere `Allow` o`Deny`.
+ `Action`. L'elenco delle azioni consentite o negate dalla politica.
+ `Resource`. L'elenco delle risorse su cui l'azione è consentita o negata.

AWS IoT i criteri supportano i caratteri jolly `*` come caratteri jolly e trattano i caratteri jolly MQTT (`+`and`#`) come stringhe letterali. *Per ulteriori informazioni sui caratteri jolly, consultate `*` Using jolly in resource nella [Guida](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html#reference_policies_elements_resource_wildcards) per l'utente. ARNs AWS Identity and Access Management *

Per ulteriori informazioni, consulta [Policy AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policies.html) e [Operazioni di policy AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-actions.html) nella *Guida per gli sviluppatori AWS IoT Core *.

**Importante**  
<a name="thing-policy-variable-not-supported"></a>[Le variabili Thing Policy](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) non sono supportate nelle AWS IoT politiche per i dispositivi principali o nelle operazioni del piano dati Greengrass. Puoi invece utilizzare un carattere jolly che corrisponda a più dispositivi con nomi simili. Ad esempio, puoi specificare `MyGreengrassDevice*` di `MyGreengrassDevice1` abbinare e così via. `MyGreengrassDevice2` 

**Nota**  
AWS IoT Core consente di allegare AWS IoT policy a gruppi di oggetti per definire le autorizzazioni per gruppi di dispositivi. Le policy dei gruppi di oggetti non consentono l'accesso alle operazioni del piano AWS IoT Greengrass dati. Per consentire a un oggetto l'accesso a un'operazione del piano AWS IoT Greengrass dati, aggiungi l'autorizzazione a una AWS IoT policy che alleghi al certificato dell'oggetto.

### AWS IoT Greengrass V2 azioni politiche
<a name="greengrass-policy-actions"></a>

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

`greengrass:GetComponentVersionArtifact`  <a name="greengrass-get-component-version-artifact-action"></a>
Concede l'autorizzazione a ottenere un URL predefinito per scaricare un elemento del componente pubblico o un elemento del componente Lambda.  
Questa autorizzazione viene valutata quando un dispositivo principale riceve una distribuzione che specifica un componente pubblico o una Lambda con artefatti. Se il dispositivo principale contiene già l'artefatto, non lo scarica nuovamente.  
Tipo di risorsa: `componentVersion`  
Formato ARN delle risorse: `arn:aws:greengrass:region:account-id:components:component-name:versions:component-version`

`greengrass:ResolveComponentCandidates`  <a name="greengrass-resolve-component-candidates-action"></a>
Concede l'autorizzazione a identificare un elenco di componenti che soddisfano i requisiti di componente, versione e piattaforma per una distribuzione. Se i requisiti sono in conflitto o non esistono componenti che soddisfino i requisiti, questa operazione restituisce un errore e la distribuzione non riesce sul dispositivo.  
Questa autorizzazione viene valutata quando un dispositivo principale riceve una distribuzione che specifica i componenti.  
Tipo di risorsa: Nessuno  
Formato ARN delle risorse: `*`

`greengrass:GetDeploymentConfiguration`  <a name="greengrass-get-deployment-configuration-action"></a>
Concede l'autorizzazione a ottenere un URL predefinito per scaricare un documento di distribuzione di grandi dimensioni.  
Questa autorizzazione viene valutata quando un dispositivo principale riceve una distribuzione che specifica un documento di distribuzione più grande di 7 KB (se la distribuzione ha come obiettivo un oggetto) o 31 KB (se la distribuzione è destinata a un gruppo di oggetti). Il documento di distribuzione include le configurazioni dei componenti, le politiche di distribuzione e i metadati di distribuzione. Per ulteriori informazioni, consulta [Implementazione AWS IoT Greengrass dei componenti sui dispositivi](manage-deployments.md).  
Questa funzionalità è disponibile per la versione 2.3.0 e successive del componente [Greengrass](greengrass-nucleus-component.md) nucleus.  
Tipo di risorsa: Nessuno  
Formato ARN delle risorse: `*`

`greengrass:ListThingGroupsForCoreDevice`  <a name="greengrass-list-thing-groups-for-core-device-action"></a>
Concede l'autorizzazione a ottenere la gerarchia dei gruppi di oggetti di un dispositivo principale.  
Questa autorizzazione viene verificata quando un dispositivo principale riceve una distribuzione da. AWS IoT Greengrass Il dispositivo principale utilizza questa azione per identificare se è stato rimosso da un gruppo di oggetti dopo l'ultima distribuzione. Se il dispositivo principale è stato rimosso da un gruppo di oggetti e quel gruppo di oggetti è l'obiettivo di una distribuzione sul dispositivo principale, il dispositivo principale rimuove i componenti installati da quella distribuzione.  
Questa funzionalità è utilizzata dalla versione 2.5.0 e successive del componente [Greengrass](greengrass-nucleus-component.md) nucleus.  
Tipo di risorsa: `thing` (dispositivo principale)  
Formato ARN delle risorse: `arn:aws:iot:region:account-id:thing/core-device-thing-name`

`greengrass:VerifyClientDeviceIdentity`  <a name="greengrass-verify-client-device-identity-action"></a>
Concede l'autorizzazione a verificare l'identità di un dispositivo client che si connette a un dispositivo principale.  
Questa autorizzazione viene valutata quando un dispositivo principale esegue il [componente di autenticazione del dispositivo client](client-device-auth-component.md) e riceve una connessione MQTT da un dispositivo client. Il dispositivo client presenta il certificato del dispositivo. AWS IoT Quindi, il dispositivo principale invia il certificato del dispositivo al servizio AWS IoT Greengrass cloud per verificare l'identità del dispositivo client. Per ulteriori informazioni, consulta [Interagisci con dispositivi IoT locali](interact-with-local-iot-devices.md).  
Tipo di risorsa: Nessuno  
Formato ARN delle risorse: `*`

`greengrass:VerifyClientDeviceIoTCertificateAssociation`  <a name="greengrass-verify-client-device-iot-certificate-association-action"></a>
Concede l'autorizzazione a verificare se un dispositivo client è associato a un AWS IoT certificato.  
Questa autorizzazione viene valutata quando un dispositivo principale esegue il [componente di autenticazione del dispositivo client](client-device-auth-component.md) e autorizza un dispositivo client a connettersi tramite MQTT. Per ulteriori informazioni, consulta [Interagisci con dispositivi IoT locali](interact-with-local-iot-devices.md).  
Affinché un dispositivo principale possa utilizzare questa operazione, il [ruolo di servizio Greengrass](greengrass-service-role.md) deve essere associato all'utente Account AWS e consentire l'`iot:DescribeCertificate`autorizzazione.
Tipo di risorsa: `thing` (dispositivo client)  
Formato ARN delle risorse: `arn:aws:iot:region:account-id:thing/client-device-thing-name`

`greengrass:PutCertificateAuthorities`  <a name="greengrass-put-certificate-authorities-action"></a>
Concede l'autorizzazione a caricare certificati di autorità di certificazione (CA) che i dispositivi client possono scaricare per verificare il dispositivo principale.  
Questa autorizzazione viene valutata quando un dispositivo principale installa ed esegue il componente di autenticazione del [dispositivo client](client-device-auth-component.md). Questo componente crea un'autorità di certificazione locale e utilizza questa operazione per caricare i relativi certificati CA. I dispositivi client scaricano questi certificati CA quando utilizzano l'operazione [Discover](#greengrass-discover-action) per trovare i dispositivi principali a cui connettersi. Quando i dispositivi client si connettono a un broker MQTT su un dispositivo principale, utilizzano questi certificati CA per verificare l'identità del dispositivo principale. Per ulteriori informazioni, consulta [Interagisci con dispositivi IoT locali](interact-with-local-iot-devices.md).  
Tipo di risorsa: Nessuno  
Formato ARN: `*`

`greengrass:GetConnectivityInfo`  <a name="greengrass-get-connectivity-info-action"></a>
Concede l'autorizzazione a ottenere informazioni sulla connettività per un dispositivo principale. Queste informazioni descrivono come i dispositivi client possono connettersi al dispositivo principale.  
Questa autorizzazione viene valutata quando un dispositivo principale installa ed esegue il componente di [autenticazione del dispositivo client](client-device-auth-component.md). Questo componente utilizza le informazioni di connettività per generare certificati CA validi da caricare sul servizio AWS IoT Greengrass cloud con l'operazione. [PutCertificateAuthories](#greengrass-put-certificate-authorities-action) I dispositivi client utilizzano questi certificati CA per verificare l'identità del dispositivo principale. Per ulteriori informazioni, consulta [Interagisci con dispositivi IoT locali](interact-with-local-iot-devices.md).  
È inoltre possibile utilizzare questa operazione sul piano di AWS IoT Greengrass controllo per visualizzare le informazioni di connettività per un dispositivo principale. Per ulteriori informazioni, consulta [GetConnectivityInfo](https://docs.aws.amazon.com/greengrass/v1/apireference/getconnectivityinfo-get.html) nella *documentazione di riferimento dell’API AWS IoT Greengrass V1 *.  
Tipo di risorsa: `thing` (dispositivo principale)  
Formato ARN delle risorse: `arn:aws:iot:region:account-id:thing/core-device-thing-name`

`greengrass:UpdateConnectivityInfo`  <a name="greengrass-update-connectivity-info-action"></a>
Concede l'autorizzazione ad aggiornare le informazioni di connettività per un dispositivo principale. Queste informazioni descrivono come i dispositivi client possono connettersi al dispositivo principale.  
Questa autorizzazione viene valutata quando un dispositivo principale esegue il componente del [rilevatore IP](ip-detector-component.md). Questo componente identifica le informazioni necessarie ai dispositivi client per connettersi al dispositivo principale sulla rete locale. Quindi, questo componente utilizza questa operazione per caricare le informazioni di connettività sul servizio AWS IoT Greengrass cloud, in modo che i dispositivi client possano recuperare queste informazioni con l'operazione [Discover](#greengrass-discover-action). Per ulteriori informazioni, consulta [Interagisci con dispositivi IoT locali](interact-with-local-iot-devices.md).  
È inoltre possibile utilizzare questa operazione sul piano di AWS IoT Greengrass controllo per aggiornare manualmente le informazioni di connettività per un dispositivo principale. Per ulteriori informazioni, consulta [UpdateConnectivityInfo](https://docs.aws.amazon.com/greengrass/v1/apireference/updateconnectivityinfo-put.html) nella *documentazione di riferimento dell’API AWS IoT Greengrass V1 *.  
Tipo di risorsa: `thing` (dispositivo principale)  
Formato ARN delle risorse: `arn:aws:iot:region:account-id:thing/core-device-thing-name`Azioni del dispositivo client

`greengrass:Discover`  <a name="greengrass-discover-action"></a>
Concede l'autorizzazione a scoprire le informazioni di connettività per i dispositivi principali a cui un dispositivo client può connettersi. Queste informazioni descrivono come il dispositivo client può connettersi ai dispositivi principali. Un dispositivo client può scoprire solo i dispositivi principali a cui lo hai associato utilizzando l'[BatchAssociateClientDeviceWithCoreDevice](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchAssociateClientDeviceWithCoreDevice.html)operazione. Per ulteriori informazioni, consulta [Interagisci con dispositivi IoT locali](interact-with-local-iot-devices.md).  
Tipo di risorsa: `thing` (dispositivo client)  
Formato ARN delle risorse: `arn:aws:iot:region:account-id:thing/client-device-thing-name`

## Aggiorna la politica di un dispositivo principale AWS IoT
<a name="update-core-device-iot-policy"></a>

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

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

### Rivedi e aggiorna la AWS IoT politica di un dispositivo principale (console)
<a name="update-core-device-iot-policy-console"></a>

1. <a name="update-iot-policy-console-open-greengrass-console"></a>Nel menu di navigazione della [AWS IoT Greengrass console](https://console.aws.amazon.com/greengrass), scegli **Dispositivi principali**.

1. <a name="update-iot-policy-console-choose-core-device"></a>Nella pagina **Dispositivi principali**, scegli il dispositivo principale da aggiornare.

1. <a name="update-iot-policy-console-choose-core-device-thing"></a>Nella pagina dei dettagli del dispositivo principale, scegli il link all'**oggetto** del dispositivo principale. Questo link apre la pagina dei dettagli dell'oggetto nella AWS IoT console.

1. <a name="update-iot-policy-console-choose-thing-security"></a>Nella pagina dei dettagli dell'oggetto, scegli **Certificati**.

1. <a name="update-iot-policy-console-choose-thing-certificate"></a>Nella scheda **Certificati**, scegli il certificato attivo dell'oggetto.

1. <a name="update-iot-policy-console-choose-certificate-policies"></a>Nella pagina dei dettagli del certificato, scegli **Politiche**.

1. <a name="update-iot-policy-console-choose-policy"></a>Nella scheda **Politiche**, scegli la AWS IoT politica da rivedere e aggiornare. Puoi aggiungere le autorizzazioni richieste a qualsiasi policy allegata al certificato attivo del dispositivo principale.
**Nota**  <a name="quick-installation-iot-policies-note"></a>
Se hai utilizzato il programma di [installazione del software AWS IoT Greengrass Core per il provisioning delle risorse](quick-installation.md), hai due AWS IoT politiche. Ti consigliamo di scegliere la politica denominata **GreengrassV2IoTThingPolicy**, se esiste. I dispositivi principali creati con il programma di installazione rapida utilizzano questo nome di policy per impostazione predefinita. Se aggiungi autorizzazioni a questo criterio, concedi tali autorizzazioni anche ad altri dispositivi principali che utilizzano questo criterio.

1. <a name="update-iot-policy-console-edit-policy"></a>Nella panoramica della politica, scegli **Modifica** versione attiva.

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

1. <a name="update-iot-policy-console-set-as-active-version"></a>Per impostare una nuova versione della politica come versione attiva, in **Stato della versione della politica**, seleziona **Imposta la versione modificata come versione attiva per questa politica**.

1. <a name="update-iot-policy-console-save-policy"></a>Scegli **Salva come nuova versione**.

### Rivedi e aggiorna la AWS IoT politica di un dispositivo principale (AWS CLI)
<a name="update-core-device-iot-policy-cli"></a>

1. <a name="update-iot-policy-cli-list-thing-principals"></a>Elenca i principi fondamentali del AWS IoT dispositivo principale. I principali degli oggetti possono essere certificati di dispositivo X.509 o altri identificatori. Esegui il comando seguente e sostituiscilo *MyGreengrassCore* con il nome del dispositivo principale.

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

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

   ```
   {
       "principals": [
           "arn:aws:iot:us-west-2:123456789012:cert/certificateId"
       ]
   }
   ```

1. <a name="update-iot-policy-cli-identify-active-certificate"></a>Identifica il certificato attivo del dispositivo principale. Esegui il comando seguente e sostituiscilo *certificateId* con l'ID di ogni certificato del passaggio precedente finché non trovi il certificato attivo. L'ID del certificato è la stringa esadecimale alla fine dell'ARN del certificato. L'`--query`argomento specifica di visualizzare solo lo stato del certificato.

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

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

1. <a name="update-iot-policy-cli-list-certificate-policies"></a>Elenca le AWS IoT politiche allegate al certificato. Esegui il comando seguente e sostituisci l'ARN del certificato con l'ARN del certificato.

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

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

   ```
   {
       "policies": [
           {
               "policyName": "GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias",
               "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias"
           },
           {
               "policyName": "GreengrassV2IoTThingPolicy",
               "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy"
           }
       ]
   }
   ```

1. <a name="update-iot-policy-cli-choose-policy"></a>Scegli la politica da visualizzare e aggiornare.
**Nota**  <a name="quick-installation-iot-policies-note"></a>
Se hai utilizzato il programma di [installazione del software AWS IoT Greengrass Core per il provisioning delle risorse](quick-installation.md), hai due AWS IoT politiche. Ti consigliamo di scegliere la politica denominata **GreengrassV2IoTThingPolicy**, se esiste. I dispositivi principali creati con il programma di installazione rapida utilizzano questo nome di policy per impostazione predefinita. Se aggiungi autorizzazioni a questo criterio, concedi tali autorizzazioni anche ad altri dispositivi principali che utilizzano questo criterio.

1. <a name="update-iot-policy-cli-get-policy-document"></a>Scarica il documento della politica. Esegui il comando seguente e sostituiscilo *GreengrassV2IoTThingPolicy* con il nome della politica.

   ```
   aws iot get-policy --policy-name GreengrassV2IoTThingPolicy
   ```

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

   ```
   {
       "policyName": "GreengrassV2IoTThingPolicy",
       "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy",
       "policyDocument": "{\
     \\"Version\\": \\"2012-10-17		 	 	 \\",\
     \\"Statement\\": [\
       {\
         \\"Effect\\": \\"Allow\\",\
         \\"Action\\": [\
                   \\"iot:Connect\\",\
                   \\"iot:Publish\\",\
                   \\"iot:Subscribe\\",\
                   \\"iot:Receive\\",\
                   \\"greengrass:*\\"\
   ],\
         \\"Resource\\": \\"*\\"\
       }\
     ]\
   }",
       "defaultVersionId": "1",
       "creationDate": "2021-02-05T16:03:14.098000-08:00",
       "lastModifiedDate": "2021-02-05T16:03:14.098000-08:00",
       "generationId": "f19144b798534f52c619d44f771a354f1b957dfa2b850625d9f1d0fde530e75f"
   }
   ```

1. <a name="update-iot-policy-cli-create-policy-document-file"></a>Utilizzate un convertitore online o un altro strumento per convertire la stringa del documento di policy in un oggetto JSON, quindi salvatela in un file denominato. `iot-policy.json`

   Ad esempio, se è installato lo strumento [jq](https://stedolan.github.io/jq/), è possibile eseguire il comando seguente per ottenere il documento di policy, convertirlo in un oggetto JSON e salvare il documento di policy come oggetto JSON.

   ```
   aws iot get-policy --policy-name GreengrassV2IoTThingPolicy --query 'policyDocument' | jq fromjson >> iot-policy.json
   ```

1. Esamina il documento di policy e aggiungi, rimuovi o modifica le autorizzazioni secondo necessità.

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

   ```
   nano iot-policy.json
   ```

   Al termine, il documento sulla policy potrebbe essere simile alla [AWS IoT policy minima per i dispositivi principali](#greengrass-core-minimal-iot-policy).

1. <a name="update-iot-policy-cli-create-policy-version"></a>Salva le modifiche come nuova versione della politica. Esegui il comando seguente e sostituiscilo *GreengrassV2IoTThingPolicy* con il nome della politica.

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

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

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

## AWS IoT Politica minima per i dispositivi AWS IoT Greengrass V2 principali
<a name="greengrass-core-minimal-iot-policy"></a>

**Importante**  
Le versioni successive del [componente Greengrass nucleus](greengrass-nucleus-component.md) richiedono autorizzazioni aggiuntive sulla policy minima. AWS IoT Potrebbe essere necessario [aggiornare le AWS IoT politiche dei dispositivi principali](#update-core-device-iot-policy) per concedere autorizzazioni aggiuntive.  
I dispositivi principali che eseguono Greengrass nucleus v2.5.0 e versioni successive utilizzano l'`greengrass:ListThingGroupsForCoreDevice`autorizzazione per disinstallare i componenti quando si rimuove un dispositivo principale da un gruppo di oggetti.
I dispositivi principali che eseguono Greengrass nucleus v2.3.0 e versioni successive utilizzano l'`greengrass:GetDeploymentConfiguration`autorizzazione per supportare documenti di configurazione di distribuzione di grandi dimensioni.

L'esempio di policy seguente include il set di operazioni minime necessarie per supportare le funzionalità di base di Greengrass per il dispositivo core.
+ La `Connect` policy include il carattere `*` jolly dopo il nome dell'oggetto del dispositivo principale (ad esempio,). `core-device-thing-name*` Il dispositivo principale utilizza lo stesso certificato del dispositivo per effettuare più sottoscrizioni simultanee AWS IoT Core, ma l'ID client in una connessione potrebbe non corrispondere esattamente al nome dell'oggetto del dispositivo principale. Dopo i primi 50 abbonamenti, il dispositivo principale utilizza `core-device-thing-name#number` come ID client, dove `number` aumenta ogni 50 abbonamenti aggiuntivi. Ad esempio, quando un dispositivo principale denominato `MyCoreDevice` crea 150 abbonamenti simultanei, utilizza il seguente client: IDs
  + Abbonamenti da 1 a 50: `MyCoreDevice`
  + Abbonamenti da 51 a 100: `MyCoreDevice#2`
  + Abbonamenti da 101 a 150: `MyCoreDevice#3`

  La wildcard consente al dispositivo principale di connettersi quando utilizza questi client con un IDs suffisso.
+ La policy elenca gli argomenti MQTT e i filtri di argomento su cui il dispositivo core può pubblicare messaggi, sottoscrivere e ricevere messaggi, inclusi gli argomenti utilizzati per lo stato shadow. Per supportare lo scambio di messaggi tra AWS IoT Core i componenti Greengrass e i dispositivi client, specifica gli argomenti e i filtri degli argomenti che desideri consentire. Per ulteriori informazioni, consulta [Esempi di pubblicazione/sottoscrizione a policy](https://docs.aws.amazon.com/iot/latest/developerguide/pub-sub-policy.html) nella *Guida per gli sviluppatori AWS IoT Core *.
+ La politica concede l'autorizzazione alla pubblicazione dei dati di telemetria nel seguente argomento.

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

  Puoi rimuovere questa autorizzazione per i dispositivi principali in cui disabiliti la telemetria. Per ulteriori informazioni, consulta [Raccogli dati di telemetria sanitaria del sistema dai dispositivi principali AWS IoT Greengrass](telemetry.md).
+ La policy concede l'autorizzazione ad assumere un ruolo IAM tramite un alias di ruolo. AWS IoT Il dispositivo principale utilizza questo ruolo, chiamato ruolo di scambio di token, per acquisire AWS credenziali che può utilizzare per autenticare le richieste. AWS Per ulteriori informazioni, consulta [Autorizza i dispositivi principali a interagire con i servizi AWS](device-service-role.md).

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

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

****  

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

------

## AWS IoT Politica minima per il supporto dei dispositivi client
<a name="client-device-support-minimal-iot-policy"></a>

La seguente policy di esempio include il set minimo di azioni necessarie per supportare l'interazione con i dispositivi client su un dispositivo principale. Per supportare i dispositivi client, un dispositivo principale deve disporre delle autorizzazioni previste in questa AWS IoT politica oltre alla [AWS IoT politica minima per il funzionamento di base](#greengrass-core-minimal-iot-policy).
+ La policy consente al dispositivo principale di aggiornare le proprie informazioni di connettività. Questa autorizzazione (`greengrass:UpdateConnectivityInfo`) è richiesta solo se si distribuisce il [componente del rilevatore IP](ip-detector-component.md) sul dispositivo principale.

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

****  

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

------

## AWS IoT Politica minima per i dispositivi client
<a name="client-device-minimal-iot-policy"></a>

La seguente politica di esempio include il set minimo di azioni necessarie affinché un dispositivo client rilevi i dispositivi principali su cui si connettono e comunicano tramite MQTT. La AWS IoT politica del dispositivo client deve includere l'`greengrass:Discover`azione per consentire al dispositivo di scoprire le informazioni di connettività per i dispositivi core Greengrass associati. Nella `Resource` sezione, specifica l'Amazon Resource Name (ARN) del dispositivo client, non l'ARN del dispositivo principale Greengrass.
+ La policy consente la comunicazione su tutti gli argomenti MQTT. Per seguire le migliori pratiche di sicurezza, limitate le `iot:Publish` autorizzazioni e `iot:Receive` le autorizzazioni al set minimo di argomenti richiesti da un dispositivo client per il vostro caso d'uso. `iot:Subscribe`
+ La policy consente al dispositivo di scoprire i dispositivi principali per qualsiasi AWS IoT cosa. Per seguire le migliori pratiche di sicurezza, limita l'`greengrass:Discover`autorizzazione all' AWS IoT oggetto del dispositivo client o a un carattere jolly che corrisponda a un insieme di AWS IoT elementi.
**Importante**  
<a name="thing-policy-variable-not-supported"></a>[Le variabili Thing Policy](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) non sono supportate nelle AWS IoT politiche per i dispositivi principali o nelle operazioni del piano dati Greengrass. Puoi invece utilizzare un carattere jolly che corrisponda a più dispositivi con nomi simili. Ad esempio, puoi specificare `MyGreengrassDevice*` di `MyGreengrassDevice1` abbinare e così via. `MyGreengrassDevice2` 
+ La AWS IoT politica di un dispositivo client in genere non richiede autorizzazioni o `iot:DeleteThingShadow` azioni `iot:GetThingShadow``iot:UpdateThingShadow`, poiché il dispositivo principale Greengrass gestisce le operazioni di sincronizzazione degli shadow per i dispositivi client. Per consentire al dispositivo principale di gestire le ombre dei dispositivi client, verifica che la AWS IoT politica del dispositivo principale consenta queste azioni e che la `Resource` sezione includa i ARNs dispositivi client.

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

****  

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

------

# Gestione delle identità e degli accessi per AWS IoT Greengrass
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) è un software Servizio AWS che aiuta un amministratore a controllare in modo sicuro l'accesso alle risorse. AWS Gli amministratori IAM controllano chi può essere *autenticato* (effettuato l'accesso) e *autorizzato* (disporre delle autorizzazioni) a utilizzare le risorse. AWS IoT Greengrass IAM è uno Servizio AWS strumento che puoi utilizzare senza costi aggiuntivi.

**Nota**  
Questo argomento descrive i concetti e le funzionalità di IAM. Per informazioni sulle funzionalità IAM supportate da AWS IoT Greengrass, consulta[Come AWS IoT Greengrass funziona con IAM](security_iam_service-with-iam.md).

## Destinatari
<a name="security_iam_audience"></a>

Il modo in cui utilizzi AWS Identity and Access Management (IAM) varia in base al tuo ruolo:
+ **Utente del servizio**: richiedi le autorizzazioni all’amministratore se non riesci ad accedere alle funzionalità (consulta [Risoluzione dei problemi di identità e accesso per AWS IoT Greengrass](security_iam_troubleshoot.md))
+ **Amministratore del servizio**: determina l’accesso degli utenti e invia le richieste di autorizzazione (consulta [Come AWS IoT Greengrass funziona con IAM](security_iam_service-with-iam.md))
+ **Amministratore IAM**: scrivi policy per gestire l’accesso (consulta [Esempi di policy basate sull'identità per AWS IoT Greengrass](security_iam_id-based-policy-examples.md))

## Autenticazione con identità
<a name="security_iam_authentication"></a>

L'autenticazione è il modo in cui accedi AWS utilizzando le tue credenziali di identità. Devi autenticarti come utente IAM o assumendo un ruolo IAM. Utente root dell'account AWS

Puoi accedere come identità federata utilizzando credenziali provenienti da una fonte di identità come AWS IAM Identity Center (IAM Identity Center), autenticazione Single Sign-On o credenziali. Google/Facebook Per ulteriori informazioni sull’accesso, consulta [Come accedere all’ Account AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) nella *Guida per l’utente di Accedi ad AWS *.

Per l'accesso programmatico, AWS fornisce un SDK e una CLI per firmare crittograficamente le richieste. Per ulteriori informazioni, consulta [AWS Signature Version 4 per le richieste API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) nella *Guida per l’utente di IAM*.

### Account AWS utente root
<a name="security_iam_authentication-rootuser"></a>

 Quando si crea un Account AWS, si inizia con un'identità di accesso denominata *utente Account AWS root* che ha accesso completo a tutte Servizi AWS le risorse. Consigliamo vivamente di non utilizzare l’utente root per le attività quotidiane. Per le attività che richiedono le credenziali come utente root, consulta [Attività che richiedono le credenziali dell’utente root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) nella *Guida per l’utente di IAM*. 

### Utenti e gruppi IAM
<a name="security_iam_authentication-iamuser"></a>

Un *[utente IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* è una identità che dispone di autorizzazioni specifiche per una singola persona o applicazione. Ti consigliamo di utilizzare credenziali temporanee invece di utenti IAM con credenziali a lungo termine. Per ulteriori informazioni, consulta [Richiedere agli utenti umani di utilizzare la federazione con un provider di identità per accedere AWS utilizzando credenziali temporanee nella Guida](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) per l'*utente IAM*.

Un [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) specifica una raccolta di utenti IAM e semplifica la gestione delle autorizzazioni per gestire gruppi di utenti di grandi dimensioni. Per ulteriori informazioni, consulta [Casi d’uso per utenti IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) nella *Guida per l’utente di IAM*.

### Ruoli IAM
<a name="security_iam_authentication-iamrole"></a>

Un *[ruolo IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* è un’identità con autorizzazioni specifiche che fornisce credenziali temporanee. Puoi assumere un ruolo [passando da un ruolo utente a un ruolo IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) o chiamando un'operazione AWS CLI o AWS API. Per ulteriori informazioni, consulta [Metodi per assumere un ruolo](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) nella *Guida per l’utente di IAM*.

I ruoli IAM sono utili per l’accesso degli utenti federati, le autorizzazioni utente IAM temporanee, l’accesso multi-account, l’accesso multi-servizio e le applicazioni in esecuzione su Amazon EC2. Per maggiori informazioni, consultare [Accesso a risorse multi-account in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) nella *Guida per l’utente IAM*.

## Gestione dell’accesso tramite policy
<a name="security_iam_access-manage"></a>

Puoi controllare l'accesso AWS creando policy e associandole a AWS identità o risorse. Una policy definisce le autorizzazioni quando è associata a un'identità o a una risorsa. AWS valuta queste politiche quando un preside effettua una richiesta. La maggior parte delle politiche viene archiviata AWS come documenti JSON. Per maggiori informazioni sui documenti delle policy JSON, consulta [Panoramica delle policy JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) nella *Guida per l’utente IAM*.

Utilizzando le policy, gli amministratori specificano chi ha accesso a cosa definendo quale **principale** può eseguire **azioni** su quali **risorse** e in quali **condizioni**.

Per impostazione predefinita, utenti e ruoli non dispongono di autorizzazioni. Un amministratore IAM crea le policy IAM e le aggiunge ai ruoli, che gli utenti possono quindi assumere. Le policy IAM definiscono le autorizzazioni indipendentemente dal metodo utilizzato per eseguirle.

### Policy basate sull’identità
<a name="security_iam_access-manage-id-based-policies"></a>

Le policy basate su identità sono documenti di policy di autorizzazione JSON che è possibile collegare a un’identità (utente, gruppo o ruolo). Tali policy controllano le operazioni autorizzate per l’identità, nonché le risorse e le condizioni in cui possono essere eseguite. Per informazioni su come creare una policy basata su identità, consultare [Definizione di autorizzazioni personalizzate IAM con policy gestite dal cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) nella *Guida per l’utente IAM*.

Le policy basate su identità possono essere *policy in linea* (con embedding direttamente in una singola identità) o *policy gestite* (policy autonome collegate a più identità). Per informazioni su come scegliere tra una policy gestita o una policy inline, consulta [Scegliere tra policy gestite e policy in linea](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) nella *Guida per l’utente di IAM*.

### Policy basate sulle risorse
<a name="security_iam_access-manage-resource-based-policies"></a>

Le policy basate su risorse sono documenti di policy JSON che è possibile collegare a una risorsa. Gli esempi includono le *policy di trust dei ruoli* IAM e le *policy dei bucket* di Amazon S3. Nei servizi che supportano policy basate sulle risorse, gli amministratori dei servizi possono utilizzarli per controllare l’accesso a una risorsa specifica. In una policy basata sulle risorse è obbligatorio [specificare un’entità principale](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html).

Le policy basate sulle risorse sono policy inline che si trovano in tale servizio. Non è possibile utilizzare le policy AWS gestite di IAM in una policy basata sulle risorse.

### Liste di controllo degli accessi () ACLs
<a name="security_iam_access-manage-acl"></a>

Le liste di controllo degli accessi (ACLs) controllano quali principali (membri dell'account, utenti o ruoli) dispongono delle autorizzazioni per accedere a una risorsa. ACLs sono simili alle politiche basate sulle risorse, sebbene non utilizzino il formato del documento di policy JSON.

Amazon S3 e Amazon VPC sono esempi di servizi che supportano. AWS WAF ACLs Per ulteriori informazioni ACLs, consulta la [panoramica della lista di controllo degli accessi (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) nella *Amazon Simple Storage Service Developer Guide*.

### Altri tipi di policy
<a name="security_iam_access-manage-other-policies"></a>

AWS supporta tipi di policy aggiuntivi che possono impostare le autorizzazioni massime concesse dai tipi di policy più comuni:
+ **Limiti delle autorizzazioni**: imposta il numero massimo di autorizzazioni che una policy basata su identità ha la possibilità di concedere a un’entità IAM. Per ulteriori informazioni, consulta [Limiti delle autorizzazioni per le entità IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) nella *Guida per l’utente di IAM*.
+ **Politiche di controllo del servizio (SCPs)**: specificano le autorizzazioni massime per un'organizzazione o un'unità organizzativa in. AWS Organizations Per ulteriori informazioni, consultare [Policy di controllo dei servizi](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) nella *Guida per l’utente di AWS Organizations *.
+ **Politiche di controllo delle risorse (RCPs)**: imposta le autorizzazioni massime disponibili per le risorse nei tuoi account. Per ulteriori informazioni, consulta [Politiche di controllo delle risorse (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) nella *Guida per l'AWS Organizations utente*.
+ **Policy di sessione**: policy avanzate passate come parametro quando si crea una sessione temporanea per un ruolo o un utente federato. Per maggiori informazioni, consultare [Policy di sessione](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) nella *Guida per l’utente IAM*.

### Più tipi di policy
<a name="security_iam_access-manage-multiple-policies"></a>

Quando a una richiesta si applicano più tipi di policy, le autorizzazioni risultanti sono più complicate da comprendere. Per scoprire come si AWS determina se consentire o meno una richiesta quando sono coinvolti più tipi di policy, consulta [Logica di valutazione delle policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) nella *IAM User Guide*.

## Consulta anche
<a name="security_iam_service-see-also"></a>
+ [Come AWS IoT Greengrass funziona con IAM](security_iam_service-with-iam.md)
+ [Esempi di policy basate sull'identità per AWS IoT Greengrass](security_iam_id-based-policy-examples.md)
+ [Risoluzione dei problemi di identità e accesso per AWS IoT Greengrass](security_iam_troubleshoot.md)

# Come AWS IoT Greengrass funziona con IAM
<a name="security_iam_service-with-iam"></a>

Prima di utilizzare IAM per gestire l'accesso AWS IoT Greengrass, è necessario comprendere le funzionalità IAM con cui è possibile utilizzare AWS IoT Greengrass.


| Funzionalità IAM | Supportata da Greengrass? | 
| --- | --- | 
| [Policy basate sull'identità con autorizzazioni a livello di risorse](#security_iam_service-with-iam-id-based-policies) | Sì | 
| [Policy basate su risorse](#security_iam_service-with-iam-resource-based-policies) | No | 
| [Liste di controllo degli accessi (ACLs)](#security_iam_service-with-iam-acls) | No | 
| [Autorizzazione basata su tag ](#security_iam_service-with-iam-tags) | Sì | 
| [Credenziali temporanee](#security_iam_service-with-iam-roles-tempcreds) | Sì | 
| [Ruoli collegati al servizio](#security_iam_service-with-iam-roles-service-linked) | No | 
| [Ruoli di servizio](#security_iam_service-with-iam-roles-service-linked) | Sì | 

Per una visione di alto livello di come altri AWS servizi funzionano con IAM, consulta [AWS i servizi che funzionano con IAM nella IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) *User Guide*.

## Politiche basate sull'identità per AWS IoT Greengrass
<a name="security_iam_service-with-iam-id-based-policies"></a>

Con le policy basate sull'identità IAM, puoi specificare azioni e risorse consentite o negate e le condizioni in base alle quali le azioni sono consentite o negate. AWS IoT Greengrass supporta azioni, risorse e chiavi di condizione specifiche. Per conoscere tutti gli elementi utilizzati in una policy, consulta il [riferimento agli elementi della policy IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) nella *IAM User Guide*.

### Azioni
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Gli amministratori possono utilizzare le policy AWS JSON per specificare chi ha accesso a cosa. In altre parole, quale **entità principale** può eseguire **operazioni** su quali **risorse** e in quali **condizioni**.

L'elemento `Action` di una policy JSON descrive le operazioni che è possibile utilizzare per consentire o negare l'accesso in una policy. Includere le operazioni in una policy per concedere le autorizzazioni a eseguire l’operazione associata.

Azioni politiche per AWS IoT Greengrass utilizzare il `greengrass:` prefisso prima dell'azione. Ad esempio, per consentire a qualcuno di utilizzare l'operazione `ListCoreDevices` API per elencare i dispositivi principali presenti nella propria politica Account AWS, è necessario includere l'`greengrass:ListCoreDevices`azione nella propria politica. Le dichiarazioni politiche devono includere un `NotAction` elemento `Action` or. AWS IoT Greengrass definisce il proprio set di azioni che descrivono le attività che è possibile eseguire con questo servizio.

Per specificare più azioni in una singola istruzione, elencale tra parentesi (`[``]`) e separale con virgole, come segue:

```
"Action": [
  "greengrass:action1",
  "greengrass:action2",
  "greengrass:action3"
]
```

È possibile utilizzare i caratteri jolly (`*`) per specificare più operazioni. Ad esempio, per specificare tutte le azioni che iniziano con la parola `List`, includi la seguente azione:

```
"Action": "greengrass:List*"
```

**Nota**  
Si consiglia di evitare l'uso di caratteri jolly per specificare tutte le operazioni disponibili per un servizio. Come procedura consigliata, è necessario concedere privilegi minimi e autorizzazioni di ambito ristretto in una policy. Per ulteriori informazioni, consulta [Concedere autorizzazioni minime possibili](security-best-practices.md#least-privilege).

Per l'elenco completo delle AWS IoT Greengrass azioni, consulta [Actions Defined by AWS IoT Greengrass](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions) nella *IAM User Guide*.

### Resources
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Gli amministratori possono utilizzare le policy AWS JSON per specificare chi ha accesso a cosa. In altre parole, quale **entità principale** può eseguire **operazioni** su quali **risorse** e in quali **condizioni**.

L’elemento JSON `Resource` della policy specifica l’oggetto o gli oggetti ai quali si applica l’operazione. Come best practice, specifica una risorsa utilizzando il suo [nome della risorsa Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Per le azioni che non supportano le autorizzazioni a livello di risorsa, si utilizza un carattere jolly (\$1) per indicare che l’istruzione si applica a tutte le risorse.

```
"Resource": "*"
```

La tabella seguente contiene la AWS IoT Greengrass risorsa ARNs che può essere utilizzata nell'`Resource`elemento di una dichiarazione politica. *Per una mappatura delle autorizzazioni a livello di risorsa supportate per le AWS IoT Greengrass azioni, consulta [Actions Defined by AWS IoT Greengrass](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions) nella IAM User Guide.*

Alcune AWS IoT Greengrass azioni (ad esempio, alcune operazioni sugli elenchi) non possono essere eseguite su una risorsa specifica. In questi casi, è necessario utilizzare solo il carattere jolly.

```
"Resource": "*"
```

Per specificare più risorse ARNs in un'istruzione, elencale tra parentesi (`[``]`) e separale con virgole, come segue:

```
"Resource": [
  "resource-arn1",
  "resource-arn2",
  "resource-arn3"
]
```

Per ulteriori informazioni sui formati ARN, consulta [Amazon Resource Names (ARNs) e i namespace dei AWS servizi](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) nel. *Riferimenti generali di Amazon Web Services*

### Chiavi di condizione
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Gli amministratori possono utilizzare le policy AWS JSON per specificare chi ha accesso a cosa. In altre parole, quale **entità principale** può eseguire **operazioni** su quali **risorse** e in quali **condizioni**.

L’elemento `Condition` specifica quando le istruzioni vengono eseguite in base a criteri definiti. È possibile compilare espressioni condizionali che utilizzano [operatori di condizione](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), ad esempio uguale a o minore di, per soddisfare la condizione nella policy con i valori nella richiesta. Per visualizzare tutte le chiavi di condizione AWS globali, consulta le chiavi di [contesto delle condizioni AWS globali nella Guida](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) per l'*utente IAM*.

### Esempi
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Per visualizzare esempi di politiche AWS IoT Greengrass basate sull'identità, consulta. [Esempi di policy basate sull'identità per AWS IoT Greengrass](security_iam_id-based-policy-examples.md)

## Politiche basate sulle risorse per AWS IoT Greengrass
<a name="security_iam_service-with-iam-resource-based-policies"></a>

AWS IoT Greengrass [non supporta politiche basate sulle risorse.](security-iam.md#security_iam_access-manage-resource-based-policies)

## Elenchi di controllo degli accessi () ACLs
<a name="security_iam_service-with-iam-acls"></a>

AWS IoT Greengrass non supporta [ACLs](security-iam.md#security_iam_access-manage-acl).

## Autorizzazione basata su AWS IoT Greengrass tag
<a name="security_iam_service-with-iam-tags"></a>

È possibile allegare tag a AWS IoT Greengrass risorse supportate o passare tag in una richiesta a AWS IoT Greengrass. Per controllare l'accesso basato su tag, fornisci informazioni sui tag nell'[elemento condizione](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) di una policy utilizzando le chiavi di condizione, `aws:ResourceTag/${TagKey}` o `aws:RequestTag/${TagKey}` `aws:TagKeys`. Per ulteriori informazioni, consulta [Tagga le tue AWS IoT Greengrass Version 2 risorse](tag-resources.md).

## Ruoli IAM per AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles"></a>

Un [ruolo IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) è un'entità all'interno dell' Account AWS che dispone di autorizzazioni specifiche.

### Utilizzo di credenziali temporanee con AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Le credenziali temporanee vengono utilizzate per accedere con la federazione, assumere un ruolo IAM o assumere un ruolo tra account. È possibile ottenere credenziali di sicurezza temporanee chiamando operazioni AWS STS API come o. [AssumeRole[GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)

Sul core Greengrass, le credenziali temporanee per il [ruolo del dispositivo](device-service-role.md) sono rese disponibili ai componenti Greengrass. Se i componenti utilizzano l' AWS SDK, non è necessario aggiungere logica per ottenere le credenziali perché l' AWS SDK lo fa per te.

### Ruoli collegati ai servizi
<a name="security_iam_service-with-iam-roles-service-linked"></a>

AWS IoT Greengrass [non supporta ruoli collegati ai servizi.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)

### Ruoli dei servizi
<a name="security_iam_service-with-iam-roles-service"></a>

Questa funzionalità consente a un servizio di assumere un [ruolo di servizio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) per conto dell'utente. Questo ruolo consente al servizio di accedere alle risorse in altri servizi per completare un'azione per conto dell'utente. I ruoli dei servizi sono visualizzati nell'account IAM e sono di proprietà dell'account. Ciò significa che un amministratore IAM può modificare le autorizzazioni per questo ruolo. Tuttavia, questo potrebbe pregiudicare la funzionalità del servizio.

AWS IoT Greengrass i dispositivi principali utilizzano un ruolo di servizio per consentire ai componenti Greengrass e alle funzioni Lambda di accedere ad alcune AWS risorse per conto dell'utente. Per ulteriori informazioni, consulta [Autorizza i dispositivi principali a interagire con i servizi AWS](device-service-role.md).

AWS IoT Greengrass utilizza un ruolo di servizio per accedere ad alcune delle tue AWS risorse per tuo conto. Per ulteriori informazioni, consulta [Ruolo del servizio Greengrass](greengrass-service-role.md).

# Esempi di policy basate sull'identità per AWS IoT Greengrass
<a name="security_iam_id-based-policy-examples"></a>

Per impostazione predefinita, gli utenti e i ruoli IAM non dispongono dell'autorizzazione per creare o modificare risorse AWS IoT Greengrass . Inoltre, non possono eseguire attività utilizzando l'API Console di gestione AWS, AWS CLI o. AWS Un amministratore IAM deve creare policy IAM che concedono a utenti e ruoli l'autorizzazione per eseguire operazioni API specifiche sulle risorse specificate di cui hanno bisogno. L'amministratore deve quindi collegare queste policy a utenti o IAM che richiedono tali autorizzazioni.

## Best practice per le policy
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Le politiche basate sull'identità determinano se qualcuno può creare, accedere o eliminare AWS IoT Greengrass risorse nel tuo account. Queste azioni possono comportare costi aggiuntivi per l’ Account AWS. Quando si creano o modificano policy basate sull’identità, seguire queste linee guida e raccomandazioni:
+ **Inizia con le policy AWS gestite e passa alle autorizzazioni con privilegi minimi: per iniziare a concedere autorizzazioni** *a utenti e carichi di lavoro, utilizza le politiche gestite che concedono le autorizzazioni per molti casi d'uso comuni.AWS * Sono disponibili nel tuo. Account AWS Ti consigliamo di ridurre ulteriormente le autorizzazioni definendo politiche gestite dai AWS clienti specifiche per i tuoi casi d'uso. Per maggiori informazioni, consulta [Policy gestite da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) o [Policy gestite da AWS per le funzioni dei processi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) nella *Guida per l’utente di IAM*.
+ **Applicazione delle autorizzazioni con privilegio minimo** - Quando si impostano le autorizzazioni con le policy IAM, concedere solo le autorizzazioni richieste per eseguire un’attività. È possibile farlo definendo le azioni che possono essere intraprese su risorse specifiche in condizioni specifiche, note anche come *autorizzazioni con privilegio minimo*. Per maggiori informazioni sull’utilizzo di IAM per applicare le autorizzazioni, consulta [Policy e autorizzazioni in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) nella *Guida per l’utente di IAM*.
+ **Condizioni d’uso nelle policy IAM per limitare ulteriormente l’accesso** - Per limitare l’accesso ad azioni e risorse è possibile aggiungere una condizione alle policy. Ad esempio, è possibile scrivere una condizione di policy per specificare che tutte le richieste devono essere inviate utilizzando SSL. Puoi anche utilizzare le condizioni per concedere l'accesso alle azioni del servizio se vengono utilizzate tramite uno specifico Servizio AWS, ad esempio CloudFormation. Per maggiori informazioni, consultare la sezione [Elementi delle policy JSON di IAM: condizione](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) nella *Guida per l’utente di IAM*.
+ **Utilizzo dello strumento di analisi degli accessi IAM per convalidare le policy IAM e garantire autorizzazioni sicure e funzionali** - Lo strumento di analisi degli accessi IAM convalida le policy nuove ed esistenti in modo che aderiscano al linguaggio (JSON) della policy IAM e alle best practice di IAM. Lo strumento di analisi degli accessi IAM offre oltre 100 controlli delle policy e consigli utili per creare policy sicure e funzionali. Per maggiori informazioni, consultare [Convalida delle policy per il Sistema di analisi degli accessi IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) nella *Guida per l’utente di IAM*.
+ **Richiedi l'autenticazione a più fattori (MFA**): se hai uno scenario che richiede utenti IAM o un utente root nel Account AWS tuo, attiva l'MFA per una maggiore sicurezza. Per richiedere la MFA quando vengono chiamate le operazioni API, aggiungere le condizioni MFA alle policy. Per maggiori informazioni, consultare [Protezione dell’accesso API con MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) nella *Guida per l’utente di IAM*.

Per maggiori informazioni sulle best practice in IAM, consulta [Best practice di sicurezza in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l’utente di IAM*.

## Esempi di policy
<a name="security_iam_id-based-policy-examples-list"></a>

Nell'esempio riportato di seguito le policy definite dal cliente concedono autorizzazioni per scenari comuni.

**Topics**
+ [Consentire agli utenti di visualizzare le loro autorizzazioni](#security_iam_id-based-policy-examples-view-own-permissions)

Per informazioni su come creare una policy basata su identità IAM utilizzando questi documenti di policy JSON di esempio, consultare [Creazione di policy nella scheda JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) nella *Guida per l'utente IAM*.

### Consentire agli utenti di visualizzare le loro autorizzazioni
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Questo esempio mostra in che modo è possibile creare una policy che consente agli utenti IAM di visualizzare le policy inline e gestite che sono collegate alla relativa identità utente. Questa policy include le autorizzazioni per completare questa azione sulla console o utilizzando programmaticamente l'API o. AWS CLI AWS 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# Autorizza i dispositivi principali a interagire con i servizi AWS
<a name="device-service-role"></a>

AWS IoT Greengrass i dispositivi principali utilizzano il provider di AWS IoT Core credenziali per autorizzare le chiamate ai servizi. AWS Il provider di AWS IoT Core credenziali consente ai dispositivi di utilizzare i propri certificati X.509 come identità univoca del dispositivo per autenticare le richieste. AWS Ciò elimina la necessità di memorizzare un ID della chiave di AWS accesso e una chiave di accesso segreta sui dispositivi principali. AWS IoT Greengrass Per ulteriori informazioni, consulta [Autorizzazione delle chiamate dirette ai AWS servizi](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) nella *Guida per gli AWS IoT Core sviluppatori*.

Quando esegui il software AWS IoT Greengrass Core, puoi scegliere di fornire le AWS risorse richieste dal dispositivo principale. Ciò include il ruolo AWS Identity and Access Management (IAM) che il dispositivo principale assume tramite il fornitore di AWS IoT Core credenziali. Utilizzate l'`--provision true`argomento per configurare un ruolo e delle politiche che consentano al dispositivo principale di ottenere credenziali temporanee AWS . Questo argomento configura anche un alias di AWS IoT ruolo che punta a questo ruolo IAM. È possibile specificare il nome del ruolo IAM e l'alias del AWS IoT ruolo da utilizzare. Se si specifica `--provision true` senza questi altri parametri di nome, il dispositivo principale Greengrass crea e utilizza le seguenti risorse predefinite:
+ Ruolo IAM: `GreengrassV2TokenExchangeRole`

  Questo ruolo ha un nome di policy `GreengrassV2TokenExchangeRoleAccess` e una relazione di fiducia che `credentials.iot.amazonaws.com` consente di assumere il ruolo. La policy include le autorizzazioni minime per il dispositivo principale.
**Importante**  
Questa politica non include l'accesso ai file nei bucket S3. È necessario aggiungere autorizzazioni al ruolo per consentire ai dispositivi principali di recuperare gli artefatti dei componenti dai bucket S3. Per ulteriori informazioni, consulta [Consenti l'accesso ai bucket S3 per gli artefatti dei componenti](#device-service-role-access-s3-bucket).
+ AWS IoT alias del ruolo: `GreengrassV2TokenExchangeRoleAlias`

  Questo alias di ruolo si riferisce al ruolo IAM.

Per ulteriori informazioni, consulta [Fase 3: Installare il software AWS IoT Greengrass Core](install-greengrass-v2.md).

Puoi anche impostare l'alias del ruolo per un dispositivo principale esistente. A tale scopo, configurate il parametro di `iotRoleAlias` configurazione del componente [Greengrass nucleus](greengrass-nucleus-component.md).

È possibile acquisire AWS credenziali temporanee per questo ruolo IAM per eseguire AWS operazioni sui componenti personalizzati. Per ulteriori informazioni, consulta [Interagisci con AWS i servizi](interact-with-aws-services.md).

**Topics**
+ [Autorizzazioni relative ai ruoli di servizio per i dispositivi principali](#device-service-role-permissions)
+ [Consenti l'accesso ai bucket S3 per gli artefatti dei componenti](#device-service-role-access-s3-bucket)

## Autorizzazioni relative ai ruoli di servizio per i dispositivi principali
<a name="device-service-role-permissions"></a>

Il ruolo consente al seguente servizio di assumere il ruolo:
+ `credentials.iot.amazonaws.com`

Se si utilizza il software AWS IoT Greengrass Core per creare questo ruolo, questo utilizza la seguente politica di autorizzazioni per consentire ai dispositivi principali di connettersi e inviare i log a. AWS Il nome predefinito della policy è il nome del ruolo IAM che termina con. `Access` Ad esempio, se utilizzi il nome del ruolo IAM predefinito, il nome di questa policy è. `GreengrassV2TokenExchangeRoleAccess`

------
#### [ Greengrass nucleus v2.5.0 and later ]

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ v2.4.x ]

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ Earlier than v2.4.0 ]

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "iot:Connect",
        "iot:Publish",
        "iot:Subscribe",
        "iot:Receive",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------

## Consenti l'accesso ai bucket S3 per gli artefatti dei componenti
<a name="device-service-role-access-s3-bucket"></a>

Il ruolo predefinito del dispositivo principale non consente ai dispositivi principali di accedere ai bucket S3. Per distribuire componenti che presentano artefatti nei bucket S3, devi aggiungere l'`s3:GetObject`autorizzazione per consentire ai dispositivi principali di scaricare gli artefatti dei componenti. Puoi aggiungere una nuova policy al ruolo principale del dispositivo per concedere questa autorizzazione.

**Per aggiungere una policy che consenta l'accesso agli artefatti dei componenti in Amazon S3**

1. Crea un file chiamato `component-artifact-policy.json` e copia il seguente codice JSON nel file. Questa politica consente l'accesso a tutti i file in un bucket S3. Sostituisci amzn-s3-demo-bucket con il nome del bucket S3 per consentire l'accesso al dispositivo principale.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
       }
     ]
   }
   ```

------

1. Esegui il seguente comando per creare la politica dal documento di policy in. `component-artifact-policy.json`

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

   ```
   aws iam create-policy \
     --policy-name MyGreengrassV2ComponentArtifactPolicy \
     --policy-document file://component-artifact-policy.json
   ```

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

   ```
   aws iam create-policy ^
     --policy-name MyGreengrassV2ComponentArtifactPolicy ^
     --policy-document file://component-artifact-policy.json
   ```

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

   ```
   aws iam create-policy `
     --policy-name MyGreengrassV2ComponentArtifactPolicy `
     --policy-document file://component-artifact-policy.json
   ```

------

   Copia la policy Amazon Resource Name (ARN) dai metadati della policy nell'output. Utilizzerai questo ARN per collegare questa policy al ruolo principale del dispositivo nel passaggio successivo.

1. Esegui il comando seguente per allegare la policy al ruolo principale del dispositivo. Sostituiscilo *GreengrassV2TokenExchangeRole* con il nome del ruolo specificato durante l'esecuzione del software AWS IoT Greengrass Core. Quindi, sostituisci l'ARN della policy con l'ARN del passaggio precedente.

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

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

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

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

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

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

------

   Se il comando non produce alcun output, significa che è stato eseguito correttamente e il dispositivo principale può accedere agli artefatti caricati in questo bucket S3.

# Policy IAM minima per l'installatore per il provisioning delle risorse
<a name="provision-minimal-iam-policy"></a>

Quando installi il software AWS IoT Greengrass Core, puoi fornire AWS le risorse necessarie, come un AWS IoT oggetto e un ruolo IAM per il tuo dispositivo. Puoi anche implementare strumenti di sviluppo locale sul dispositivo. Il programma di installazione richiede AWS credenziali per poter eseguire queste azioni nel tuo. Account AWS Per ulteriori informazioni, consulta [Installare il software AWS IoT Greengrass Core](install-greengrass-core-v2.md).

La seguente politica di esempio include il set minimo di azioni richieste dal programma di installazione per fornire queste risorse. Queste autorizzazioni sono necessarie se si specifica l'`--provision`argomento per l'installatore. *account-id*Sostituitelo con il vostro Account AWS ID e *GreengrassV2TokenExchangeRole* sostituitelo con il nome del ruolo di scambio di token specificato con l'argomento `--tes-role-name` [installer](configure-installer.md).

**Nota**  
L'informativa sulla `DeployDevTools` politica è richiesta solo se si specifica l'`--deploy-dev-tools`argomento per l'installatore.

------
#### [ Greengrass nucleus v2.5.0 and later ]

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
                "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------
#### [ Earlier than v2.5.0 ]

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
            "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
    "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------

# Ruolo del servizio Greengrass
<a name="greengrass-service-role"></a>

<a name="greengrass-service-role-intro"></a>Il ruolo di servizio Greengrass è un ruolo di servizio AWS Identity and Access Management (IAM) che AWS IoT Greengrass autorizza l'accesso alle risorse AWS dei servizi per conto dell'utente. Questo ruolo consente di AWS IoT Greengrass verificare l'identità dei dispositivi client e gestire le informazioni principali sulla connettività dei dispositivi.

**Nota**  
AWS IoT Greengrass V1 utilizza questo ruolo anche per eseguire attività essenziali. Per ulteriori informazioni, consulta il [ruolo del servizio Greengrass](https://docs.aws.amazon.com/greengrass/v1/developerguide/service-role.html) nella *AWS IoT Greengrass V1 Developer* Guide.

Per consentire l'accesso AWS IoT Greengrass alle tue risorse, il ruolo di servizio Greengrass deve essere associato a te Account AWS e specificato AWS IoT Greengrass come entità affidabile. Il ruolo deve includere la politica [AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy)gestita o una politica personalizzata che definisca autorizzazioni equivalenti per le AWS IoT Greengrass funzionalità utilizzate. AWS mantiene questa politica, che definisce l'insieme di autorizzazioni AWS IoT Greengrass utilizzate per accedere AWS alle risorse. Per ulteriori informazioni, consulta [AWS politica gestita: AWSGreengrass ResourceAccessRolePolicy](security-iam-aws-managed-policies.md#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy).

Puoi riutilizzare lo stesso ruolo del servizio Greengrass Regioni AWS in tutto il mondo, ma devi associarlo al tuo account Regione AWS ovunque lo utilizzi. AWS IoT Greengrass Se il ruolo di servizio non è configurato nell'attuale versione Regione AWS, i dispositivi principali non riescono a verificare i dispositivi client e ad aggiornare le informazioni di connettività.

Le sezioni seguenti descrivono come creare e gestire il ruolo di servizio Greengrass con o. Console di gestione AWS AWS CLI

**Topics**
+ [Gestire il ruolo del servizio Greengrass (console)](#manage-greengrass-service-role-console)
+ [Gestione del ruolo di servizio Greengrass (CLI)](#manage-service-role-cli)
+ [Consulta anche](#service-role-see-also)

**Nota**  
Oltre al ruolo di servizio che autorizza l'accesso a livello di servizio, assegni un *ruolo di scambio di token ai dispositivi principali di Greengrass*. Il ruolo di scambio di token è un ruolo IAM separato che controlla il modo in cui i componenti Greengrass e le funzioni Lambda sul dispositivo principale possono accedere ai servizi. AWS Per ulteriori informazioni, consulta [Autorizza i dispositivi principali a interagire con i servizi AWS](device-service-role.md).

## Gestire il ruolo del servizio Greengrass (console)
<a name="manage-greengrass-service-role-console"></a>

La AWS IoT console semplifica la gestione del ruolo di servizio Greengrass. Ad esempio, quando configuri il rilevamento dei dispositivi client per un dispositivo principale, la console verifica se il tuo Account AWS è collegato a un ruolo di servizio Greengrass nell'attuale. Regione AWS In caso contrario, la console può creare e configurare un ruolo del servizio automaticamente. Per ulteriori informazioni, consulta [Creazione del ruolo del servizio Greengrass (console)](#create-greengrass-service-role-console).

È possibile utilizzare la console per le seguenti attività di gestione dei ruoli:

**Topics**
+ [Individuazione del ruolo del servizio Greengrass (console)](#get-greengrass-service-role-console)
+ [Creazione del ruolo del servizio Greengrass (console)](#create-greengrass-service-role-console)
+ [Modifica del ruolo del servizio Greengrass (console)](#update-greengrass-service-role-console)
+ [Scollegare il ruolo del servizio Greengrass (console)](#remove-greengrass-service-role-console)

**Nota**  
L'utente che ha effettuato l'accesso alla console deve disporre delle autorizzazioni per visualizzare, creare o modificare il ruolo del servizio.

### Individuazione del ruolo del servizio Greengrass (console)
<a name="get-greengrass-service-role-console"></a>

Utilizza i seguenti passaggi per trovare il ruolo di servizio AWS IoT Greengrass utilizzato nella versione corrente Regione AWS.

1. <a name="open-iot-console"></a>Passare alla [console AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>Nel pannello di navigazione scegli **Impostazioni**.

1. Scorrere fino alla sezione **Greengrass service role (Ruolo del servizio Greengrass)** per visualizzare il ruolo del servizio e le relative policy.

   Se non vedi un ruolo di servizio, la console può crearne o configurarne uno per te. Per ulteriori informazioni, consulta [Creazione del ruolo del servizio Greengrass](#create-greengrass-service-role-console).

### Creazione del ruolo del servizio Greengrass (console)
<a name="create-greengrass-service-role-console"></a>

La console può creare e configurare automaticamente un ruolo di servizio Greengrass predefinito. Il ruolo ha le proprietà seguenti:


| Proprietà | Valore | 
| --- | --- | 
| Name | Greengrass\$1ServiceRole | 
| Trusted entity (Entità attendibile) | AWS service: greengrass | 
| Policy | [AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy) | 

**Nota**  
Se crei questo ruolo con lo [script di configurazione del AWS IoT Greengrass V1 dispositivo](https://docs.aws.amazon.com/greengrass/v1/developerguide/quick-start.html), il nome del ruolo è`GreengrassServiceRole_random-string`.

Quando configuri il rilevamento dei dispositivi client per un dispositivo principale, la console verifica se un ruolo del servizio Greengrass è associato al tuo ruolo Account AWS corrente. Regione AWS In caso contrario, la console richiede all'utente di consentire la lettura e AWS IoT Greengrass la scrittura sui AWS servizi per conto dell'utente.

Se concedi l'autorizzazione, la console verifica se `Greengrass_ServiceRole` esiste un ruolo denominato nel tuo. Account AWS
+ Se il ruolo esiste, la console assegna il ruolo di servizio al tuo Account AWS ruolo attuale Regione AWS.
+ Se il ruolo non esiste, la console crea un ruolo di servizio Greengrass predefinito e lo associa a quello corrente Account AWS . Regione AWS

**Nota**  
Se desideri creare un ruolo di servizio con politiche di ruolo personalizzate, utilizza la console IAM per creare o modificare il ruolo. Per ulteriori informazioni, consulta [Creazione di un ruolo per delegare le autorizzazioni a un AWS servizio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) o [Modifica di un ruolo](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) nella Guida per l'utente *IAM*. Assicurati che il ruolo conceda autorizzazioni equivalenti alle policy `AWSGreengrassResourceAccessRolePolicy` gestite per le funzionalità e le risorse utilizzate. Ti consigliamo di includere anche le chiavi di contesto `aws:SourceArn` e della condizione `aws:SourceAccount` globale nella tua politica di fiducia per evitare il *confuso problema della sicurezza dei vicedirettori*. Le chiavi di contesto delle condizioni limitano l'accesso per consentire solo le richieste che provengono dall'account specificato e dall'area di lavoro Greengrass. Per ulteriori informazioni sul problema del "confused deputy", consulta [Prevenzione del problema "confused deputy" tra servizi](cross-service-confused-deputy-prevention.md).  
Se crei un ruolo di servizio, torna alla AWS IoT console e assegna il ruolo al tuo. Account AWS Puoi farlo nel **ruolo di servizio Greengrass nella** pagina **Impostazioni**.

### Modifica del ruolo del servizio Greengrass (console)
<a name="update-greengrass-service-role-console"></a>

Usa la seguente procedura per scegliere un ruolo di servizio Greengrass diverso da assegnare al tuo Account AWS nel ruolo Regione AWS attualmente selezionato nella console.

1. <a name="open-iot-console"></a>Passare alla [console AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>Nel pannello di navigazione scegli **Impostazioni**.

1. In Ruolo di **servizio Greengrass, scegli **Cambia** ruolo**.

   Si apre la finestra di dialogo **Aggiorna ruolo di servizio Greengrass** e mostra i ruoli IAM del tuo Account AWS che definisci AWS IoT Greengrass come entità attendibile.

1. Scegli il ruolo di servizio Greengrass da associare.

1. Scegli **Allega ruolo**.

### Scollegare il ruolo del servizio Greengrass (console)
<a name="remove-greengrass-service-role-console"></a>

Utilizza la seguente procedura per scollegare il ruolo di servizio Greengrass dal AWS tuo account nella versione corrente. Regione AWS Ciò revoca le autorizzazioni per accedere AWS IoT Greengrass ai servizi AWS nella versione corrente. Regione AWS

**Importante**  
Lo scollegamento del ruolo del servizio potrebbe interrompere le operazioni attive.

1. <a name="open-iot-console"></a>Passare alla [console AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>Nel pannello di navigazione scegli **Impostazioni**.

1. Nel ruolo di **servizio Greengrass, scegli il ruolo** **Detach**.

1. Nella finestra di dialogo di conferma, scegli **Detach (Scollega)**.

**Nota**  
Se non hai più bisogno del ruolo, puoi eliminarlo nella console IAM. Per ulteriori informazioni, consulta la sezione [Eliminazione di ruoli o profili delle istanze](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) nella *Guida per l'utente di IAM*.  
Altri ruoli potrebbero consentire l'accesso AWS IoT Greengrass alle tue risorse. Per trovare tutti i ruoli che consentono di AWS IoT Greengrass assumere autorizzazioni per tuo conto, nella console IAM, nella pagina **Ruoli, cerca i ruoli** che includono **AWS service: greengrass** nella colonna **Entità attendibili**.

## Gestione del ruolo di servizio Greengrass (CLI)
<a name="manage-service-role-cli"></a>

Nelle procedure seguenti, si presume che AWS Command Line Interface sia installato e configurato per utilizzare il tuo. Account AWS Per ulteriori informazioni, vedere [Installazione, aggiornamento e disinstallazione AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) e [configurazione](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) di AWS CLI nella Guida per l'*AWS Command Line Interface utente*.

È possibile utilizzare il AWS CLI per le seguenti attività di gestione dei ruoli:

**Topics**
+ [Ottenimento del ruolo del servizio Greengrass (CLI)](#get-service-role)
+ [Creazione del ruolo del servizio Greengrass (CLI)](#create-service-role)
+ [Rimozione del ruolo del servizio Greengrass (CLI)](#remove-service-role)

### Ottenimento del ruolo del servizio Greengrass (CLI)
<a name="get-service-role"></a>

Utilizza la seguente procedura per scoprire se un ruolo di servizio Greengrass è associato al tuo Account AWS in un. Regione AWS
+ Come ottenere il ruolo del servizio. *region*Sostituiscilo con il tuo Regione AWS (ad esempio,`us-west-2`).

  ```
  aws greengrassv2 get-service-role-for-account --region region
  ```

  Se un ruolo di servizio Greengrass è già associato al tuo account, la richiesta restituisce i seguenti metadati del ruolo.

  ```
  {
    "associatedAt": "timestamp",
    "roleArn": "arn:aws:iam::account-id:role/path/role-name"
  }
  ```

  Se la richiesta non restituisce i metadati del ruolo, devi creare il ruolo di servizio (se non esiste) e associarlo al tuo account nel. Regione AWS

### Creazione del ruolo del servizio Greengrass (CLI)
<a name="create-service-role"></a>

Utilizza i seguenti passaggi per creare un ruolo e associarlo al tuo Account AWS.

**Per creare il ruolo di servizio utilizzando IAM**

1. Crea un ruolo con una politica di fiducia che AWS IoT Greengrass consenta di assumere il ruolo. In questo esempio viene creato un ruolo denominato `Greengrass_ServiceRole`, ma è possibile utilizzare un nome diverso. Ti consigliamo di includere anche le chiavi del contesto `aws:SourceArn` e della condizione `aws:SourceAccount` globale nella tua politica di fiducia per evitare il *confuso problema della sicurezza dei vicedirettori*. Le chiavi di contesto delle condizioni limitano l'accesso per consentire solo le richieste che provengono dall'account specificato e dall'area di lavoro Greengrass. Per ulteriori informazioni sul problema del "confused deputy", consulta [Prevenzione del problema "confused deputy" tra servizi](cross-service-confused-deputy-prevention.md).

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

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:region:account-id:*"
           },
           "StringEquals": {
             "aws:SourceAccount": "account-id"
           }
         }
       }
     ]
   }'
   ```

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

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"greengrass.amazonaws.com\"},\"Action\":\"sts:AssumeRole\",\"Condition\":{\"ArnLike\":{\"aws:SourceArn\":\"arn:aws:greengrass:region:account-id:*\"},\"StringEquals\":{\"aws:SourceAccount\":\"account-id\"}}}]}"
   ```

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

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:region:account-id:*"
           },
           "StringEquals": {
             "aws:SourceAccount": "account-id"
           }
         }
       }
     ]
   }'
   ```

------

1. Copiare il ruolo ARN dai metadati del ruolo nell'output. Utilizzare l'ARN per associare un ruolo all'account.

1. Collegare la policy `AWSGreengrassResourceAccessRolePolicy` al ruolo.

   ```
   aws iam attach-role-policy --role-name Greengrass_ServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy
   ```

**Per associare il ruolo di servizio al tuo Account AWS**
+ Associare il ruolo all'account. Sostituisci *role-arn* con il ruolo di servizio ARN e *region* con il tuo Regione AWS (ad esempio,`us-west-2`).

  ```
  aws greengrassv2 associate-service-role-to-account --role-arn role-arn --region region
  ```

  In caso di successo, la richiesta restituisce la seguente risposta.

  ```
  {
    "associatedAt": "timestamp"
  }
  ```

### Rimozione del ruolo del servizio Greengrass (CLI)
<a name="remove-service-role"></a>

Utilizza i seguenti passaggi per dissociare il ruolo di servizio Greengrass dal tuo. Account AWS
+ Disassociare un ruolo del servizio dall'account. *region*Sostituiscilo con il tuo Regione AWS (ad esempio,`us-west-2`).

  ```
  aws greengrassv2 disassociate-service-role-from-account --region region
  ```

  Se l'operazione riesce, viene restituita la seguente risposta.

  ```
  {
    "disassociatedAt": "timestamp"
  }
  ```
**Nota**  
È necessario eliminare il ruolo di servizio se non lo si utilizza in nessuno Regione AWS. Per prima cosa utilizzare [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html) per scollegare la policy gestita `AWSGreengrassResourceAccessRolePolicy` dal ruolo, quindi usare [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html) per eliminare il ruolo. Per ulteriori informazioni, consulta la sezione [Eliminazione di ruoli o profili delle istanze](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) nella *Guida per l'utente di IAM*.

## Consulta anche
<a name="service-role-see-also"></a>
+ [Creazione di un ruolo per delegare le autorizzazioni a un AWS servizio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) nella *IAM* User Guide
+ [Modifica di un ruolo nella Guida](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) *per l'utente IAM*
+ [Eliminazione di ruoli o profili di istanza](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) nella *IAM* User Guide
+ AWS IoT Greengrass comandi nel *AWS CLI Command* Reference
  + [associate-service-role-to-account](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/associate-service-role-to-account.html)
  + [disassociate-service-role-from-conto](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/disassociate-service-role-from-account.html)
  + [get-service-role-for-conto](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/get-service-role-for-account.html)
+ Comandi IAM nel *AWS CLI Command* Reference
  + [attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)
  + [create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)
  + [delete-role](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html)
  + [delete-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html)

# AWS politiche gestite per AWS IoT Greengrass
<a name="security-iam-aws-managed-policies"></a>

Una politica AWS gestita è una politica autonoma creata e amministrata da AWS. AWS le politiche gestite sono progettate per fornire autorizzazioni per molti casi d'uso comuni, in modo da poter iniziare ad assegnare autorizzazioni a utenti, gruppi e ruoli.

Tieni presente che le policy AWS gestite potrebbero non concedere le autorizzazioni con il privilegio minimo per i tuoi casi d'uso specifici, poiché sono disponibili per tutti i clienti. AWS Si consiglia pertanto di ridurre ulteriormente le autorizzazioni definendo [policy gestite dal cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) specifiche per i propri casi d'uso.

Non è possibile modificare le autorizzazioni definite nelle politiche gestite. AWS Se AWS aggiorna le autorizzazioni definite in una politica AWS gestita, l'aggiornamento ha effetto su tutte le identità principali (utenti, gruppi e ruoli) a cui è associata la politica. AWS è più probabile che aggiorni una policy AWS gestita quando ne Servizio AWS viene lanciata una nuova o quando diventano disponibili nuove operazioni API per i servizi esistenti.

Per ulteriori informazioni, consultare [Policy gestite da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) nella *Guida per l'utente di IAM*.

**Topics**
+ [AWS politica gestita: AWSGreengrass FullAccess](#aws-managed-policies-AWSGreengrassFullAccess)
+ [AWS politica gestita: AWSGreengrass ReadOnlyAccess](#aws-managed-policies-AWSGreengrassReadOnlyAccess)
+ [AWS politica gestita: AWSGreengrass ResourceAccessRolePolicy](#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy)
+ [AWS IoT Greengrass aggiornamenti alle politiche gestite AWS](#aws-managed-policy-updates)

## AWS politica gestita: AWSGreengrass FullAccess
<a name="aws-managed-policies-AWSGreengrassFullAccess"></a>

È possibile allegare la policy `AWSGreengrassFullAccess` alle identità IAM.

Questa politica concede autorizzazioni amministrative che consentono l'accesso completo e principale a tutte le AWS IoT Greengrass azioni.

**Dettagli delle autorizzazioni**

Questa policy include le seguenti autorizzazioni:
+ `greengrass`— Consente ai responsabili l'accesso completo a tutte le azioni. AWS IoT Greengrass 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS politica gestita: AWSGreengrass ReadOnlyAccess
<a name="aws-managed-policies-AWSGreengrassReadOnlyAccess"></a>

È possibile allegare la policy `AWSGreengrassReadOnlyAccess` alle identità IAM.

Questa politica concede autorizzazioni di sola lettura che consentono a un responsabile di visualizzare, ma non modificare, le informazioni in. AWS IoT Greengrass Ad esempio, i responsabili con queste autorizzazioni possono visualizzare l'elenco dei componenti distribuiti su un dispositivo principale Greengrass, ma non possono creare una distribuzione per modificare i componenti che funzionano su quel dispositivo.

**Dettagli delle autorizzazioni**

Questa policy include le seguenti autorizzazioni:
+ `greengrass`— Consente ai responsabili di eseguire azioni che restituiscono un elenco di elementi o dettagli su un elemento. Ciò include le operazioni API che iniziano con `List` o`Get`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:List*",
                "greengrass:Get*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS politica gestita: AWSGreengrass ResourceAccessRolePolicy
<a name="aws-managed-policies-AWSGreengrassResourceAccessRolePolicy"></a>

Puoi allegare la `AWSGreengrassResourceAccessRolePolicy` policy alle tue entità IAM. AWS IoT Greengrass associa inoltre questa policy a un ruolo di servizio che consente di AWS IoT Greengrass eseguire azioni per tuo conto. Per ulteriori informazioni, consulta [Ruolo del servizio Greengrass](greengrass-service-role.md).

Questa politica concede autorizzazioni amministrative che consentono di AWS IoT Greengrass eseguire attività essenziali, come il recupero delle funzioni Lambda, la AWS IoT gestione delle ombre dei dispositivi e la verifica dei dispositivi client Greengrass.

**Dettagli delle autorizzazioni**

Questa policy include le seguenti autorizzazioni:
+ `greengrass`— Gestisci le risorse Greengrass.
+ `iot`(`*Shadow`) — Gestisci le AWS IoT ombre che hanno i seguenti identificatori speciali nei loro nomi. Queste autorizzazioni sono necessarie per AWS IoT Greengrass poter comunicare con i dispositivi principali.
  + `*-gci`— AWS IoT Greengrass utilizza questa ombra per archiviare le informazioni principali sulla connettività dei dispositivi, in modo che i dispositivi client possano rilevare e connettersi ai dispositivi principali.
  + `*-gcm`— AWS IoT Greengrass V1 utilizza questa ombra per notificare al dispositivo principale che il certificato di autorità di certificazione (CA) del gruppo Greengrass è ruotato.
  + `*-gda`— AWS IoT Greengrass V1 utilizza questa ombra per notificare al dispositivo principale una distribuzione.
  + `GG_*`— Inutilizzato.
+ `iot`(`DescribeThing`e`DescribeCertificate`) — Recupera informazioni su AWS IoT oggetti e certificati. Queste autorizzazioni sono necessarie per AWS IoT Greengrass verificare i dispositivi client che si connettono a un dispositivo principale. Per ulteriori informazioni, consulta [Interagisci con dispositivi IoT locali](interact-with-local-iot-devices.md).
+ `lambda`— Recupera informazioni sulle AWS Lambda funzioni. Questa autorizzazione è necessaria per consentire alla AWS IoT Greengrass V1 di distribuire le funzioni Lambda sui core Greengrass. Per ulteriori informazioni, consulta [Run Lambda function on the AWS IoT Greengrass core](https://docs.aws.amazon.com/greengrass/v1/developerguide/lambda-functions.html) nella *AWS IoT Greengrass V1* Developer Guide.
+ `secretsmanager`— Recupera il valore dei Gestione dei segreti AWS segreti i cui nomi iniziano con. `greengrass-` Questa autorizzazione è necessaria affinché AWS IoT Greengrass V1 possa distribuire i segreti di Secrets Manager sui core Greengrass. *Per ulteriori informazioni, consulta [Deploy secret to AWS IoT Greengrass core nella V1 Developer](https://docs.aws.amazon.com/greengrass/v1/developerguide/secrets.html) Guide.AWS IoT Greengrass *
+ `s3`— Recupera file e oggetti dai bucket S3 i cui nomi contengono o. `greengrass` `sagemaker` Queste autorizzazioni sono necessarie affinché AWS IoT Greengrass V1 possa distribuire risorse di machine learning archiviate nei bucket S3. *Per ulteriori informazioni, consulta le [risorse di machine learning](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html#ml-resources) nella V1 Developer Guide.AWS IoT Greengrass *
+ `sagemaker`— Recupera informazioni sui modelli di inferenza di apprendimento automatico di Amazon SageMaker AI. Questa autorizzazione è necessaria affinché AWS IoT Greengrass V1 possa distribuire modelli ML sui core Greengrass. *Per ulteriori informazioni, consulta [Eseguire l'inferenza dell'apprendimento automatico](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html) nella V1 Developer Guide.AWS IoT Greengrass *

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGreengrassAccessToShadows",
            "Action": [
                "iot:DeleteThingShadow",
                "iot:GetThingShadow",
                "iot:UpdateThingShadow"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iot:*:*:thing/GG_*",
                "arn:aws:iot:*:*:thing/*-gcm",
                "arn:aws:iot:*:*:thing/*-gda",
                "arn:aws:iot:*:*:thing/*-gci"
            ]
        },
        {
            "Sid": "AllowGreengrassToDescribeThings",
            "Action": [
                "iot:DescribeThing"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:thing/*"
        },
        {
            "Sid": "AllowGreengrassToDescribeCertificates",
            "Action": [
                "iot:DescribeCertificate"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:cert/*"
        },
        {
            "Sid": "AllowGreengrassToCallGreengrassServices",
            "Action": [
                "greengrass:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetLambdaFunctions",
            "Action": [
                "lambda:GetFunction",
                "lambda:GetFunctionConfiguration"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetGreengrassSecrets",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:secretsmanager:*:*:secret:greengrass-*"
        },
        {
            "Sid": "AllowGreengrassAccessToS3Objects",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*Greengrass*",
                "arn:aws:s3:::*GreenGrass*",
                "arn:aws:s3:::*greengrass*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*sagemaker*"
            ]
        },
        {
            "Sid": "AllowGreengrassAccessToS3BucketLocation",
            "Action": [
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassAccessToSageMakerTrainingJobs",
            "Action": [
                "sagemaker:DescribeTrainingJob"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:sagemaker:*:*:training-job/*"
            ]
        }
    ]
}
```

------

## AWS IoT Greengrass aggiornamenti alle politiche gestite AWS
<a name="aws-managed-policy-updates"></a>

È possibile visualizzare i dettagli sugli aggiornamenti delle politiche AWS gestite AWS IoT Greengrass dal momento in cui questo servizio ha iniziato a tenere traccia di tali modifiche. Per ricevere avvisi automatici sulle modifiche a questa pagina, iscriviti al feed RSS nella pagina della cronologia dei [documenti AWS IoT Greengrass V2](document-history.md).


| Modifica | Descrizione | Data | 
| --- | --- | --- | 
|  AWS IoT Greengrass ha iniziato a tenere traccia delle modifiche  |  AWS IoT Greengrass ha iniziato a tenere traccia delle modifiche per le sue politiche AWS gestite.  |  2 luglio 2021  | 

# Prevenzione del problema "confused deputy" tra servizi
<a name="cross-service-confused-deputy-prevention"></a>

Il problema confused deputy è un problema di sicurezza in cui un’entità che non dispone dell’autorizzazione per eseguire un’azione può costringere un’entità maggiormente privilegiata a eseguire l’azione. Nel AWS, l'impersonificazione tra servizi può causare il problema del vice delegato confuso. La rappresentazione tra servizi può verificarsi quando un servizio (il *servizio chiamante*) effettua una chiamata a un altro servizio (il *servizio chiamato*). Il servizio chiamante può essere manipolato per utilizzare le proprie autorizzazioni e agire sulle risorse di un altro cliente, a cui normalmente non avrebbe accesso. Per evitare ciò, AWS fornisce strumenti per poterti a proteggere i tuoi dati per tutti i servizi con entità di servizio a cui è stato concesso l’accesso alle risorse dell’account. 

Si consiglia di utilizzare [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)le chiavi di contesto della condizione [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)globale nelle politiche delle risorse per limitare le autorizzazioni che AWS IoT Greengrass forniscono un altro servizio alla risorsa. Se si utilizzano entrambe le chiavi di contesto delle condizioni globali, il valore `aws:SourceAccount` e l'account nel valore `aws:SourceArn` devono utilizzare lo stesso ID account nella stessa istruzione di policy.

Il valore di `aws:SourceArn` deve essere la risorsa cliente Greengrass associata alla `sts:AssumeRole` richiesta.

Il modo più efficace per proteggersi dal problema "confused deputy" è quello di usare la chiave di contesto della condizione globale `aws:SourceArn` con l’ARN completo della risorsa. Se non si conosce l’ARN completo della risorsa o si scelgono più risorse, è necessario utilizzare la chiave di contesto della condizione globale `aws:SourceArn` con caratteri jolly (`*`) per le parti sconosciute dell’ARN. Ad esempio, `arn:aws:greengrass::account-id:*`. 

Per un esempio di policy che utilizza le chiavi di contesto `aws:SourceArn` e `aws:SourceAccount` global condition, vedi[Creazione del ruolo del servizio Greengrass](greengrass-service-role.md#create-service-role).

# Risoluzione dei problemi di identità e accesso per AWS IoT Greengrass
<a name="security_iam_troubleshoot"></a>

Utilizza le seguenti informazioni per aiutarti a diagnosticare e risolvere i problemi più comuni che potresti riscontrare quando lavori con AWS IoT Greengrass IAM.

**Topics**
+ [Non sono autorizzato a eseguire un'azione in AWS IoT Greengrass](#security_iam_troubleshoot-no-permissions)
+ [Non sono autorizzato a eseguire iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Sono un amministratore e desidero consentire ad altri di accedere AWS IoT Greengrass](#security_iam_troubleshoot-admin-delegate)
+ [Voglio consentire a persone esterne a me di accedere Account AWS alle mie risorse AWS IoT Greengrass](#security_iam_troubleshoot-cross-account-access)

Per un aiuto generale nella risoluzione dei problemi, consulta [Risoluzione dei problemi AWS IoT Greengrass V2](troubleshooting.md).

## Non sono autorizzato a eseguire un'azione in AWS IoT Greengrass
<a name="security_iam_troubleshoot-no-permissions"></a>

Se ricevi un errore che indica che non sei autorizzato a eseguire un'operazione, devi contattare il tuo amministratore per ricevere assistenza. L'amministratore è la persona che ti ha fornito il nome utente e la password.

Il seguente errore di esempio si verifica quando l'utente `mateojackson` IAM tenta di visualizzare i dettagli su un dispositivo principale, ma non dispone `greengrass:GetCoreDevice` delle autorizzazioni.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: greengrass:GetCoreDevice on resource: arn:aws:greengrass:us-west-2:123456789012:coreDevices/MyGreengrassCore
```

In questo caso, Mateo chiede al suo amministratore di aggiornare le policy per poter accedere alla risorsa `arn:aws:greengrass:us-west-2:123456789012:coreDevices/MyGreengrassCore` mediante l'operazione `greengrass:GetCoreDevice`.

Di seguito sono riportati i problemi generali relativi a IAM che potresti riscontrare quando lavori con AWS IoT Greengrass.

## Non sono autorizzato a eseguire iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Se ricevi un errore che indica che non sei autorizzato a eseguire l'operazione `iam:PassRole`, le tue policy devono essere aggiornate per poter passare un ruolo a AWS IoT Greengrass.

Alcuni Servizi AWS consentono di passare un ruolo esistente a quel servizio invece di creare un nuovo ruolo di servizio o un ruolo collegato al servizio. Per eseguire questa operazione, è necessario disporre delle autorizzazioni per trasmettere il ruolo al servizio.

L'errore di esempio seguente si verifica quando un utente IAM denominato `marymajor` cerca di utilizzare la console per eseguire un'operazione in AWS IoT Greengrass. Tuttavia, l'operazione richiede che il servizio disponga delle autorizzazioni concesse da un ruolo di servizio. Mary non dispone delle autorizzazioni per trasmettere il ruolo al servizio.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

In questo caso, le policy di Mary devono essere aggiornate per poter eseguire l’operazione `iam:PassRole`.

Se hai bisogno di aiuto, contatta il tuo AWS amministratore. L’amministratore è la persona che ti ha fornito le credenziali di accesso.

## Sono un amministratore e desidero consentire ad altri di accedere AWS IoT Greengrass
<a name="security_iam_troubleshoot-admin-delegate"></a>

Per consentire ad altri di accedere AWS IoT Greengrass, devi concedere l'autorizzazione alle persone o alle applicazioni che necessitano dell'accesso. Se si utilizza AWS IAM Identity Center per gestire persone e applicazioni, si assegnano set di autorizzazioni a utenti o gruppi per definirne il livello di accesso. I set di autorizzazioni creano e assegnano automaticamente le policy IAM ai ruoli IAM associati alla persona o all'applicazione. Per ulteriori informazioni, consulta [Set di autorizzazioni](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) nella *Guida per l'AWS IAM Identity Center utente*.

Se non utilizzi IAM Identity Center, devi creare entità IAM (utenti o ruoli) per le persone o le applicazioni che necessitano di accesso. Dovrai quindi collegare all'entità una policy che conceda le autorizzazioni corrette in AWS IoT Greengrass. Dopo aver concesso le autorizzazioni, fornisci le credenziali all'utente o allo sviluppatore dell'applicazione. Utilizzeranno tali credenziali per accedere. AWS*Per ulteriori informazioni sulla creazione di utenti, gruppi, policy e autorizzazioni IAM, consulta [IAM Identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) and [Policies and permissions in IAM nella IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) User Guide.*

## Voglio consentire a persone esterne a me di accedere Account AWS alle mie risorse AWS IoT Greengrass
<a name="security_iam_troubleshoot-cross-account-access"></a>

Puoi creare un ruolo IAM che gli utenti di altri account o persone esterne alla tua organizzazione possano utilizzare per accedere alle tue AWS risorse. Puoi specificare chi è attendibile per l'assunzione del ruolo. Per ulteriori informazioni, consulta [Fornire l'accesso a un utente IAM in un altro Account AWS utente di tua](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) proprietà e [Fornire l'accesso a Account AWS utenti di proprietà di terze parti](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) nella *Guida per l'utente IAM*.

AWS IoT Greengrass non supporta l'accesso tra account in base a policy basate sulle risorse o liste di controllo degli accessi (). ACLs

# Consenti il traffico dei dispositivi tramite un proxy o un firewall
<a name="allow-device-traffic"></a>

I dispositivi core Greengrass e i componenti Greengrass eseguono le richieste in uscita verso servizi e altri siti Web. AWS Come misura di sicurezza, potresti limitare il traffico in uscita a un piccolo intervallo di endpoint e porte. Puoi utilizzare le seguenti informazioni su endpoint e porte per limitare il traffico dei dispositivi tramite un proxy, un firewall o un gruppo di [sicurezza Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html). Per ulteriori informazioni su come configurare un dispositivo principale per l'utilizzo di un proxy, consulta. [Connessione alla porta 443 o tramite un proxy di rete](configure-greengrass-core-v2.md#configure-alpn-network-proxy)

**Topics**
+ [Endpoint per il funzionamento di base](#core-endpoints)
+ [Endpoint per l'installazione con provisioning automatico](#automatic-provisioning-endpoints)
+ [Endpoint per i componenti forniti AWS](#public-component-endpoints)

## Endpoint per il funzionamento di base
<a name="core-endpoints"></a>

I dispositivi core Greengrass utilizzano i seguenti endpoint e porte per il funzionamento di base.

### Recupera gli endpoint AWS IoT
<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"
   }
   ```


| Endpoint | Porta | Richiesto | Description | 
| --- | --- | --- | --- | 
|  `greengrass-ats.iot.region.amazonaws.com`  | 8443 o 443 | Sì |  Utilizzato per operazioni sul piano dati, come l'installazione di distribuzioni e l'utilizzo di dispositivi client.  | 
|  `device-data-prefix-ats.iot.region.amazonaws.com`  |  MQTT: 8883 o 443 HTTPS: 8443 o 443  | Sì |  Utilizzato per operazioni sul piano dati per la gestione dei dispositivi, come la comunicazione MQTT e la sincronizzazione delle ombre con. AWS IoT Core  | 
|  `device-credentials-prefix.credentials.iot.region.amazonaws.com`  | 443 | Sì |  Utilizzato per acquisire AWS credenziali, che il dispositivo principale utilizza per scaricare elementi dei componenti da Amazon S3 ed eseguire altre operazioni. Per ulteriori informazioni, consulta [Autorizza i dispositivi principali a interagire con i servizi AWS](device-service-role.md).  | 
|  `*.s3.amazonaws.com` `*.s3.region.amazonaws.com`  | 443 | Sì |  Utilizzato per le distribuzioni. Questo formato include il `*` carattere, poiché i prefissi degli endpoint sono controllati internamente e possono cambiare in qualsiasi momento.  | 
|  `data.iot.region.amazonaws.com`  | 443 | No |  Richiesto se il dispositivo principale esegue una versione del [nucleo di Greengrass](greengrass-nucleus-component.md) precedente alla v2.4.0 ed è configurato per utilizzare un proxy di rete. Il dispositivo principale utilizza questo endpoint per la comunicazione MQTT con chi è protetto da un proxy. AWS IoT Core Per ulteriori informazioni, consulta [Configurare un proxy di rete](configure-greengrass-core-v2.md#configure-network-proxy).  | 

## Endpoint per l'installazione con provisioning automatico
<a name="automatic-provisioning-endpoints"></a>

I dispositivi core Greengrass utilizzano i seguenti endpoint e porte quando si [installa il software AWS IoT Greengrass Core con provisioning automatico](quick-installation.md) delle risorse.


| Endpoint | Porta | Richiesto | Description | 
| --- | --- | --- | --- | 
|  `iot.region.amazonaws.com`  | 443 | Sì |  Utilizzato per creare AWS IoT risorse e recuperare informazioni sulle risorse esistenti. AWS IoT   | 
|  `iam.amazonaws.com`  | 443 | Sì |  Utilizzato per creare risorse IAM e recuperare informazioni sulle risorse IAM esistenti.  | 
|  `sts.region.amazonaws.com`  | 443 | Sì |  Utilizzato per ottenere l'ID del tuo Account AWS.  | 
|  `greengrass.region.amazonaws.com`  | 443 | No |  Obbligatorio se si utilizza l'`--deploy-dev-tools`argomento per distribuire il componente Greengrass CLI sul dispositivo principale.  | 

## Endpoint per i componenti forniti AWS
<a name="public-component-endpoints"></a>

I dispositivi core Greengrass utilizzano endpoint aggiuntivi a seconda dei componenti software eseguiti. Puoi trovare gli endpoint richiesti da ciascun componente AWS fornito nella sezione **Requisiti** della pagina relativa a ciascun componente di questa guida per sviluppatori. Per ulteriori informazioni, consulta [AWS-componenti forniti](public-components.md).

# Convalida della conformità per AWS IoT Greengrass
<a name="compliance-validation"></a>

Per sapere se un Servizio AWS programma rientra nell'ambito di specifici programmi di conformità, consulta Servizi AWS la sezione [Scope by Compliance Program Servizi AWS](https://aws.amazon.com/compliance/services-in-scope/) e scegli il programma di conformità che ti interessa. Per informazioni generali, consulta Programmi di [AWS conformità Programmi](https://aws.amazon.com/compliance/programs/) di di .

È possibile scaricare report di audit di terze parti utilizzando AWS Artifact. Per ulteriori informazioni, consulta [Scaricamento dei report in AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

La vostra responsabilità di conformità durante l'utilizzo Servizi AWS è determinata dalla sensibilità dei dati, dagli obiettivi di conformità dell'azienda e dalle leggi e dai regolamenti applicabili. Per ulteriori informazioni sulla responsabilità di conformità durante l'utilizzo Servizi AWS, consulta [AWS la documentazione sulla sicurezza](https://docs.aws.amazon.com/security/).

# Endpoint FIPS
<a name="FIPS"></a>

AWS IoT Greengrass supporta l'uso di endpoint FIPS ([Federal Information Processing Standard (FIPS) 140-2)](https://aws.amazon.com/compliance/fips/). [Quando la modalità FIPS è abilitata, tutte le trasmissioni di dati, inclusi i protocolli HTTP e MQTT, ai Cloud AWS servizi devono richiamare e stabilire connessioni con i corrispondenti endpoint conformi a FIPS (FIPS - Amazon Web Services ()).AWS](https://aws.amazon.com/compliance/fips/)

Comunicazioni MQTT per AWS IoT utilizzare l'endpoint FIPS del piano dati IoT ([Connecting to FIPS endpoint - AWS IoT Core) e la libreria crittografica conforme a AWS IoT FIPS](https://docs.aws.amazon.com/iot/latest/developerguide/iot-connect-fips.html#iot-connect-fips-data) sviluppata aws-lc. AWS

Per le comunicazioni HTTP in Greengrass:
+ Per i componenti nucleus e plugin, tutti i client HTTP SDK sono configurati con endpoint FIPS impostando la proprietà di sistema su true; AWS\$1USE\$1FIPS\$1ENDPOINT 
+ Per i componenti generici, tutti i componenti iniziano con la proprietà AWS\$1USE\$1FIPS\$1ENDPOINT di sistema impostata su true. Questo processo garantisce che i client HTTP SDK utilizzati da questi componenti generici inviino richieste a endpoint conformi a FIPS.

**Nota**  
Nel caso di Stream manager, Nucleus passa la variabile di ambiente \$1FIPS\$1MODE. AWS\$1GG Questa variabile di ambiente consente ai client HTTP utilizzati all'interno di Stream Manager di identificare e connettersi al corrispondente endpoint conforme allo standard FIPS.

AWS IoT Greengrass offre due metodi per abilitare la modalità FIPS: provisioning e deployment. Per attivare la modalità FIPS, è necessario impostare il parametro `fipsMode` di configurazione su true, Nucleus imposta quindi la proprietà di sistema su true e propagarla come variabile di ambiente AWS\$1USE\$1FIPS\$1ENDPOINT a tutti gli altri componenti. Inoltre, AWS IoT Greengrass scaricherà un certificato CA root (CA3) e lo aggiungerà al file RootCA.pem (o .pem) esistente. AmazonRoot CA1 Se abiliti FIPS tramite una nuova distribuzione, Nucleus si riavvierà per garantire che la proprietà del sistema abbia effetto dopo aver abilitato la modalità FIPS.

 Oltre a configurare il `fipsMode` parametro, è necessario configurare anche i parametri, and. `iotDataEndpoint` `iotCredEndpoint` `greengrassDataEndpoint` Per ulteriori informazioni, consultate il documento pertinente riportato di seguito.

## Abilita gli endpoint FIPS con l'implementazione
<a name="FIPS-deployment"></a>

Ottieni gli AWS IoT endpoint per te e salvali per utilizzarli in un secondo momento. Account AWS Il tuo dispositivo utilizza questi endpoint per connettersi a. AWS IoT Sono necessari due endpoint, il `iotDataEndpoint` e il. `iotCredEndpoint` Esegui questa operazione:

1. Ottieni l'endpoint di dati FIPS per la tua regione negli endpoint del piano dati [AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). L'endpoint di dati FIPS per te dovrebbe avere il seguente aspetto: Account AWS *data.iot-fips.us-west-2.amazonaws.com*

1. [Ottieni l'endpoint delle credenziali FIPS per la tua regione negli endpoint del AWS IoT Core piano dati FIPS.](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints) L'endpoint di credenziali FIPS per il tuo dovrebbe avere il seguente aspetto: Account AWS *data.credentials.iot-fips.us-west-2.amazonaws.com*

Quindi, per abilitare FIPS con una distribuzione, è necessario applicare la seguente configurazione a Nucleus. La configurazione da unire durante la distribuzione è la seguente.

------
#### [ Console ]

**Configurazione da unire**  

```
{
  "fipsMode": "true",
  "iotDataEndpoint": "data.iot-fips.us-west-2.amazonaws.com",
  "greengrassDataPlaneEndpoint": "iotData",
  "iotCredEndpoint": "data.credentials.iot-fips.us-west-2.amazonaws.com"
}
```

------
#### [ AWS CLI ]

Il comando seguente crea una distribuzione su un dispositivo principale.

```
aws greengrassv2 create-deployment --cli-input-json file://dashboard-deployment.json
```

Il `dashboard-deployment.json` file contiene il seguente documento JSON.

```
{
  "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
  "deploymentName": "Deployment for MyGreengrassCore",
  "components": {
    "aws.greengrass.Nucleus": {
      "componentVersion": "2.13.0",
      "configurationUpdate": {
        "merge":{\"fipsMode\":\"true\",\"iotDataEndpoint\":\"data.iot-fips.us-west-2.amazonaws.com\",\"greengrassDataPlaneEndpoint\":\"iotData\",\"iotCredEndpoint\":\"data.credentials.iot-fips.us-west-2.amazonaws.com\"}"
      }
    }
  }
}
```

------
#### [ Greengrass CLI ]

Il seguente comando [Greengrass CLI](greengrass-cli-component.md) crea una distribuzione locale su un dispositivo principale.

```
sudo greengrass-cli deployment create \
  --recipeDir recipes \
  --artifactDir artifacts \
  --merge "aws.greengrass.Nucleus=2.13.0" \
  --update-config dashboard-configuration.json
```

Il `dashboard-configuration.json` file contiene il seguente documento JSON.

```
{
  "aws.greengrass.Nucleus": {
    "MERGE": {
       "fipsMode": "true",
       "iotDataEndpoint": "data.iot-fips.us-west-2.amazonaws.com",
       "greengrassDataPlaneEndpoint": "iotData",
       "iotCredEndpoint": "data.credentials.iot-fips.us-west-2.amazonaws.com"

    }
  }
}
```

------

## Installa Nucleus con endpoint FIPS con provisioning manuale delle risorse
<a name="FIPS-manual-installation"></a>

Esegui manualmente il provisioning AWS delle risorse per i dispositivi AWS IoT Greengrass V2 principali con endpoint FIPS

**Importante**  <a name="install-greengrass-core-requirements-note"></a>
Prima di scaricare il software AWS IoT Greengrass Core, verifica 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**
+ [Recupera AWS IoT gli endpoint](#w2ab1c58c44c23b9)
+ [Crea qualsiasi cosa AWS IoT](#create-iot-thing)
+ [Crea il certificato dell'oggetto](#create-thing-certificate-fips)
+ [Crea un ruolo di scambio di token](#create-token-exchange-role)
+ [Scarica i certificati sul dispositivo](#download-thing-certificates)
+ [Configura l'ambiente del dispositivo](#set-up-device-environment)
+ [Scaricate il software Core AWS IoT Greengrass](#download-greengrass-core-v2)
+ [Installa il software Core AWS IoT Greengrass](#run-greengrass-core-v2-installer-manual-fips)

### Recupera AWS IoT gli endpoint
<a name="w2ab1c58c44c23b9"></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 Sono necessari due endpoint, il `iotDataEndpoint` e il. `iotCredEndpoint` Esegui questa operazione:

1. Ottieni l'endpoint di dati FIPS per la tua regione negli endpoint del piano dati [AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). L'endpoint di dati FIPS per te dovrebbe avere il seguente aspetto: Account AWS *data.iot-fips.us-west-2.amazonaws.com*

1. [Ottieni l'endpoint delle credenziali FIPS per la tua regione negli endpoint del AWS IoT Core piano dati FIPS.](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints) L'endpoint di credenziali FIPS per il tuo dovrebbe avere il seguente aspetto: Account AWS *data.credentials.iot-fips.us-west-2.amazonaws.com*

### Crea qualsiasi cosa AWS IoT
<a name="create-iot-thing"></a>

AWS IoT *le cose* rappresentano dispositivi ed entità logiche a cui si connettono AWS IoT. I dispositivi core Greengrass sono AWS IoT cose. Quando registri un dispositivo come AWS IoT oggetto, quel dispositivo può utilizzare un certificato digitale con cui autenticarsi. AWS

In questa sezione, crei AWS IoT qualcosa che rappresenta il tuo dispositivo.

**Per creare qualsiasi AWS IoT cosa**

1. Crea AWS IoT qualcosa per il tuo dispositivo. Sul tuo computer di sviluppo, esegui il seguente comando.
   + Sostituisci *MyGreengrassCore* con il nome dell'oggetto da usare. Questo nome è anche il nome del dispositivo principale Greengrass.
**Nota**  <a name="install-argument-thing-name-constraint"></a>
Il nome dell'oggetto non può contenere i due punti (`:`).

   ```
   aws iot create-thing --thing-name MyGreengrassCore
   ```

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

   ```
   {
     "thingName": "MyGreengrassCore",
     "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
     "thingId": "8cb4b6cd-268e-495d-b5b9-1713d71dbf42"
   }
   ```

1. (Facoltativo) Aggiungere l' AWS IoT oggetto a un gruppo di oggetti nuovo o esistente. Utilizzi i gruppi di cose per gestire flotte di dispositivi core Greengrass. Quando distribuisci componenti software sui tuoi dispositivi, puoi scegliere come target singoli dispositivi o gruppi di dispositivi. È possibile aggiungere un dispositivo a un gruppo di cose con una distribuzione Greengrass attiva per distribuire i componenti software di quel gruppo di cose sul dispositivo. Esegui questa operazione:

   1. (Facoltativo) Crea un gruppo di AWS IoT cose.
      + Sostituirlo *MyGreengrassCoreGroup* con il nome del gruppo di oggetti da creare.
**Nota**  <a name="install-argument-thing-group-name-constraint"></a>
Il nome del gruppo di cose non può contenere i due punti (`:`).

      ```
      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup
      ```

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

      ```
      {
        "thingGroupName": "MyGreengrassCoreGroup",
        "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup",
        "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa"
      }
      ```

   1. Aggiungere l' AWS IoT oggetto a un gruppo di oggetti.
      + Sostituiscilo *MyGreengrassCore* con il nome del tuo AWS IoT oggetto.
      + Sostituisci *MyGreengrassCoreGroup* con il nome del gruppo di oggetti.

      ```
      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup
      ```

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

### Crea il certificato dell'oggetto
<a name="create-thing-certificate-fips"></a>

<a name="create-thing-certificate-intro-1"></a>Quando si registra un dispositivo come AWS IoT oggetto, quel dispositivo può utilizzare un certificato digitale con AWS cui autenticarsi. Questo certificato consente al dispositivo di comunicare con AWS IoT e AWS IoT Greengrass.

<a name="create-thing-certificate-intro-2"></a>In questa sezione, crei e scarichi certificati a cui il tuo dispositivo può connettersi AWS.

<a name="create-thing-certificate-intro-3"></a>Se desideri configurare il software AWS IoT Greengrass Core per utilizzare un modulo di sicurezza hardware (HSM) per archiviare in modo sicuro la chiave privata e il certificato, segui i passaggi per creare il certificato da una chiave privata in un HSM. Altrimenti, segui i passaggi per creare il certificato e la chiave privata nel servizio. AWS IoT La funzionalità di sicurezza hardware è disponibile solo sui dispositivi Linux. Per ulteriori informazioni sulla sicurezza dell'hardware e sui requisiti per utilizzarla, vedere[Integrazione della sicurezza hardware](hardware-security.md).

#### Creare il certificato e la chiave privata nel AWS IoT servizio
<a name="create-thing-certificate-cloud"></a><a name="create-thing-certificate-cloud-steps"></a>

**Per creare il certificato dell'oggetto**

1. Crea una cartella in cui scaricare i certificati relativi all' AWS IoT oggetto.

   ```
   mkdir greengrass-v2-certs
   ```

1. Crea e scarica i certificati relativi all' AWS IoT oggetto.

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

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

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----",
     "keyPair": {
       "PublicKey": "-----BEGIN PUBLIC KEY-----\
   MIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\
   MMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\
   59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\
   hJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\
   FQIDAQAB\
   -----END PUBLIC KEY-----\
   ",
       "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\
   key omitted for security reasons\
   -----END RSA PRIVATE KEY-----\
   "
     }
   }
   ```

   Salva l'Amazon Resource Name (ARN) del certificato da utilizzare per configurare il certificato in un secondo momento.

#### Crea il certificato da una chiave privata in un HSM
<a name="create-thing-certificate-hardware-security"></a>

**Nota**  
[Questa funzionalità è disponibile per la versione 2.5.3 e successive del componente Greengrass nucleus.](greengrass-nucleus-component.md) AWS IoT Greengrass attualmente non supporta questa funzionalità sui dispositivi Windows core. 

**Per creare il certificato Thing**

1. Sul dispositivo principale, inizializza un token PKCS \$111 nell'HSM e genera una chiave privata. La chiave privata deve essere una chiave RSA con una dimensione di chiave RSA-2048 (o superiore) o una chiave ECC.
**Nota**  <a name="hardware-security-module-requirements-key-notes"></a>
Per utilizzare un modulo di sicurezza hardware con chiavi ECC, è necessario utilizzare [Greengrass nucleus](greengrass-nucleus-component.md) v2.5.6 o versione successiva.  
Per utilizzare un modulo di sicurezza hardware e un [gestore segreto](secret-manager-component.md), è necessario utilizzare un modulo di sicurezza hardware con chiavi RSA.

   Consulta la documentazione del tuo HSM per scoprire come inizializzare il token e generare la chiave privata. Se il tuo HSM supporta gli oggetti IDs, specifica un ID dell'oggetto quando generi la chiave privata. Salva l'ID dello slot, il PIN utente, l'etichetta dell'oggetto, l'ID dell'oggetto (se il tuo HSM ne utilizza uno) che specifichi quando inizializzi il token e generi la chiave privata. Questi valori vengono utilizzati successivamente quando si importa il certificato dell'oggetto nell'HSM e si configura il AWS IoT Greengrass software Core.

1. Crea una richiesta di firma del certificato (CSR) dalla chiave privata. AWS IoT utilizza questa CSR per creare un thing certificate per la chiave privata generata nell'HSM. Per informazioni su come creare una CSR dalla chiave privata, consulta la documentazione del tuo HSM. La CSR è un file, ad esempio. `iotdevicekey.csr`

1. Copia la CSR dal dispositivo al tuo computer di sviluppo. Se SSH e SCP sono abilitati sul computer di sviluppo e sul dispositivo, puoi usare il `scp` comando sul tuo computer di sviluppo per trasferire la CSR. Sostituiscilo *device-ip-address* con l'indirizzo IP del dispositivo e sostituiscilo *\$1/iotdevicekey.csr* con il percorso del file CSR sul dispositivo.

   ```
   scp device-ip-address:~/iotdevicekey.csr iotdevicekey.csr
   ```

1. Sul tuo computer di sviluppo, crea una cartella in cui scaricare il certificato relativo all' AWS IoT oggetto.

   ```
   mkdir greengrass-v2-certs
   ```

1. Usa il file CSR per creare e scaricare il certificato relativo all' AWS IoT oggetto sul tuo computer di sviluppo.

   ```
   aws iot create-certificate-from-csr --set-as-active --certificate-signing-request=file://iotdevicekey.csr --certificate-pem-outfile greengrass-v2-certs/device.pem.crt
   ```

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

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----"
   }
   ```

   Salva l'ARN del certificato da utilizzare per configurare il certificato in un secondo momento.

Quindi, configura il certificato dell'oggetto. Per ulteriori informazioni, consulta [Configura il certificato del oggetto](manual-installation.md#configure-thing-certificate).

### 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. Quindi, configuri il dispositivo in modo che utilizzi quel ruolo e quell'alias. AWS IoT 

**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
      ```

      Copia 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
      ```

      Copia 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.*

1. Crea e allega una AWS IoT policy che consenta al tuo dispositivo principale Greengrass di utilizzare l'alias del ruolo per assumere il ruolo di scambio di token. Se hai già configurato un dispositivo principale Greengrass, puoi allegare la sua AWS IoT politica di alias di ruolo invece di crearne uno nuovo. Esegui questa operazione:

   1. (Facoltativo) Create un file che contenga il documento di AWS IoT policy richiesto dall'alias di ruolo.

      <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-role-alias-policy.json
      ```

      Copia il seguente codice JSON nel file.
      + Sostituisci l'ARN della risorsa con l'ARN del tuo alias di ruolo.

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "iot:AssumeRoleWithCertificate",
            "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
          }
        ]
      }
      ```

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

      ```
      aws iot create-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --policy-document file://greengrass-v2-iot-role-alias-policy.json
      ```

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

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

   1. Allega la AWS IoT policy al certificato dell' AWS IoT oggetto.
      + Sostituisci *GreengrassCoreTokenExchangeRoleAliasPolicy* con il nome della AWS IoT politica relativa agli alias del ruolo.
      + Sostituisci l'ARN di destinazione con l'ARN del certificato per il tuo oggetto. AWS IoT 

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

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

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

In precedenza, avevi scaricato il certificato del dispositivo sul computer di sviluppo. In questa sezione, si copia il certificato sul dispositivo principale per configurare il dispositivo con i certificati a cui viene utilizzato per la connessione AWS IoT. Puoi anche scaricare il certificato Amazon Root Certificate Authority (CA). Se utilizzi un HSM, in questa sezione importi anche il file del certificato nell'HSM.
+ Se in precedenza hai creato il certificato e la chiave privata nel AWS IoT servizio, segui i passaggi per scaricare i certificati con chiave privata e file di certificato.
+ Se in precedenza hai creato il certificato dell'oggetto da una chiave privata in un modulo di sicurezza hardware (HSM), segui i passaggi per scaricare i certificati con la chiave privata e il certificato in un HSM.

#### Scarica i certificati con chiave privata e file di certificato
<a name="download-thing-certificates-without-hardware-security"></a>

**Per scaricare i certificati sul dispositivo**

1. <a name="installation-copy-thing-certificate-to-device"></a>Copia il certificato AWS IoT Thing dal tuo computer di sviluppo al dispositivo. Se SSH e SCP sono abilitati sul computer di sviluppo e sul dispositivo, puoi usare il `scp` comando sul tuo computer di sviluppo per trasferire il certificato. *device-ip-address*Sostituiscilo con l'indirizzo IP del tuo dispositivo.

   ```
   scp -r greengrass-v2-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 ]
   + `/greengrass/v2`Sostituiscilo 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. Copia i AWS IoT Thing Certificates nella cartella principale di Greengrass.

------
#### [ Linux or Unix ]
   + Sostituisci `/greengrass/v2` con la cartella principale di Greengrass.

   ```
   sudo cp -R ~/greengrass-v2-certs/* /greengrass/v2
   ```

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

   ```
   robocopy %USERPROFILE%\greengrass-v2-certs C:\greengrass\v2 /E
   ```

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

   ```
   cp -Path ~\greengrass-v2-certs\* -Destination C:\greengrass\v2
   ```

------

1. Scarica il certificato Amazon Root Certificate Authority (CA). AWS IoT per impostazione predefinita, i certificati sono associati al certificato CA root di Amazon. Scarica il CA1 certificato e il [CA3certificato](https://www.amazontrust.com/repository/).

------
#### [ Linux or Unix ]
   + Sostituisci `/greengrass/v2` o *C:\$1greengrass\$1v2* con la cartella principale di Greengrass.

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/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
   ```

------

#### Scarica i certificati con la chiave privata e il certificato in un HSM
<a name="download-thing-certificates-with-hardware-security"></a>

**Nota**  
[Questa funzionalità è disponibile per la versione 2.5.3 e successive del componente Greengrass nucleus.](greengrass-nucleus-component.md) AWS IoT Greengrass attualmente non supporta questa funzionalità sui dispositivi Windows core. 

**Per scaricare i certificati sul dispositivo**

1. <a name="installation-copy-thing-certificate-to-device"></a>Copia il certificato AWS IoT Thing dal tuo computer di sviluppo al dispositivo. Se SSH e SCP sono abilitati sul computer di sviluppo e sul dispositivo, puoi usare il `scp` comando sul tuo computer di sviluppo per trasferire il certificato. *device-ip-address*Sostituiscilo con l'indirizzo IP del tuo dispositivo.

   ```
   scp -r greengrass-v2-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 ]
   + `/greengrass/v2`Sostituiscilo 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. Importa il file del certificato dell'oggetto`~/greengrass-v2-certs/device.pem.crt`, nell'HSM. Consulta la documentazione del tuo HSM per scoprire come importare i certificati al suo interno. Importa il certificato utilizzando lo stesso token, ID slot, PIN utente, etichetta dell'oggetto e ID oggetto (se il tuo HSM ne utilizza uno) con cui hai generato la chiave privata nell'HSM in precedenza.
**Nota**  
Se hai generato la chiave privata in precedenza senza un ID di oggetto e il certificato ha un ID oggetto, imposta l'ID dell'oggetto della chiave privata sullo stesso valore del certificato. Consultate la documentazione del vostro HSM per scoprire come impostare l'ID dell'oggetto per l'oggetto chiave privata.

1. (Facoltativo) Eliminare il file del certificato dell'oggetto, in modo che esista solo nell'HSM.

   ```
   rm ~/greengrass-v2-certs/device.pem.crt
   ```

1. Scarica il certificato Amazon Root Certificate Authority (CA). AWS IoT per impostazione predefinita, i certificati sono associati al certificato CA root di Amazon. Scarica sia il CA1 certificato che il [CA3certificato](https://www.amazontrust.com/repository/).

------
#### [ Linux or Unix ]
   + Sostituisci `/greengrass/v2` o *C:\$1greengrass\$1v2* con la cartella principale di Greengrass.

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/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 **le 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 

### Scaricate 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.

### Installa il software Core AWS IoT Greengrass
<a name="run-greengrass-core-v2-installer-manual-fips"></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 le AWS risorse e i certificati creati in precedenza. 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.
+ <a name="install-argument-component-default-user"></a>Specificate 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).
+ Se in precedenza hai creato il certificato e la chiave privata nel AWS IoT servizio, segui i passaggi per installare il software AWS IoT Greengrass Core con la chiave privata e i file di certificato.
+ Se in precedenza hai creato il certificato dell'oggetto da una chiave privata in un modulo di sicurezza hardware (HSM), segui i passaggi per installare il software AWS IoT Greengrass Core con la chiave privata e il certificato in un HSM.

#### Installa il software AWS IoT Greengrass Core con chiave privata e file di certificato
<a name="FIPS-manual-installation-without-hardware-security"></a>

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

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 di sistema e i parametri del nucleo di Greengrass.

   ```
   ---
   system:
     certificateFilePath: "/greengrass/v2/device.pem.crt"
     privateKeyPath: "/greengrass/v2/private.pem.key"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.16.1"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
   ```

   Successivamente, esegui queste operazioni:
   + Sostituisci ogni istanza di `/greengrass/v2` con la cartella principale di Greengrass.
   + Sostituisci *MyGreengrassCore* con il nome della AWS IoT cosa.
   + Sostituire *2.16.1* con la versione del software AWS IoT Greengrass Core.
   + Sostituisci *us-west-2* con la Regione AWS posizione in cui hai creato le risorse.
   + Sostituisci *GreengrassCoreTokenExchangeRoleAlias* con il nome dell'alias del ruolo di scambio di token.
   + Sostituiscilo *iotDataEndpoint* con il tuo endpoint di AWS IoT dati.
   + Sostituisci l'*iotCredEndpoint*endpoint con AWS IoT le tue credenziali.

1. Eseguite il programma di installazione e specificate di `--init-config` fornire il file di configurazione.
   + Sostituisci `/greengrass/v2` o *C:\$1greengrass\$1v2* 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 \
     --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 ^
     --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 `
     --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`.

#### Installa il software AWS IoT Greengrass Core con la chiave privata e il certificato in un HSM
<a name="FIPS-manual-installation-with-hardware-security"></a>

**Nota**  
[Questa funzionalità è disponibile per la versione 2.5.3 e successive del componente Greengrass nucleus.](greengrass-nucleus-component.md) AWS IoT Greengrass attualmente non supporta questa funzionalità sui dispositivi Windows core. 

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

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. Per consentire al software AWS IoT Greengrass Core di utilizzare la chiave privata e il certificato nell'HSM, installate il [componente del provider PKCS \$111](pkcs11-provider-component.md) quando installate il software AWS IoT Greengrass Core. Il componente del provider PKCS \$111 è un plug-in che è possibile configurare durante l'installazione. È possibile scaricare la versione più recente del componente del provider PKCS \$111 dalla seguente posizione:
   + [https://d2s8p88vqu9w66.cloudfront. net/releases/Pkcs11Provider/aws.greengrass.crypto.pkcs11Provider-latest.jar](https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar)

   Scarica il plugin del provider PKCS \$111 in un file denominato. `aws.greengrass.crypto.Pkcs11Provider.jar` Sostituiscilo *GreengrassInstaller* con la cartella che desideri utilizzare.

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar > GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.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).

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 di sistema, i parametri Greengrass nucleus e i parametri del provider PKCS \$111.

   ```
   ---
   system:
     certificateFilePath: "/greengrass/v2/device.pem.crt"
     privateKeyPath: "/greengrass/v2/private.pem.key"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.16.1"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
   ```

   Successivamente, esegui queste operazioni:
   + Sostituisci ogni istanza di *iotdevicekey* PKCS \$111 URIs con l'etichetta dell'oggetto in cui hai creato la chiave privata e importato il certificato.
   + Sostituisci ogni istanza di `/greengrass/v2` con la cartella principale di Greengrass.
   + Sostituisci *MyGreengrassCore* con il nome della AWS IoT cosa.
   + Sostituire *2.16.1* con la versione del software AWS IoT Greengrass Core.
   + Sostituisci *us-west-2* con la Regione AWS posizione in cui hai creato le risorse.
   + Sostituisci *GreengrassCoreTokenExchangeRoleAlias* con il nome dell'alias del ruolo di scambio di token.
   + Sostituiscilo `iotDataEndpoint` con il tuo endpoint di AWS IoT dati.
   + Sostituisci l'`iotCredEndpoint`endpoint con AWS IoT le tue credenziali.
   + Sostituisci i parametri di configurazione per il `aws.greengrass.crypto.Pkcs11Provider` componente con i valori per la configurazione HSM sul dispositivo principale.

1. Eseguite il programma di installazione 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.

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --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 AWS IoT Greengrass, consulta 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)

## Installa gli endpoint FIPS con il provisioning della flotta
<a name="FIPS-fleet-provisioning"></a>

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

Installa gli endpoint FIPS sul tuo software AWS IoT Greengrass Core con il provisioning del AWS IoT parco veicoli per i tuoi dispositivi principali.

**Nota**  
Il plug-in Fleet Provisioning attualmente non supporta l'archiviazione di chiavi private e file di certificati in un modulo di sicurezza hardware (HSM). Per utilizzare un HSM, [installa il software AWS IoT Greengrass Core con](#FIPS-fleet-provisioning) 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-fleet-provisioning)
+ [Scaricate il software Core AWS IoT Greengrass](#download-greengrass-core-v2-fleet)
+ [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-provisioning)

### 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 endpoint FIPS per i tuoi 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 dati FIPS per la tua regione negli endpoint del piano dati [AWS IoT Core FIPS](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints). L'endpoint di dati FIPS per te dovrebbe avere il seguente aspetto: Account AWS *data.iot-fips.us-west-2.amazonaws.com*

1. [Ottieni l'endpoint delle credenziali FIPS per la tua regione negli endpoint del AWS IoT Core piano dati FIPS.](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints) L'endpoint di credenziali FIPS per il tuo dovrebbe avere il seguente aspetto: Account AWS *data.credentials.iot-fips.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 ]
   + `/greengrass/v2`Sostituiscilo 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. Scarica sia il CA1 certificato che il [CA3certificato](https://www.amazontrust.com/repository/).

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

   ```
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/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-fleet-provisioning"></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-fleet-provisioning"></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-fleet-provisioning"></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 **le 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 

### Scaricate il software Core AWS IoT Greengrass
<a name="download-greengrass-core-v2-fleet"></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-provisioning"></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"
       configuration:
         fipsMode: "true"
         greengrassDataPlaneEndpoint: "iotData"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "/greengrass/v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         iotCredEndpoint: "data.credentials.iot-fips.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 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.

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 AWS IoT Greengrass, consulta 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)

## Installa gli endpoint FIPS con il provisioning automatico delle risorse
<a name="FIPS-auto-installation"></a>

Il software AWS IoT Greengrass Core include un programma di installazione che configura il dispositivo come dispositivo principale Greengrass. Per configurare rapidamente un dispositivo, l'installatore può fornire il thing, il AWS IoT AWS IoT thing group, il ruolo IAM e l'alias di AWS IoT ruolo necessari per il funzionamento del dispositivo principale. Il programma di installazione può anche distribuire gli strumenti di sviluppo locali sul dispositivo principale, in modo da poter utilizzare il dispositivo per sviluppare e testare componenti software personalizzati. Il programma di installazione richiede AWS credenziali per fornire queste risorse e creare la distribuzione.

Se non è possibile fornire AWS le credenziali al dispositivo, è possibile fornire le AWS risorse necessarie al funzionamento del dispositivo principale. Puoi anche distribuire gli strumenti di sviluppo su un dispositivo principale da utilizzare come dispositivo di sviluppo. Ciò consente di fornire meno autorizzazioni al dispositivo quando si esegue il programma di installazione. Per ulteriori informazioni, consulta [Installa il software AWS IoT Greengrass Core con provisioning manuale delle risorse](manual-installation.md).

**Importante**  <a name="install-greengrass-core-requirements-note"></a>
Prima di scaricare il software AWS IoT Greengrass Core, verifica 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**
+ [Configura l'ambiente del dispositivo](#set-up-device-environment)
+ [Fornisci AWS le credenziali al dispositivo](#provide-installer-aws-credentials-auto)
+ [Scaricate il software AWS IoT Greengrass Core](#download-greengrass-core-v2-auto)
+ [Installa il software Core AWS IoT Greengrass](#run-greengrass-core-v2-installer-auto)

### 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 **le 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 

### Fornisci AWS le credenziali al dispositivo
<a name="provide-installer-aws-credentials-auto"></a>

Fornisci AWS le tue credenziali al dispositivo in modo che l'installatore possa fornire le risorse necessarie. AWS Per ulteriori informazioni sulle autorizzazioni richieste, consulta [Policy IAM minima per l'installatore per il provisioning delle risorse](provision-minimal-iam-policy.md).

**Per fornire AWS le credenziali al dispositivo**
+ <a name="installer-export-aws-credentials"></a>Fornisci AWS le tue credenziali al dispositivo in modo che l'installatore possa fornire le risorse AWS IoT e IAM per il tuo dispositivo principale. Per aumentare la sicurezza, ti consigliamo di ottenere credenziali temporanee per un ruolo IAM che consenta solo le autorizzazioni minime necessarie per il provisioning. Per ulteriori informazioni, consulta [Policy IAM minima per l'installatore per il provisioning delle risorse](provision-minimal-iam-policy.md).
**Nota**  
Il programma di installazione non salva né archivia le tue credenziali.

  Sul dispositivo, esegui una delle seguenti operazioni per recuperare le credenziali e renderle disponibili al programma di installazione del AWS IoT Greengrass software Core:
  + (Consigliato) Utilizza credenziali temporanee da AWS IAM Identity Center

    1. Fornisci l'ID della chiave di accesso, la chiave di accesso segreta e il token di sessione dall'IAM Identity Center. Per ulteriori informazioni, consulta Aggiornamento **manuale delle credenziali in Acquisizione e aggiornamento** [delle credenziali temporanee nella guida](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials) per l'utente di *IAM Identity Center*.

    1. Esegui i seguenti comandi per fornire le credenziali al software Core. AWS IoT Greengrass 

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

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

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

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       set AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

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

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       $env:AWS_SESSION_TOKEN="AQoDYXdzEJr1K...o5OytwEXAMPLE="
       ```

------
  + Utilizza credenziali di sicurezza temporanee da un ruolo IAM:

    1. Fornisci l'ID della chiave di accesso, la chiave di accesso segreta e il token di sessione da un ruolo IAM che assumi. *Per ulteriori informazioni su come recuperare queste credenziali, consulta la sezione [Richiesta di credenziali di sicurezza temporanee nella Guida per l'utente](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) IAM.*

    1. Esegui i seguenti comandi per fornire le credenziali al software Core. AWS IoT Greengrass 

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

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

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

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       set AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

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

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       $env:AWS_SESSION_TOKEN="AQoDYXdzEJr1K...o5OytwEXAMPLE="
       ```

------
  + Utilizza le credenziali a lungo termine di un utente IAM:

    1. Fornisci l'ID della chiave di accesso e la chiave di accesso segreta per il tuo utente IAM. Puoi creare un utente IAM per il provisioning da eliminare successivamente. Per la policy IAM da fornire all'utente, consulta[Policy IAM minima per l'installatore per il provisioning delle risorse](provision-minimal-iam-policy.md). Per ulteriori informazioni su come recuperare le credenziali a lungo termine, consulta [Managing access keys for IAM users nella IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) *User Guide*.

    1. Esegui i seguenti comandi per fornire le credenziali al AWS IoT Greengrass software Core.

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

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       ```

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

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       ```

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

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       ```

------

    1. (Facoltativo) Se hai creato un utente IAM per il provisioning del tuo dispositivo Greengrass, elimina l'utente.

    1. (Facoltativo) Se hai utilizzato l'ID della chiave di accesso e la chiave di accesso segreta di un utente IAM esistente, aggiorna le chiavi dell'utente in modo che non siano più valide. Per ulteriori informazioni, consulta [Aggiornamento delle chiavi di accesso](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) nella *guida AWS Identity and Access Management per l'utente*.

### Scaricate il software AWS IoT Greengrass Core
<a name="download-greengrass-core-v2-auto"></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.

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

Eseguite il programma di installazione con argomenti che specificano di eseguire le seguenti operazioni:
+ <a name="install-argument-aws-resources"></a> AWS Create le risorse necessarie al funzionamento del dispositivo principale.
+ <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 configurare un dispositivo di sviluppo con strumenti di sviluppo locali, specificate l'`--deploy-dev-tools true`argomento. L'implementazione degli strumenti di sviluppo locale può richiedere fino a un minuto dopo il completamento dell'installazione. 

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. 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 di sistema e i parametri del nucleo di Greengrass.

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       configuration:
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
   ```
   + *us-west-2*Sostituiscilo con il Regione AWS punto in cui hai creato le risorse.
   + Sostituiscilo *iotDataEndpoint* con il tuo endpoint di AWS IoT dati.
   + Sostituisci l'*iotCredEndpoint*endpoint con AWS IoT le tue credenziali.

1. Esegui il programma di installazione AWS IoT Greengrass Core. Sostituisci i valori degli argomenti nel tuo comando come segue.
**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.<a name="installer-replace-arguments"></a>

   1. `/greengrass/v2`oppure*C:\$1greengrass\$1v2*: il percorso della cartella principale da utilizzare per installare il software AWS IoT Greengrass Core.

   1. *GreengrassInstaller*. Il percorso della cartella in cui è stato decompresso il programma di installazione del software AWS IoT Greengrass Core.

   1. *region*. Il Regione AWS luogo in cui trovare o creare risorse.

   1. *MyGreengrassCore*. Il nome del AWS IoT dispositivo principale Greengrass. Se l'oggetto non esiste, l'installatore lo crea. Il programma di installazione scarica i certificati per autenticarsi come oggetto. AWS IoT Per ulteriori informazioni, consulta [Autenticazione e autorizzazione del dispositivo per AWS IoT Greengrass](device-auth.md).
**Nota**  <a name="install-argument-thing-name-constraint"></a>
Il nome dell'oggetto non può contenere i due punti (`:`).

   1. *MyGreengrassCoreGroup*. Il nome del AWS IoT gruppo di oggetti per il tuo dispositivo principale Greengrass. Se il gruppo di oggetti non esiste, il programma di installazione lo crea e vi aggiunge l'oggetto. Se il gruppo di oggetti esiste e dispone di una distribuzione attiva, il dispositivo principale scarica ed esegue il software specificato dalla distribuzione.
**Nota**  <a name="install-argument-thing-group-name-constraint"></a>
Il nome del gruppo di cose non può contenere i due punti (`:`).

   1. *GreengrassV2IoTThingPolicy*. Il nome della AWS IoT policy che consente ai dispositivi core Greengrass di comunicare con AWS IoT e. AWS IoT Greengrass Se la AWS IoT politica non esiste, il programma di installazione crea una AWS IoT politica permissiva con questo nome. Puoi limitare le autorizzazioni di 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).

   1. *GreengrassV2TokenExchangeRole*. Il nome del ruolo IAM che consente al dispositivo principale Greengrass di ottenere credenziali temporanee AWS . Se il ruolo non esiste, l'installatore lo crea e crea e allega una policy denominata. `GreengrassV2TokenExchangeRoleAccess` Per ulteriori informazioni, consulta [Autorizza i dispositivi principali a interagire con i servizi AWS](device-service-role.md).

   1. *GreengrassCoreTokenExchangeRoleAlias*. L'alias del ruolo IAM che consente al dispositivo principale Greengrass di ottenere credenziali temporanee in un secondo momento. Se l'alias del ruolo non esiste, il programma di installazione lo crea e lo indirizza al ruolo IAM specificato. Per ulteriori informazioni, consulta [Autorizza i dispositivi principali a interagire con i servizi AWS](device-service-role.md).

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

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --aws-region region \
     --thing-name MyGreengrassCore \
     --thing-group-name MyGreengrassCoreGroup \
     --thing-policy-name GreengrassV2IoTThingPolicy \
     --tes-role-name GreengrassV2TokenExchangeRole \
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias \
     --component-default-user ggc_user:ggc_group \
     --provision true \
     --init-config ./GreengrassInstaller/config.yaml \
     --setup-system-service true
   ```

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

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --aws-region region ^
     --thing-name MyGreengrassCore ^
     --thing-group-name MyGreengrassCoreGroup ^
     --thing-policy-name GreengrassV2IoTThingPolicy ^
     --tes-role-name GreengrassV2TokenExchangeRole ^
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias ^
     --component-default-user ggc_user ^
     --provision true ^
     --setup-system-service true
   ```

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

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --aws-region region `
     --thing-name MyGreengrassCore `
     --thing-group-name MyGreengrassCoreGroup `
     --thing-policy-name GreengrassV2IoTThingPolicy `
     --tes-role-name GreengrassV2TokenExchangeRole `
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias `
     --component-default-user ggc_user `
     --provision true `
     --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.

   Il programma di installazione stampa i seguenti messaggi se riesce:
   + Se si specifica`--provision`, il programma di installazione stampa `Successfully configured Nucleus with provisioned resource details` se ha configurato correttamente le risorse.
   + Se si specifica`--deploy-dev-tools`, il programma di installazione stampa `Configured Nucleus to deploy aws.greengrass.Cli component` se ha creato la distribuzione con successo.
   + 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 as a service.
   + Se non viene specificato`--setup-system-service true`, il programma di installazione stampa `Launched Nucleus successfully` se l'operazione è riuscita ed ha eseguito il software.

1. Salta questo passaggio se hai installato [Nucleo Greengrass](greengrass-nucleus-component.md) la versione 2.0.4 o successiva. Se hai scaricato la versione più recente del software, hai installato la versione 2.0.4 o successiva.

   Esegui il comando seguente per impostare le autorizzazioni di file richieste per la cartella AWS IoT Greengrass principale del software Core. Sostituitela `/greengrass/v2` con la cartella principale specificata nel comando di installazione e */greengrass* sostituitela con la cartella principale della cartella principale.

   ```
   sudo chmod 755 /greengrass/v2 && sudo chmod 755 /greengrass
   ```

<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 al posto vostro. In caso contrario, è necessario eseguire il software manualmente. Per ulteriori informazioni, consulta [Esegui il software AWS IoT Greengrass Core](run-greengrass-core-v2.md).

**Nota**  
Per impostazione predefinita, il ruolo IAM creato dal programma di installazione 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.

<a name="install-greengrass-core-next-steps-intro"></a>Per ulteriori informazioni su come configurare e utilizzare il software e, consulta quanto segue: AWS IoT Greengrass<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)

## Componenti di prima parte conformi alla normativa FIPS
<a name="FIPS-compliance"></a>


|  |  | 
| --- | --- | 
| aws.greengrass.Nucleus | data.iot-fips.us-east-1.amazonaws.com | 
|  | greengrass-fips.us-east-1.amazonaws.com | 
|  | data.credentials.iot-fips.us-east-1.amazonaws.com | 
| aws.greengrass.TokenExchangeService | data.credentials.iot-fips.us-east-1.amazonaws.com | 
| aws.greengrass.Cli |  | 
| aws.greengrass.StreamManager | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/greengrass/v2/developerguide/FIPS.html) Stream manager non supporta gli endpoint AWS IoT Analytics FIPS  | 
| aws.greengrass.LogManager | log-fips. us-east-1.amazonaws.com | 
| aws.greengrass.crypto.Pkcs11Provider |  | 
| aws.greengrass.ShadowManager |  | 
| aws.greengrass.DockerApplicationManager | pantofole in ecr. us-east-1.amazonaws.com | 
| aws.greengrass.SecretManager | secretmanager-fips. us-east-1.amazonaws.com | 
| aws.greengrass.telemetry.NucleusEmitter |  | 
| aws.greengrass.clientdevices.IPDetector |  | 
| aws.greengrass.DiskSpooler |  | 

# Resilienza in AWS IoT Greengrass
<a name="disaster-recovery-resiliency"></a>

L'infrastruttura AWS globale è costruita attorno alle regioni e alle zone di disponibilità di Amazon Web Services. Regione AWS Ciascuna fornisce più zone di disponibilità fisicamente separate e isolate, collegate con reti a bassa latenza, ad alto throughput e altamente ridondanti. Con le zone di disponibilità, puoi progettare e gestire applicazioni e database che eseguono automaticamente il failover tra zone di disponibilità senza interruzioni. Le zone di disponibilità sono più disponibili, tolleranti ai guasti e scalabili rispetto alle infrastrutture a data center singolo o multiplo tradizionali. 

Per ulteriori informazioni, consulta [Infrastruttura globale di AWS](https://aws.amazon.com/about-aws/global-infrastructure/).

Oltre all'infrastruttura AWS globale, AWS IoT Greengrass offre diverse funzionalità per supportare le esigenze di resilienza e backup dei dati.
+ È possibile configurare un dispositivo principale Greengrass per scrivere registri nel file system locale e nei registri. CloudWatch Se il dispositivo principale perde la connettività, può continuare a registrare i messaggi sul file system. Quando si riconnette, scrive i messaggi di registro in CloudWatch Logs. Per ulteriori informazioni, consulta [Monitora AWS IoT Greengrass i registri](monitor-logs.md).
+ Se un dispositivo principale perde alimentazione durante una distribuzione, riprende l'installazione dopo il riavvio del software AWS IoT Greengrass Core.
+ Se un dispositivo principale perde la connettività Internet, i dispositivi client Greengrass possono continuare a comunicare sulla rete locale.
+ È possibile creare componenti Greengrass che leggono i flussi dello [stream manager](manage-data-streams.md) e inviano i dati a destinazioni di archiviazione locali.

# Sicurezza dell'infrastruttura in AWS IoT Greengrass
<a name="infrastructure-security"></a>

In quanto servizio gestito, AWS IoT Greengrass è protetto dalle procedure di sicurezza della rete AWS globale descritte nel white paper [Amazon Web Services: Overview of Security Processes](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf).

Utilizzi chiamate API AWS pubblicate per accedere AWS IoT Greengrass attraverso la rete. I client devono supportare Transport Layer Security (TLS) 1.2 o versioni successive. È consigliabile TLS 1.3 o versioni successive. I client devono inoltre supportare le suite di cifratura con PFS (Perfect Forward Secrecy), ad esempio Ephemeral Diffie-Hellman (DHE) o Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La maggior parte dei sistemi moderni, come Java 7 e versioni successive, supporta tali modalità.

Le richieste devono essere firmate utilizzando un ID chiave di accesso e una chiave di accesso segreta che è associata a un'entità IAM. In alternativa è possibile utilizzare [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) per generare credenziali di sicurezza temporanee per sottoscrivere le richieste.

In un AWS IoT Greengrass ambiente, i dispositivi utilizzano certificati X.509 e chiavi crittografiche per connettersi e autenticarsi a. Cloud AWS Per ulteriori informazioni, consulta [Autenticazione e autorizzazione del dispositivo per AWS IoT Greengrass](device-auth.md).

# Analisi della configurazione e delle vulnerabilità in AWS IoT Greengrass
<a name="vulnerability-analysis-and-management"></a>

Gli ambienti IoT possono essere costituiti da un numero elevato di dispositivi con funzionalità diverse, usati per lunghi periodi di tempo e distribuiti in varie aree geografiche. Queste caratteristiche rendono la configurazione di un dispositivo complessa e soggetta a errori. E poiché i dispositivi presentano spesso vincoli di potenza di elaborazione, memoria e capacità di storage, ciò limita l'uso della crittografia e di altre forme di sicurezza nei dispositivi stessi. I dispositivi, inoltre, usano spesso software con vulnerabilità note. La combinazione di questi fattori rende i dispositivi IoT un facile bersaglio per gli hacker e ne rende difficile la protezione continuativa

AWS IoT Device Defender affronta queste sfide fornendo strumenti per identificare i problemi di sicurezza e le deviazioni dalle migliori pratiche. È possibile utilizzarli AWS IoT Device Defender per analizzare, controllare e monitorare i dispositivi collegati per rilevare comportamenti anomali e mitigare i rischi per la sicurezza. AWS IoT Device Defender può controllare i dispositivi per garantire che rispettino le migliori pratiche di sicurezza e rilevare comportamenti anomali sui dispositivi. In questo modo è possibile applicare politiche di sicurezza coerenti su tutti i dispositivi e rispondere rapidamente quando i dispositivi vengono compromessi. IForper ulteriori informazioni, consulta i seguenti argomenti:
+ Il componente [Device Defender](device-defender-component.md)
+ [AWS IoT Device Defender](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender.html) nella *Guida per gli sviluppatori di AWS IoT Core *.

Negli AWS IoT Greengrass ambienti, è necessario tenere presente le seguenti considerazioni:
+ È propria responsabilità proteggere i dispositivi fisici, il file system sui dispositivi e la rete locale.
+ AWS IoT Greengrass non impone l'isolamento di rete per i componenti Greengrass definiti dall'utente, indipendentemente dal fatto che vengano eseguiti o meno in un contenitore Greengrass. Pertanto, è possibile che i componenti Greengrass comunichino con qualsiasi altro processo in esecuzione nel sistema o all'esterno tramite la rete.

# Integrità del codice in AWS IoT Greengrass V2
<a name="code-integrity"></a>

AWS IoT Greengrass distribuisce componenti software dai dispositivi su cui è Cloud AWS in esecuzione il AWS IoT Greengrass software Core. Questi componenti software includono [componenti AWS forniti](public-components.md) e [componenti personalizzati](create-components.md) caricati su. Account AWS Ogni componente è composto da una ricetta. La ricetta definisce i metadati del componente e un numero qualsiasi di artefatti, che sono file binari dei componenti, come codice compilato e risorse statiche. Gli artefatti dei componenti sono archiviati in Amazon S3.

Durante lo sviluppo e l'implementazione dei componenti Greengrass, segui questi passaggi di base che funzionano con gli artefatti dei componenti nei Account AWS tuoi e sui tuoi dispositivi:

1. Crea e carica artefatti nei bucket S3.

1. [Crea un componente da una ricetta e dagli artefatti del AWS IoT Greengrass servizio, che calcola un hash crittografico di ogni artefatto.](https://en.wikipedia.org/wiki/Cryptographic_hash_function)

1. Implementa un componente sui dispositivi principali di Greengrass, che scaricano e verificano l'integrità di ogni artefatto.

AWS è responsabile del mantenimento dell'integrità degli artefatti dopo il caricamento degli artefatti nei bucket S3, anche quando distribuisci componenti sui dispositivi principali Greengrass. L'utente è responsabile della protezione degli artefatti software prima di caricarli nei bucket S3. Sei inoltre responsabile della sicurezza dell'accesso alle risorse presenti nel tuo sistema Account AWS, inclusi i bucket S3 in cui carichi gli artefatti dei componenti.

**Nota**  
Amazon S3 offre una funzionalità chiamata S3 Object Lock che puoi usare per proteggerti dalle modifiche agli artefatti dei componenti nei bucket S3 del tuo. Account AWS Puoi usare S3 Object Lock per impedire che gli artefatti dei componenti vengano eliminati o sovrascritti. Per ulteriori informazioni, consulta [Using S3 Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) nella *Guida per l'utente di Amazon Simple Storage Service*.

Quando AWS pubblica un componente pubblico e quando carichi un componente personalizzato, AWS IoT Greengrass calcola un digest crittografico per ogni elemento del componente. AWS IoT Greengrass aggiorna la ricetta del componente per includere il digest di ogni artefatto e l'algoritmo hash utilizzato per calcolare quel digest. Questo digest garantisce l'integrità dell'artefatto, perché se l'artefatto cambia durante Cloud AWS o durante il download, il relativo digest di file non corrisponderà al digest memorizzato nella ricetta del componente. AWS IoT Greengrass [Per ulteriori informazioni, vedete Artifacts nel riferimento alla ricetta del componente.](component-recipe-reference.md#manifest-artifacts-definition)

Quando distribuite un componente su un dispositivo principale, il software AWS IoT Greengrass Core scarica la ricetta del componente e ogni elemento del componente definito dalla ricetta. Il software AWS IoT Greengrass Core calcola il digest di ogni file di artefatto scaricato e lo confronta con il digest di quell'artefatto contenuto nella ricetta. Se i digest non corrispondono, l'implementazione fallisce e il software AWS IoT Greengrass Core elimina gli artefatti scaricati dal file system del dispositivo. Per ulteriori informazioni su come vengono protette le connessioni tra i dispositivi principali e AWS IoT Greengrass 2, consulta. [Crittografia in transito](encryption-in-transit.md)

L'utente è responsabile della protezione dei file degli artefatti dei componenti sui file system dei dispositivi principali. Il software AWS IoT Greengrass Core salva gli artefatti nella `packages` cartella principale di Greengrass. È possibile utilizzarlo AWS IoT Device Defender per analizzare, controllare e monitorare i dispositivi principali. Per ulteriori informazioni, consulta [Analisi della configurazione e delle vulnerabilità in AWS IoT Greengrass](vulnerability-analysis-and-management.md).

# AWS IoT Greengrass e endpoint VPC di interfaccia ()AWS PrivateLink
<a name="vpc-interface-endpoints"></a>

Puoi stabilire una connessione privata tra il tuo VPC e il piano di AWS IoT Greengrass controllo creando un endpoint *VPC* di interfaccia. È possibile utilizzare questo endpoint per gestire componenti, implementazioni e dispositivi principali del servizio. AWS IoT Greengrass Gli endpoint di interfaccia sono alimentati da [AWS PrivateLink](https://aws.amazon.com/privatelink), una tecnologia che consente di accedere AWS IoT Greengrass APIs in modo privato senza un gateway Internet, un dispositivo NAT, una connessione VPN o una connessione AWS Direct Connect. Le istanze del tuo VPC non necessitano di indirizzi IP pubblici con cui comunicare. AWS IoT Greengrass APIs Il traffico tra il tuo VPC e AWS IoT Greengrass non esce dalla rete Amazon.

Ogni endpoint dell'interfaccia è rappresentato da una o più [interfacce di rete elastiche](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) nelle sottoreti. 

Per ulteriori informazioni, consultare [Endpoint VPC di interfaccia (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) nella *Guida per l'utente di Amazon VPC*.

**Topics**
+ [Considerazioni sugli endpoint AWS IoT Greengrass VPC](#vpc-endpoint-considerations)
+ [Crea un endpoint VPC di interfaccia per AWS IoT Greengrass le operazioni del piano di controllo](#create-vpc-endpoint-control-plane)
+ [Creazione di una policy per gli endpoint VPC per AWS IoT Greengrass](#vpc-endpoint-policy)
+ [Gestisci un dispositivo AWS IoT Greengrass principale in VPC](#vpc-operate-device-vpce)

## Considerazioni sugli endpoint AWS IoT Greengrass VPC
<a name="vpc-endpoint-considerations"></a>

Prima di configurare un endpoint VPC di interfaccia per AWS IoT Greengrass, consulta le [proprietà e le limitazioni dell'endpoint dell'interfaccia nella](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-interface-limitations) Amazon *VPC* User Guide. Inoltre, tieni presente le seguenti considerazioni:
+ AWS IoT Greengrass supporta l'esecuzione di chiamate a tutte le azioni dell'API del piano di controllo dal tuo VPC. Il piano di controllo include operazioni come [CreateDeployment](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateDeployment.html)e [ListEffectiveDeployments](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_ListEffectiveDeployments.html). Il piano di controllo *non* include operazioni come [ResolveComponentCandidates](device-auth.md#iot-policies)e [Discover](greengrass-discover-api.md), che sono operazioni sul piano dati.
+ Gli endpoint VPC per non AWS IoT Greengrass sono attualmente supportati nelle regioni della Cina AWS .

## Crea un endpoint VPC di interfaccia per AWS IoT Greengrass le operazioni del piano di controllo
<a name="create-vpc-endpoint-control-plane"></a>

Puoi creare un endpoint VPC per il piano di AWS IoT Greengrass controllo utilizzando la console Amazon VPC o (). AWS Command Line Interface AWS CLI Per ulteriori informazioni, consultare [Creazione di un endpoint di interfaccia](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint) nella *Guida per l’utente di Amazon VPC*.

Crea un endpoint VPC per AWS IoT Greengrass utilizzare il seguente nome di servizio: 
+ com.amazonaws. *region*. erba verde

Se abiliti il DNS privato per l'endpoint, puoi effettuare richieste API AWS IoT Greengrass utilizzando il nome DNS predefinito per la regione, ad esempio. `greengrass.us-east-1.amazonaws.com` DNS privato è abilitato per impostazione predefinita.

Per ulteriori informazioni, consultare [Accesso a un servizio tramite un endpoint di interfaccia](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#access-service-though-endpoint) in *Guida per l'utente di Amazon VPC*.

## Creazione di una policy per gli endpoint VPC per AWS IoT Greengrass
<a name="vpc-endpoint-policy"></a>

Puoi allegare una policy per gli endpoint all'endpoint VPC che controlla l'accesso AWS IoT Greengrass alle operazioni del piano di controllo. La policy specifica le informazioni riportate di seguito:
+ Il principale che può eseguire operazioni.
+ Le azioni che l'entità può eseguire.
+ Le risorse su cui il preside può eseguire azioni.

Per ulteriori informazioni, consulta [Controllo degli accessi ai servizi con endpoint VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) nella *Guida per l’utente di Amazon VPC.*

**Example Esempio: policy degli endpoint VPC per le azioni AWS IoT Greengrass**  
Di seguito è riportato un esempio di policy sugli endpoint per. AWS IoT Greengrass Se associata a un endpoint, questa politica consente l'accesso alle AWS IoT Greengrass azioni elencate per tutti i principali su tutte le risorse.  

```
{
    "Statement": [
        {
            "Principal": "*",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "greengrass:ListEffectiveDeployments"
            ],
            "Resource": "*"
        }
    ]
}
```

## Gestisci un dispositivo AWS IoT Greengrass principale in VPC
<a name="vpc-operate-device-vpce"></a>

Puoi utilizzare un dispositivo core Greengrass ed eseguire implementazioni in VPC senza accesso pubblico a Internet. Come minimo, è necessario configurare i seguenti endpoint VPC con gli alias DNS corrispondenti. *Per ulteriori informazioni su come creare e utilizzare endpoint VPC, consulta Create [a VPC endpoint nella Amazon VPC User Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).*

**Nota**  
La funzionalità VPC per la creazione automatica di un record DNS è disattivata per AWS IoT data le credenziali e. AWS IoT Per connettere questi endpoint, è necessario creare manualmente un record DNS privato. Per ulteriori informazioni, consulta [DNS privato per](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#vpce-private-dns) endpoint di interfaccia. Per ulteriori informazioni sulle limitazioni del AWS IoT Core VPC, consulta Limitazioni degli [endpoint VPC.](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#VPC-limitations) 

### Prerequisiti
<a name="vpc-endpoint-prerequisites"></a>
+ È necessario installare il software AWS IoT Greengrass Core utilizzando le fasi di provisioning manuale. Per ulteriori informazioni, consulta [Installa il software AWS IoT Greengrass Core con provisioning manuale delle risorse](manual-installation.md).

### Limitazioni
<a name="vpc-endpoint-limitaions"></a>
+ L'utilizzo di un dispositivo core Greengrass in VPC non è supportato nelle regioni della Cina e. AWS GovCloud (US) Regions
+ [Per ulteriori informazioni sulle limitazioni AWS IoT data e sugli endpoint VPC del provider di AWS IoT credenziali, consulta Limitazioni.](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#VPC-limitations)

### Configura il tuo dispositivo principale Greengrass per funzionare in VPC
<a name="vpc-endpoint-operate-gg-core"></a>

****

1. 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"
      }
      ```

1. Crea un'interfaccia Amazon VPC per gli endpoint AWS IoT data e AWS IoT le credenziali:

   1. **Vai alla console [VPC](https://console.aws.amazon.com/vpc/home#/endpoints) **Endpoints**, sotto **Virtual private cloud nel** menu a sinistra, scegli **Endpoints quindi Crea endpoint**.**

   1. Nella pagina **Crea endpoint**, specifica le seguenti informazioni.
      + Scegli **Servizio AWS s** per **Categoria di servizio**.
      + Per **Service Name (Nome servizio)**, esegui la ricerca inserendo la parola chiave `iot`. Nell'elenco dei `iot` servizi visualizzati, scegli l'endpoint. 

        Se crei un endpoint VPC per il piano AWS IoT Core dati, scegli l'endpoint API del piano AWS IoT Core dati per la tua regione. L'endpoint sarà del formato `com.amazonaws.region.iot.data`. 

        Se crei un endpoint VPC per un provider di AWS IoT Core credenziali, scegli l'endpoint del provider di AWS IoT Core credenziali per la tua regione. L'endpoint sarà del formato `com.amazonaws.region.iot.credentials`.
**Nota**  
Il nome del servizio per il piano AWS IoT Core dati nella regione della Cina sarà nel formato`cn.com.amazonaws.region.iot.data`. La creazione di endpoint VPC per il fornitore di AWS IoT Core credenziali non è supportata nella regione Cina.
      + Per **VPC** e **sottoreti**, scegli il VPC in cui desideri creare l'endpoint e le zone di disponibilità (AZs) in cui desideri creare la rete di endpoint.
      + Per **Enable DNS name (Abilitare nome DNS)**, assicurati che **Enable for this endpoint (Abilita per questo endpoint)** non sia selezionata. Né il piano AWS IoT Core dati né il provider di AWS IoT Core credenziali supportano ancora i nomi DNS privati.
      + In **Security group (Gruppo di sicurezza)**, scegli i gruppi di sicurezza da associare alle interfacce di rete dell'endpoint.
      + Facoltativamente, puoi aggiungere o rimuovere i tag. I tag sono coppie nome-valore utilizzate per l'associazione al tuo endpoint. 

   1. Per creare l'endpoint VPC, scegli **Create endpoint (Crea endpoint)**.

1. Dopo aver creato l' AWS PrivateLink endpoint, nella scheda **Dettagli** dell'endpoint vedrai un elenco di nomi DNS. Puoi utilizzare uno di questi nomi DNS creati in questa sezione per [configurare la tua](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#connect-iot-core-create-phz-lns) zona ospitata privata.

1. Crea un endpoint Amazon S3. Per ulteriori informazioni, consulta [Creare un endpoint VPC per Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#s3-creating-vpc).

1. Se si utilizzano componenti [Greengrass AWS forniti](https://docs.aws.amazon.com/greengrass/v2/developerguide/public-components.html), potrebbero essere necessari endpoint e configurazioni aggiuntivi. Per visualizzare i requisiti degli endpoint, seleziona il componente dall'elenco dei componenti AWS forniti e consulta la sezione Requisiti. Ad esempio, i [requisiti del componente log manager](log-manager-component.md#log-manager-component-requirements) suggeriscono che questo componente deve essere in grado di eseguire richieste in uscita verso l'endpoint. `logs.region.amazonaws.com`

   Se si utilizza un componente personalizzato, potrebbe essere necessario esaminare le dipendenze ed eseguire ulteriori test per determinare se sono necessari endpoint aggiuntivi.

1. Nella configurazione Greengrass nucleus, `greengrassDataPlaneEndpoint` deve essere impostato su. **iotdata** Per ulteriori informazioni, vedere [Greengrass nucleus](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration) configuration.

1. Se ti trovi nella `us-east-1` regione, imposta il parametro di configurazione `s3EndpointType` su **REGIONAL** nella configurazione Greengrass nucleus. Questa funzionalità è disponibile per le versioni 2.11.3 o successive di Greengrass nucleus.

**Example Esempio: configurazione dei componenti**  

```
{
"aws.greengrass.Nucleus": {
   "configuration": {
      "awsRegion": "us-east-1",
      "iotCredEndpoint": "xxxxxx.credentials.iot.region.amazonaws.com",
      "iotDataEndpoint": "xxxxxx-ats.iot.region.amazonaws.com",
      "greengrassDataPlaneEndpoint": "iotdata",
      "s3EndpointType": "REGIONAL"
      ...
     }
   }
}
```

La tabella seguente fornisce informazioni sugli alias DNS privati personalizzati corrispondenti.


| Servizio | Nome del servizio endpoint VPC | Tipo di endpoint VPC | Alias DNS privato personalizzato | Note | 
| --- | --- | --- | --- | --- | 
|  AWS IoT data  | `com.amazonaws.region.iot.data` | Interfaccia |  `prefix-ats.iot.region.amazonaws.com`  |  Il record DNS privato deve corrispondere all'endpoint del AWS IoT data tuo account:. `aws iot describe–endpoint ––endpoint–type iot:Data-ATS`  | 
| AWS IoT Credenziali | `com.amazonaws.region.iot.credentials` | Interfaccia | `prefix.credentials.iot.region.amazonaws.com` | Il record DNS privato deve corrispondere all'endpoint delle AWS IoT credenziali del tuo account:. `aws iot describe–endpoint ––endpoint–type iot:CredentialProvider` | 
| Simple Storage Service (Amazon S3) | `com.amazonaws.region.s3` | Interfaccia |  | Il record DNS viene creato automaticamente. | 

# Best practice di sicurezza per AWS IoT Greengrass
<a name="security-best-practices"></a>

Questo argomento contiene le migliori pratiche di sicurezza per AWS IoT Greengrass.

## Concedere autorizzazioni minime possibili
<a name="least-privilege"></a>

Segui il principio del privilegio minimo per i tuoi componenti eseguendoli come utenti senza privilegi. I componenti non devono essere eseguiti come root a meno che non sia assolutamente necessario.

Utilizza il set minimo di autorizzazioni nei ruoli IAM. Limita l'uso del carattere `*` jolly per le `Resource` proprietà `Action` and nelle tue policy IAM. Invece, dichiarare un insieme finito di operazioni e risorse quando possibile. Per ulteriori informazioni su privilegi minimi e altre best practice sulle policy, consulta [Best practice per le policy](security_iam_id-based-policy-examples.md#security_iam_service-with-iam-policy-best-practices).

La best practice con privilegi minimi si applica anche alle AWS IoT politiche allegate al core Greengrass.

## Non codificare le credenziali nei componenti Greengrass
<a name="no-hardcoded-credentials"></a>

Non codificate le credenziali nei componenti Greengrass definiti dall'utente. Per proteggere meglio le credenziali:
+ Per interagire con AWS i servizi, definisci le autorizzazioni per azioni e risorse specifiche nel ruolo di servizio [principale del dispositivo Greengrass](device-service-role.md).
+ Usa il [componente secret manager](secret-manager-component.md) per memorizzare le tue credenziali. Oppure, se la funzione utilizza l' AWS SDK, utilizza le credenziali della catena di provider di credenziali predefinita.

## Non registrare informazioni riservate
<a name="protect-pii"></a>

È necessario impedire la registrazione delle credenziali e di altre informazioni di identificazione personale (PII). Ti consigliamo di implementare le seguenti misure di protezione anche se l'accesso ai log locali su un dispositivo principale richiede i privilegi di root e l'accesso ai log richiede le autorizzazioni IAM. CloudWatch 
+ Non utilizzare informazioni riservate nei percorsi argomento MQTT.
+ Non utilizzare informazioni riservate nei nomi, nei tipi e negli attributi dei dispositivi nel Registro di sistema AWS IoT Core .
+ Non registrate informazioni sensibili nei componenti Greengrass definiti dall'utente o nelle funzioni Lambda.
+ Non utilizzare informazioni sensibili nei nomi e nelle risorse IDs di Greengrass:
  + Dispositivi principali
  + Componenti
  + Distribuzioni
  + Loggers

## Tenere sincronizzato l'orologio del dispositivo
<a name="device-clock"></a>

È importante avere un orario preciso sul dispositivo. I certificati X.509 hanno data e ora di scadenza. L'orologio sul dispositivo viene utilizzato per verificare che un certificato server sia ancora valido. Gli orologi dei dispositivi possono andare alla deriva nel tempo o le batterie possono scaricarsi.

Per ulteriori informazioni, consulta la best practice [ Tenere sincronizzato l'orologio del dispositivo](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html#device-clock) nella *Guida per sviluppatori AWS IoT Core *.

## Raccomandazioni di Cipher Suite
<a name="cipher-suites"></a>

L'impostazione predefinita di Greengrass seleziona le ultime suite di crittografia TLS disponibili sul dispositivo. Prendi in considerazione la possibilità di disabilitare l'uso delle suite di crittografia precedenti sul dispositivo. Ad esempio, le suite di crittografia CBC. 

Per ulteriori informazioni, vedere [Java](https://www.java.com/configure_crypto.html) Cryptography Configuration.

## Consulta anche
<a name="security-best-practices-see-also"></a>
+ [Le migliori pratiche di sicurezza sono riportate AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html) nella Guida per gli *AWS IoT sviluppatori*
+ [Dieci regole d'oro di sicurezza per le soluzioni Industrial IoT](https://aws.amazon.com/blogs/iot/ten-security-golden-rules-for-industrial-iot-solutions/) sull'*Internet of Things sul blog AWS ufficiale*