

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

# Configurare le impostazioni IDT per eseguire la suite di AWS IoT Greengrass qualifiche
<a name="set-config"></a>

Prima di eseguire i test, è necessario configurare le impostazioni per le AWS credenziali e i dispositivi sul computer host.

## Configura le AWS credenziali in config.json
<a name="cfg-aws-gg"></a>

È necessario configurare le credenziali utente IAM nel `<device_tester_extract_location>/configs/config.json` file. Utilizza le credenziali per l'utente IDT for AWS IoT Greengrass V2 creato in. [Crea e configura un Account AWS](dev-tst-prereqs.md#config-aws-account-for-idt) Puoi specificare le credenziali in uno dei due modi seguenti:
+ In un file di credenziali
+ Come variabili di ambiente

### Configura AWS le credenziali con un file di credenziali
<a name="config-cred-file"></a>

IDT usa lo stesso file delle credenziali di AWS CLI. Per ulteriori informazioni, consulta l'argomento relativo ai [file di configurazione e delle credenziali](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

La posizione del file delle credenziali varia in base al sistema operativo in uso:
+ macOS, Linux: `~/.aws/credentials`
+ Windows: `C:\Users\UserName\.aws\credentials`

Aggiungi AWS le tue credenziali al `credentials` file nel seguente formato:

```
[default]
aws_access_key_id = <your_access_key_id>
aws_secret_access_key = <your_secret_access_key>
```

Per configurare IDT per AWS IoT Greengrass V2 in modo che utilizzi le AWS credenziali `credentials` del tuo file, modifica il file come segue: `config.json`

```
{
  "awsRegion": "region",
  "auth": {
    "method": "file",
    "credentials": {
      "profile": "default"
    }
  }
}
```

**Nota**  
Se non utilizzate il `default` AWS profilo, assicuratevi di cambiarne il nome nel file. `config.json` Per ulteriori informazioni, consulta l'articolo relativo ai [profili denominati](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).

### Configura AWS le credenziali con variabili di ambiente
<a name="config-env-vars"></a>

Le variabili di ambiente sono variabili gestite dal sistema operativo e utilizzate dai comandi di sistema. Non vengono salvate se chiudi la sessione SSH. IDT per AWS IoT Greengrass V2 può utilizzare le variabili di `AWS_SECRET_ACCESS_KEY` ambiente `AWS_ACCESS_KEY_ID` e per memorizzare le credenziali. AWS 

Per impostare queste variabili su Linux, macOS o Unix, utilizza **export**:

```
export AWS_ACCESS_KEY_ID=<your_access_key_id>
export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
```

Per impostare queste variabili su Windows, utilizza **set**:

```
set AWS_ACCESS_KEY_ID=<your_access_key_id>
set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
```

Per configurare IDT per utilizzare le variabili di ambiente, modifica la sezione `auth` nel file `config.json`. Ecco un esempio:

```
{
  "awsRegion": "region",
  "auth": {
    "method": "environment"
  }
}
```

## Configura dispositivo.json
<a name="device-config"></a>

**Nota**  
IDT v4.9.3 supporta il test delle funzionalità e. `ml` `docker` `streamManagement` IDT v4.9.4 e versioni successive supportano i test. `docker` Se non vuoi testare queste funzionalità, imposta il valore corrispondente su. `no`

Oltre alle AWS credenziali, IDT for AWS IoT Greengrass V2 necessita di informazioni sui dispositivi su cui vengono eseguiti i test. Le informazioni di esempio potrebbero essere l'indirizzo IP, le informazioni di accesso, il sistema operativo e l'architettura della CPU.

Devi fornire queste informazioni utilizzando il modello `device.json` situato in ` <device_tester_extract_location>/configs/device.json`:

------
#### [ IDT v4.9.3 ]

```
[
  {
    "id": "<pool-id>",
    "sku": "<sku>",
    "features": [
      {
        "name": "arch",
        "value": "x86_64 | armv6l | armv7l | aarch64"
      },
      {
        "name": "ml",
        "value": "dlr | tensorflowlite | dlr,tensorflowlite | no"
      },
      {
        "name": "docker",
        "value": "yes | no"
      },
      {
        "name": "streamManagement",
        "value": "yes | no"
      }, 
      {
        "name": "hsi", 
        "value": "hsm | no" 
      }
    ],
    "devices": [
      {
        "id": "<device-id>",
        "operatingSystem": "Linux | Windows",
        "connectivity": {
          "protocol": "ssh",
          "ip": "<ip-address>",
          "port": 22,
          "publicKeyPath": "<public-key-path>",
          "auth": {
            "method": "pki | password",
            "credentials": {
              "user": "<user-name>",
              "privKeyPath": "/path/to/private/key",
              "password": "<password>"
            }
          }
        }
      }
    ]
  }
]
```

**Nota**  
Specificare `privKeyPath` solo se `method` è impostato su `pki`.  
Specificare `password` solo se `method` è impostato su `password`.

Tutte le proprietà che contengono valori sono obbligatorie, come descritto di seguito:

`id`  
Un ID alfanumerico definito dall'utente che identifica in modo univoco una raccolta di dispositivi denominata un *pool di dispositivi*. I dispositivi che appartengono a un pool devono avere lo stesso hardware. Durante l'esecuzione di una suite di test, i dispositivi del pool vengono utilizzati per parallelizzare il carico di lavoro. Più dispositivi vengono utilizzati per eseguire diversi test.

`sku`  
Un valore alfanumerico che identifica in modo univoco il dispositivo sottoposto a test. Il codice SKU viene utilizzato per tenere traccia delle schede qualificate.  
Se desideri inserire il tuo dispositivo nel Catalogo dispositivi, lo AWS Partner SKU che specifichi qui deve corrispondere allo SKU che utilizzi nel processo di pubblicazione delle offerte.

`features`  
Un array contenente le caratteristiche supportate del dispositivo. Tutte le funzionalità sono obbligatorie.    
`arch`  
Le architetture del sistema operativo supportate convalidate dall'esecuzione del test. I valori validi sono:  
+ `x86_64`
+ `armv6l`
+ `armv7l`
+ `aarch64`  
`ml`  
<a name="description-ml"></a>Verifica che il dispositivo soddisfi tutte le dipendenze tecniche richieste per utilizzare i componenti di machine learning ( AWS ML) forniti.  
[L'attivazione di questa funzionalità consente inoltre di verificare <a name="description-ml-inference-phrase"></a>che il dispositivo sia in grado di eseguire inferenze ML utilizzando i framework [Deep Learning Runtime](https://github.com/neo-ai/neo-ai-dlr) e TensorFlow  Lite ML.](https://www.tensorflow.org/lite/guide/python)  
I valori validi sono qualsiasi combinazione di `dlr` and, o. `tensorflowlite` `no`  
`docker`  
<a name="description-docker"></a>Verifica che il dispositivo soddisfi tutte le dipendenze tecniche richieste per utilizzare il componente Docker application manager () AWS fornito. `aws.greengrass.DockerApplicationManager`  
L'attivazione di questa funzionalità consente inoltre di verificare <a name="description-docker-app-manager-qual-phrase"></a>che il dispositivo possa scaricare un'immagine del contenitore Docker da Amazon ECR.  
I valori validi sono qualsiasi combinazione di o. `yes` `no`  
`streamManagement`  
<a name="description-sm"></a>Verifica che il dispositivo possa scaricare, installare ed eseguire lo [AWS IoT Greengrass stream manager](manage-data-streams.md).  
I valori validi sono qualsiasi combinazione di `yes` o`no`.  
`hsi`  
<a name="description-hsi"></a>Verifica che il dispositivo sia in grado di autenticare le connessioni ai AWS IoT Greengrass servizi AWS IoT e utilizzando una chiave privata e un certificato archiviati in un modulo di sicurezza hardware (HSM). Questo test verifica inoltre che il [componente del provider PKCS \$111 AWS fornito possa interfacciarsi con l'HSM utilizzando una libreria PKCS \$111 fornita dal fornitore](pkcs11-provider-component.md). Per ulteriori informazioni, consulta [Integrazione della sicurezza hardware](hardware-security.md).  
I valori validi sono `hsm` e `no`.
Il test di `hsi` è disponibile solo con IDT v4.9.3 e versioni successive.

`devices.id`  
Un identificativo univoco definito dall'utente del dispositivo sottoposto a test.

`devices.operatingSystem`  
Il sistema operativo del dispositivo. I valori supportati sono `Linux` e `Windows`.

`connectivity.protocol`  
Il protocollo di comunicazione utilizzato per comunicare con questo dispositivo. Attualmente, l'unico valore supportato è `ssh` per i dispositivi fisici.

`connectivity.ip`  
L'indirizzo IP del dispositivo sottoposto a test.  
<a name="connectivity-protocol-ssh-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.

`connectivity.port`  
Opzionale. Il numero di porta da utilizzare per le connessioni SSH.  
Il valore predefinito è 22.  
Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.

`connectivity.publicKeyPath`  
Opzionale. Il percorso completo della chiave pubblica utilizzata per autenticare le connessioni al dispositivo in esame.   
Quando si specifica il`publicKeyPath`, IDT convalida la chiave pubblica del dispositivo quando stabilisce una connessione SSH al dispositivo in prova. Se questo valore non è specificato, IDT crea una connessione SSH, ma non convalida la chiave pubblica del dispositivo.   
Ti consigliamo vivamente di specificare il percorso della chiave pubblica e di utilizzare un metodo sicuro per recuperare questa chiave pubblica. Per i client SSH standard basati sulla riga di comando, la chiave pubblica viene fornita nel file. `known_hosts` Se si specifica un file con chiave pubblica separato, questo file deve utilizzare lo stesso formato del `known_hosts` file, ovvero. ` ip-address key-type public-key` Se sono presenti più voci con lo stesso indirizzo IP, la voce relativa al tipo di chiave utilizzato da IDT deve precedere le altre voci del file.

`connectivity.auth`  
Informazioni di autenticazione per la connessione.  
<a name="connectivity-protocol-ssh-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.    
`connectivity.auth.method`  
Il metodo di autorizzazione utilizzato per accedere a un dispositivo con un determinato protocollo di connettività.  
I valori supportati sono:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Le credenziali utilizzate per l'autenticazione.    
`connectivity.auth.credentials.password`  
La password utilizzata per l'accesso al dispositivo da testare.  
Questo valore si applica solo se `connectivity.auth.method` è impostato su `password`.  
`connectivity.auth.credentials.privKeyPath`  
Il percorso completo alla chiave privata utilizzata per accedere al dispositivo sottoposto a test.  
Questo valore si applica solo se `connectivity.auth.method` è impostato su `pki`.  
`connectivity.auth.credentials.user`  
Il nome utente per l'accesso al dispositivo sottoposto a test.

------
#### [ IDT v4.9.4 ]

```
[
  {
    "id": "<pool-id>",
    "sku": "<sku>",
    "features": [
      {
        "name": "arch",
        "value": "x86_64 | armv6l | armv7l | aarch64"
      },
      {
        "name": "docker",
        "value": "yes | no"
      }, 
      {
        "name": "hsi", 
        "value": "hsm | no" 
      }
    ],
    "devices": [
      {
        "id": "<device-id>",
        "operatingSystem": "Linux | Windows",
        "connectivity": {
          "protocol": "ssh",
          "ip": "<ip-address>",
          "port": 22,
          "publicKeyPath": "<public-key-path>",
          "auth": {
            "method": "pki | password",
            "credentials": {
              "user": "<user-name>",
              "privKeyPath": "/path/to/private/key",
              "password": "<password>"
            }
          }
        }
      }
    ]
  }
]
```

**Nota**  
Specificare `privKeyPath` solo se `method` è impostato su `pki`.  
Specificare `password` solo se `method` è impostato su `password`.

Tutte le proprietà che contengono valori sono obbligatorie, come descritto di seguito:

`id`  
Un ID alfanumerico definito dall'utente che identifica in modo univoco una raccolta di dispositivi denominata un *pool di dispositivi*. I dispositivi che appartengono a un pool devono avere lo stesso hardware. Durante l'esecuzione di una suite di test, i dispositivi del pool vengono utilizzati per parallelizzare il carico di lavoro. Più dispositivi vengono utilizzati per eseguire diversi test.

`sku`  
Un valore alfanumerico che identifica in modo univoco il dispositivo sottoposto a test. Il codice SKU viene utilizzato per tenere traccia delle schede qualificate.  
Se desideri inserire il tuo dispositivo nel Catalogo dispositivi, lo AWS Partner SKU che specifichi qui deve corrispondere allo SKU che utilizzi nel processo di pubblicazione delle offerte.

`features`  
Un array contenente le caratteristiche supportate del dispositivo. Tutte le funzionalità sono obbligatorie.    
`arch`  
Le architetture del sistema operativo supportate convalidate dall'esecuzione del test. I valori validi sono:  
+ `x86_64`
+ `armv6l`
+ `armv7l`
+ `aarch64`  
`docker`  
<a name="description-docker"></a>Verifica che il dispositivo soddisfi tutte le dipendenze tecniche richieste per utilizzare il componente Docker application manager AWS() fornito. `aws.greengrass.DockerApplicationManager`  
L'attivazione di questa funzionalità consente inoltre di verificare <a name="description-docker-app-manager-qual-phrase"></a>che il dispositivo possa scaricare un'immagine del contenitore Docker da Amazon ECR.  
I valori validi sono qualsiasi combinazione di o. `yes` `no`  
`hsi`  
<a name="description-hsi"></a>Verifica che il dispositivo sia in grado di autenticare le connessioni ai AWS IoT Greengrass servizi AWS IoT e utilizzando una chiave privata e un certificato archiviati in un modulo di sicurezza hardware (HSM). Questo test verifica inoltre che il [componente del provider PKCS \$111 AWS fornito possa interfacciarsi con l'HSM utilizzando una libreria PKCS \$111 fornita dal fornitore](pkcs11-provider-component.md). Per ulteriori informazioni, consulta [Integrazione della sicurezza hardware](hardware-security.md).  
I valori validi sono `hsm` e `no`.
Il test di `hsi` è disponibile solo con IDT v4.9.3 e versioni successive.

`devices.id`  
Un identificativo univoco definito dall'utente del dispositivo sottoposto a test.

`devices.operatingSystem`  
Il sistema operativo del dispositivo. I valori supportati sono `Linux` e `Windows`.

`connectivity.protocol`  
Il protocollo di comunicazione utilizzato per comunicare con questo dispositivo. Attualmente, l'unico valore supportato è `ssh` per i dispositivi fisici.

`connectivity.ip`  
L'indirizzo IP del dispositivo sottoposto a test.  
<a name="connectivity-protocol-ssh-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.

`connectivity.port`  
Opzionale. Il numero di porta da utilizzare per le connessioni SSH.  
Il valore predefinito è 22.  
Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.

`connectivity.publicKeyPath`  
Opzionale. Il percorso completo della chiave pubblica utilizzata per autenticare le connessioni al dispositivo in esame.   
Quando si specifica il`publicKeyPath`, IDT convalida la chiave pubblica del dispositivo quando stabilisce una connessione SSH al dispositivo in prova. Se questo valore non è specificato, IDT crea una connessione SSH, ma non convalida la chiave pubblica del dispositivo.   
Ti consigliamo vivamente di specificare il percorso della chiave pubblica e di utilizzare un metodo sicuro per recuperare questa chiave pubblica. Per i client SSH standard basati sulla riga di comando, la chiave pubblica viene fornita nel file. `known_hosts` Se si specifica un file con chiave pubblica separato, questo file deve utilizzare lo stesso formato del `known_hosts` file, ovvero. ` ip-address key-type public-key` Se sono presenti più voci con lo stesso indirizzo IP, la voce relativa al tipo di chiave utilizzato da IDT deve precedere le altre voci del file.

`connectivity.auth`  
Informazioni di autenticazione per la connessione.  
<a name="connectivity-protocol-ssh-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.    
`connectivity.auth.method`  
Il metodo di autorizzazione utilizzato per accedere a un dispositivo con un determinato protocollo di connettività.  
I valori supportati sono:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Le credenziali utilizzate per l'autenticazione.    
`connectivity.auth.credentials.password`  
La password utilizzata per l'accesso al dispositivo da testare.  
Questo valore si applica solo se `connectivity.auth.method` è impostato su `password`.  
`connectivity.auth.credentials.privKeyPath`  
Il percorso completo alla chiave privata utilizzata per accedere al dispositivo sottoposto a test.  
Questo valore si applica solo se `connectivity.auth.method` è impostato su `pki`.  
`connectivity.auth.credentials.user`  
Il nome utente per l'accesso al dispositivo sottoposto a test.

------

## Configura userdata.json
<a name="userdata-config"></a>

IDT per AWS IoT Greengrass V2 necessita inoltre di informazioni aggiuntive sulla posizione degli artefatti e del software di test. AWS IoT Greengrass 

Devi fornire queste informazioni utilizzando il modello `userdata.json` situato in ` <device_tester_extract_location>/configs/userdata.json`:

```
{
    "TempResourcesDirOnDevice": "/path/to/temp/folder",
    "InstallationDirRootOnDevice": "/path/to/installation/folder",
    "GreengrassNucleusZip": "/path/to/aws.greengrass.nucleus.zip",
    "PreInstalled": "yes/no",
    "GreengrassV2TokenExchangeRole": "custom-iam-role-name",
	"hsm": {
        "greengrassPkcsPluginJar": "/path/to/aws.greengrass.crypto.Pkcs11Provider-latest.jar",
        "pkcs11ProviderLibrary": "/path/to/pkcs11-vendor-library",
        "slotId": "slot-id",
        "slotLabel": "slot-label",
        "slotUserPin": "slot-pin",
        "keyLabel": "key-label",
        "preloadedCertificateArn": "certificate-arn"
        "rootCA": "path/to/root-ca"
    }
}
```

Tutte le proprietà che contengono valori sono obbligatorie come descritto di seguito:

`TempResourcesDirOnDevice`  
Il percorso completo di una cartella temporanea sul dispositivo in esame in cui archiviare gli artefatti del test. Assicurati che non siano necessarie le autorizzazioni sudo per scrivere in questa directory.   
IDT elimina il contenuto di questa cartella al termine dell'esecuzione di un test.

`InstallationDirRootOnDevice`  
Il percorso completo di una cartella sul dispositivo in cui eseguire l'installazione. AWS IoT Greengrass Per PreInstalled Greengrass, questo è il percorso della directory di installazione di Greengrass.  
È necessario impostare le autorizzazioni di file richieste per questa cartella. Esegui il comando seguente per ogni cartella nel percorso di installazione.  

```
sudo chmod 755 folder-name
```

`GreengrassNucleusZip`  
Il percorso completo del file Greengrass nucleus ZIP (`greengrass-nucleus-latest.zip`) sul computer host. Questo campo non è obbligatorio per i test con PreInstalled Greengrass.  
Per informazioni sulle versioni supportate di Greengrass nucleus for IDT, vedere. AWS IoT Greengrass[Ultima versione IDT per AWS IoT Greengrass V2](dev-test-versions.md#idt-latest-version) Per scaricare la versione più recente del software Greengrass, consulta [Scaricare il AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html#config-gg) software.

`PreInstalled`  
Questa funzionalità è disponibile per IDT v4.5.8 e versioni successive solo su dispositivi Linux.  
(Facoltativo) Se il valore è*yes*, IDT assumerà che il percorso indicato sia `InstallationDirRootOnDevice` la directory in cui è installato Greengrass.  
Per ulteriori informazioni su come installare Greengrass sul dispositivo, vedere. [Installa il software AWS IoT Greengrass Core con provisioning automatico delle risorse](quick-installation.md) Se l'[installazione avviene con il provisioning manuale](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html), includi il passaggio «Aggiungi l' AWS IoT oggetto a un gruppo di oggetti nuovo o esistente» quando crei un [AWS IoT oggetto](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html#create-iot-thing) manualmente. IDT presuppone che l'oggetto e il gruppo di oggetti vengano creati durante la configurazione dell'installazione. Assicuratevi che questi valori si riflettano nel `effectiveConfig.yaml` file. IDT verifica la presenza del file `effectiveConfig.yaml` sotto`<InstallationDirRootOnDevice>/config/effectiveConfig.yaml`.  
Per eseguire test con HSM, assicurati che il `aws.greengrass.crypto.Pkcs11Provider` campo sia aggiornato in. `effectiveConfig.yaml`

  `GreengrassV2TokenExchangeRole`  
(Facoltativo) Il ruolo IAM personalizzato che desideri utilizzare come ruolo di scambio di token che il dispositivo sottoposto a test assume per interagire con AWS le risorse.   
IDT utilizza questo ruolo IAM personalizzato invece di creare il ruolo di scambio di token predefinito durante l'esecuzione del test. Se utilizzi un ruolo personalizzato, puoi aggiornare [le autorizzazioni IAM per l'utente di test](dev-tst-prereqs.md#configure-idt-permissions) per escludere l'`iamResourcesUpdate`istruzione che consente all'utente di creare ed eliminare ruoli e politiche IAM. 
Per ulteriori informazioni sulla creazione di un ruolo IAM personalizzato come ruolo di scambio di token, consulta[Configura un ruolo di scambio di token personalizzato](device-config-setup.md#configure-custom-tes-role-for-idt).

`hsm`  
Questa funzionalità è disponibile per IDT v4.5.1 e versioni successive.  
(Facoltativo) Le informazioni di configurazione per il test con un AWS IoT Greengrass Hardware Security Module (HSM). Altrimenti, la proprietà `hsm` dovrebbe essere omessa. Per ulteriori informazioni, consulta [Integrazione della sicurezza hardware](hardware-security.md).  
<a name="connectivity-protocol-ssh-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.  
La configurazione HSM può essere considerata un dato sensibile se il modulo di sicurezza hardware è condiviso tra IDT e un altro sistema. In questa situazione, è possibile evitare di proteggere questi valori di configurazione in testo semplice memorizzandoli in un AWS parametro Parameter Store e configurando IDT per SecureString recuperarli durante l'esecuzione del test. Per ulteriori informazioni, consulta [Recupera la configurazione da Parameter Store AWS](#fetch-config)  
`hsm.greengrassPkcsPluginJar`  
Il percorso completo del [componente del provider PKCS \$111 scaricato sul computer host](pkcs11-provider-component.md) IDT. AWS IoT Greengrass fornisce questo componente come file JAR che è possibile scaricare per specificarlo come plug-in di provisioning durante l'installazione. È possibile scaricare la versione più recente del file JAR del componente al seguente URL: [https://d2s8p88vqu9w66.cloudfront. net/releases/Pkcs11Provider/aws.greengrass.crypto.pkcs11Provider-latest.jar](https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar).  
`hsm.pkcs11ProviderLibrary`  
Il percorso completo della libreria PKCS \$111 fornita dal fornitore del modulo di sicurezza hardware (HSM) per interagire con l'HSM.  
`hsm.slotId`  
L'ID dello slot utilizzato per identificare lo slot HSM in cui caricare la chiave e il certificato.  
`hsm.slotLabel`  
L'etichetta dello slot utilizzata per identificare lo slot HSM in cui caricare la chiave e il certificato.  
`hsm.slotUserPin`  
Il PIN utente utilizzato da IDT per autenticare il software AWS IoT Greengrass Core nell'HSM.  
Come procedura consigliata in materia di sicurezza, non utilizzate lo stesso PIN utente sui dispositivi di produzione.  
`hsm.keyLabel`  
L'etichetta utilizzata per identificare la chiave nel modulo hardware. Sia la chiave che il certificato devono utilizzare la stessa etichetta chiave.  
`hsm.preloadedCertificateArn`  
L'Amazon Resource Name (ARN) del certificato del dispositivo caricato nel AWS IoT cloud.  
Devi aver precedentemente generato questo certificato utilizzando la chiave nell'HSM, averlo importato nel tuo HSM e averlo caricato sul cloud. AWS IoT Per informazioni sulla generazione e l'importazione del certificato, consulta la documentazione del tuo HSM.  
[È necessario caricare il certificato sullo stesso account e sulla stessa regione forniti in config.json.](#cfg-aws-gg) . Per ulteriori informazioni sul caricamento del certificato su AWS IoT, consulta [Registrare manualmente un certificato client](https://docs.aws.amazon.com/iot/latest/developerguide/manual-cert-registration.html) nella *Guida per gli AWS IoT sviluppatori*.  
`hsm.rootCAPath`  
(Facoltativo) Il percorso completo sulla macchina host IDT dell'autorità di certificazione (CA) principale che ha firmato il certificato. Questo è necessario se il certificato nell'HSM creato non è firmato dalla CA root di Amazon.

## Recupera la configurazione da Parameter Store AWS
<a name="fetch-config"></a>

AWS IoT Device Tester (IDT) include una funzionalità opzionale per recuperare i valori di configurazione dal [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) Parameter Store. AWS Parameter Store consente l'archiviazione sicura e crittografata delle configurazioni. Una volta configurato, IDT può recuperare i parametri da AWS Parameter Store anziché archiviarli in testo semplice all'interno del file. `userdata.json` Ciò è utile per tutti i dati sensibili che devono essere archiviati in modo crittografato, ad esempio: password, pin e altri segreti.

1. Per utilizzare questa funzionalità, è necessario aggiornare le autorizzazioni utilizzate nella creazione [dell'utente IDT](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html) per consentire l' GetParameter azione sui parametri per cui IDT è configurato. Di seguito è riportato un esempio di dichiarazione di autorizzazione che può essere aggiunta all'utente IDT. Per ulteriori informazioni, consulta [AWS Systems Manager userguide](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-access.html).

   ```
   {
          "Sid":"parameterStoreResources",
          "Effect": "Allow",
           "Action": [
               "ssm:GetParameter"
           ],
           "Resource": "arn:aws:ssm:*:*:parameter/IDT*"
   }
   ```

   L'autorizzazione di cui sopra è configurata per consentire il recupero di tutti i parametri il cui nome inizia con`IDT`, utilizzando il carattere jolly. `*` Dovresti personalizzarlo in base alle tue esigenze in modo che IDT abbia accesso al recupero di tutti i parametri configurati in base alla denominazione dei parametri che stai utilizzando.

1. È necessario memorizzare i valori di configurazione all'interno AWS di Paramater Store. Questa operazione può essere eseguita dalla AWS console o dalla AWS CLI. AWS Parameter Store consente di scegliere l'archiviazione crittografata o non crittografata. Per l'archiviazione di valori sensibili come segreti, password e pin, è necessario utilizzare l'opzione crittografata che è un tipo di parametro di. SecureString Per caricare un parametro utilizzando la AWS CLI, puoi usare il seguente comando:

   ```
   aws ssm put-parameter --name IDT-example-name --value IDT-example-value --type SecureString
   ```

   È possibile verificare che un parametro sia memorizzato utilizzando il comando seguente. (Facoltativo) Utilizzate il `--with-decryption` flag per recuperare un parametro decrittografatoSecureString .

   ```
   aws ssm get-parameter --name IDT-example-name
   ```

   L'utilizzo della AWS CLI caricherà il parametro nella AWS regione dell'utente CLI corrente e IDT recupererà i parametri dalla regione configurata in. `config.json` Per controllare la tua regione dalla AWS CLI, usa quanto segue:

   ```
   aws configure get region
   ```

1. Una volta che hai un valore di configurazione nel AWS cloud, puoi aggiornare qualsiasi valore all'interno della configurazione IDT per recuperarlo dal cloud. AWS A tale scopo, utilizzate un segnaposto nella configurazione IDT del modulo `{{AWS.Parameter.parameter_name}}` per recuperare il parametro con quel nome dal Parameter Store. AWS 

   Ad esempio, supponiamo di voler utilizzare il `IDT-example-name` parametro del passaggio 2 come HSM KeyLabel nella configurazione HSM. Per fare ciò, puoi aggiornare il tuo come segue: `userdata.json`

   ```
   "hsm": {
           "keyLabel": "{{AWS.Parameter.IDT-example-name}}",
           [...]
       }
   ```

   IDT recupererà il valore di questo parametro in fase di esecuzione impostato allo Step `IDT-example-value` 2. Questa configurazione è simile all'impostazione `"keyLabel": "IDT-example-value"` ma, invece, tale valore viene archiviato come crittografato nel AWS Cloud.