

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configurer les paramètres IDT pour exécuter la suite de AWS IoT Greengrass qualification
<a name="set-config"></a>

Avant d'exécuter les tests, vous devez configurer les paramètres des AWS informations d'identification et des périphériques sur votre ordinateur hôte.

## Configurer les AWS informations d'identification dans config.json
<a name="cfg-aws-gg"></a>

Vous devez configurer vos informations d'identification d'utilisateur IAM dans le `<device_tester_extract_location>/configs/config.json` fichier. Utilisez les informations d'identification de l'utilisateur IDT pour AWS IoT Greengrass V2 créé dans[Créez et configurez un Compte AWS](dev-tst-prereqs.md#config-aws-account-for-idt). Vous pouvez spécifier vos informations d'identification de deux manières :
+ Dans un fichier d'informations d'identification
+ En tant que variables d'environnement

### Configuration des AWS informations d'identification à l'aide d'un fichier d'identification
<a name="config-cred-file"></a>

IDT utilise le même fichier d'informations d'identification que l' AWS CLI. Pour de plus amples informations, veuillez consulter [Fichiers de configuration et d'informations d'identification](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

L'emplacement du fichier d'informations d'identification varie en fonction du système d'exploitation que vous utilisez :
+ macOS, Linux : `~/.aws/credentials`
+ Windows: `C:\Users\UserName\.aws\credentials`

Ajoutez vos AWS informations d'identification au `credentials` fichier au format suivant :

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

Pour configurer IDT pour AWS IoT Greengrass V2 afin AWS d'utiliser les informations d'identification de votre `credentials` fichier, modifiez votre `config.json` fichier comme suit :

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

**Note**  
Si vous n'utilisez pas le `default` AWS profil, veillez à modifier le nom du profil dans votre `config.json` fichier. Pour de plus amples informations, veuillez consulter [Profils nommés](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).

### Configurer les AWS informations d'identification avec des variables d'environnement
<a name="config-env-vars"></a>

Les variables d'environnement sont des variables gérées par le système d'exploitation et utilisées par les commandes du système. Elles ne sont pas enregistrées si vous fermez la session SSH. IDT pour AWS IoT Greengrass V2 peut utiliser les variables d'`AWS_SECRET_ACCESS_KEY`environnement `AWS_ACCESS_KEY_ID` et pour stocker vos AWS informations d'identification.

Pour définir ces variables sous Linux, macOS ou Unix, utilisez **export**:

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

Pour définir ces variables sous Windows, utilisez **set** :

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

Pour configurer l'IDT afin que l'outil utilise les variables d'environnement, modifiez la section `auth` dans votre fichier `config.json`. Voici un exemple :

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

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

**Note**  
IDT v4.9.3 permet de tester les fonctionnalités `ml``docker`, et. `streamManagement` IDT v4.9.4 et versions ultérieures prennent en charge les tests. `docker` Si vous ne souhaitez pas tester ces fonctionnalités, définissez la valeur correspondante sur`no`.

Outre les AWS informations d'identification, IDT pour AWS IoT Greengrass V2 a besoin d'informations sur les appareils sur lesquels les tests sont exécutés. Des exemples d'informations pourraient être l'adresse IP, les informations de connexion, le système d'exploitation et l'architecture du processeur.

Vous pouvez fournir ces informations à l'aide du modèle `device.json` situé dans ` <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>"
            }
          }
        }
      }
    ]
  }
]
```

**Note**  
Spécifiez `privKeyPath` uniquement si `method` est défini sur `pki`.  
Spécifiez `password` uniquement si `method` est défini sur `password`.

Toutes les propriétés contenant des valeurs sont obligatoires, comme décrit ici :

`id`  
ID alphanumérique défini par l'utilisateur qui identifie de façon unique un ensemble d'appareils appelé un *groupe d'appareils*. Le matériel doit être identique pour les appareils d'un même groupe. Lorsque vous exécutez une suite de tests, les appareils du groupe sont utilisés pour paralléliser la charge de travail. Plusieurs appareils sont utilisés pour exécuter différents tests.

`sku`  
Valeur alphanumérique qui identifie de façon unique l'appareil que vous testez. La référence est utilisée pour effectuer le suivi des cartes qualifiées.  
Si vous souhaitez répertorier votre appareil dans le catalogue des AWS Partner appareils, le SKU que vous spécifiez ici doit correspondre au SKU que vous utilisez dans le processus de mise en vente.

`features`  
Un tableau contenant les fonctions prises en charge de l'appareil. Toutes les fonctionnalités sont requises.    
`arch`  
Les architectures de système d'exploitation prises en charge validées par le test. Les valeurs valides sont :  
+ `x86_64`
+ `armv6l`
+ `armv7l`
+ `aarch64`  
`ml`  
<a name="description-ml"></a>Valide que l'appareil répond à toutes les dépendances techniques requises pour utiliser les composants d'apprentissage automatique (ML) AWS fournis.  
L'activation de cette fonctionnalité confirme également <a name="description-ml-inference-phrase"></a>que l'appareil peut effectuer une inférence ML à l'aide des frameworks [Deep Learning Runtime](https://github.com/neo-ai/neo-ai-dlr) et [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) ML.  
Les valeurs valides sont n'importe quelle combinaison `tensorflowlite` de `dlr` et ou`no`.  
`docker`  
<a name="description-docker"></a>Vérifie que l'appareil répond à toutes les dépendances techniques requises pour utiliser le composant Docker application manager () AWS`aws.greengrass.DockerApplicationManager` fourni.  
L'activation de cette fonctionnalité confirme également <a name="description-docker-app-manager-qual-phrase"></a>que l'appareil peut télécharger une image de conteneur Docker depuis Amazon ECR.  
Les valeurs valides sont n'importe quelle combinaison de `yes` ou`no`.  
`streamManagement`  
<a name="description-sm"></a>Vérifie que l'appareil peut télécharger, installer et exécuter le [gestionnaire de AWS IoT Greengrass flux](manage-data-streams.md).  
Les valeurs valides sont n'importe quelle combinaison de `yes` ou`no`.  
`hsi`  
<a name="description-hsi"></a>Valide que le périphérique peut authentifier les connexions aux AWS IoT Greengrass services AWS IoT et à l'aide d'une clé privée et d'un certificat stockés dans un module de sécurité matériel (HSM). Ce test vérifie également que le [composant fournisseur PKCS \$111 AWS](pkcs11-provider-component.md) fourni peut s'interfacer avec le HSM à l'aide d'une bibliothèque PKCS \$111 fournie par le fournisseur. Pour de plus amples informations, veuillez consulter [Intégration de sécurité matérielle](hardware-security.md).  
Les valeurs valides sont `hsm` ou `no`.
Le test n'`hsi`est disponible qu'avec IDT v4.9.3 et versions ultérieures.

`devices.id`  
Un identificateur unique défini par l'utilisateur pour l'appareil testé.

`devices.operatingSystem`  
Le système d'exploitation de l'appareil. Les valeurs prises en charge sont `Linux` et `Windows`.

`connectivity.protocol`  
Le protocole de communication utilisé pour communiquer avec cet appareil. Actuellement, la seule valeur prise en charge `ssh` concerne les appareils physiques.

`connectivity.ip`  
L'adresse IP de l'appareil testé.  
<a name="connectivity-protocol-ssh-only"></a>Cette propriété s'applique uniquement si `connectivity.protocol` est défini sur `ssh`.

`connectivity.port`  
Facultatif. Le numéro de port à utiliser pour les connexions SSH.  
La valeur par défaut est 22.  
Cette propriété s'applique uniquement si `connectivity.protocol` est défini sur `ssh`.

`connectivity.publicKeyPath`  
Facultatif. Le chemin complet vers la clé publique utilisée pour authentifier les connexions à l'appareil testé.   
Lorsque vous spécifiez le`publicKeyPath`, IDT valide la clé publique de l'appareil lorsqu'il établit une connexion SSH avec le périphérique testé. Si cette valeur n'est pas spécifiée, IDT crée une connexion SSH, mais ne valide pas la clé publique de l'appareil.   
Nous vous recommandons vivement de spécifier le chemin d'accès à la clé publique et d'utiliser une méthode sécurisée pour récupérer cette clé publique. Pour les clients SSH standard basés sur une ligne de commande, la clé publique est fournie dans le `known_hosts` fichier. Si vous spécifiez un fichier de clé publique distinct, ce fichier doit utiliser le même format que le `known_hosts` fichier, c'est-à-dire` ip-address key-type public-key`. S'il existe plusieurs entrées avec la même adresse IP, l'entrée correspondant au type de clé utilisé par IDT doit se trouver avant les autres entrées du fichier.

`connectivity.auth`  
Informations d'authentification pour la connexion.  
<a name="connectivity-protocol-ssh-only"></a>Cette propriété s'applique uniquement si `connectivity.protocol` est défini sur `ssh`.    
`connectivity.auth.method`  
Méthode d'authentification utilisée pour accéder à un appareil sur le protocole de connectivité donné.  
Les valeurs prises en charge sont :  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Informations d'identification utilisées pour l'authentification.    
`connectivity.auth.credentials.password`  
Mot de passe utilisé pour se connecter à l'appareil à tester.  
Cette valeur s'applique uniquement si `connectivity.auth.method` est défini sur `password`.  
`connectivity.auth.credentials.privKeyPath`  
Chemin complet de la clé privée utilisée pour se connecter à l'appareil testé.  
Cette valeur s'applique uniquement si `connectivity.auth.method` est défini sur `pki`.  
`connectivity.auth.credentials.user`  
Nom d'utilisateur pour la connexion à l'appareil 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>"
            }
          }
        }
      }
    ]
  }
]
```

**Note**  
Spécifiez `privKeyPath` uniquement si `method` est défini sur `pki`.  
Spécifiez `password` uniquement si `method` est défini sur `password`.

Toutes les propriétés contenant des valeurs sont obligatoires, comme décrit ici :

`id`  
ID alphanumérique défini par l'utilisateur qui identifie de façon unique un ensemble d'appareils appelé un *groupe d'appareils*. Le matériel doit être identique pour les appareils d'un même groupe. Lorsque vous exécutez une suite de tests, les appareils du groupe sont utilisés pour paralléliser la charge de travail. Plusieurs appareils sont utilisés pour exécuter différents tests.

`sku`  
Valeur alphanumérique qui identifie de façon unique l'appareil que vous testez. La référence est utilisée pour effectuer le suivi des cartes qualifiées.  
Si vous souhaitez répertorier votre appareil dans le catalogue des AWS Partner appareils, le SKU que vous spécifiez ici doit correspondre au SKU que vous utilisez dans le processus de mise en vente.

`features`  
Un tableau contenant les fonctions prises en charge de l'appareil. Toutes les fonctionnalités sont requises.    
`arch`  
Les architectures de système d'exploitation prises en charge validées par le test. Les valeurs valides sont :  
+ `x86_64`
+ `armv6l`
+ `armv7l`
+ `aarch64`  
`docker`  
<a name="description-docker"></a>Vérifie que l'appareil répond à toutes les dépendances techniques requises pour utiliser le composant Docker application manager () AWS`aws.greengrass.DockerApplicationManager` fourni.  
L'activation de cette fonctionnalité confirme également <a name="description-docker-app-manager-qual-phrase"></a>que l'appareil peut télécharger une image de conteneur Docker depuis Amazon ECR.  
Les valeurs valides sont n'importe quelle combinaison de `yes` ou`no`.  
`hsi`  
<a name="description-hsi"></a>Valide que le périphérique peut authentifier les connexions aux AWS IoT Greengrass services AWS IoT et à l'aide d'une clé privée et d'un certificat stockés dans un module de sécurité matériel (HSM). Ce test vérifie également que le [composant fournisseur PKCS \$111 AWS](pkcs11-provider-component.md) fourni peut s'interfacer avec le HSM à l'aide d'une bibliothèque PKCS \$111 fournie par le fournisseur. Pour de plus amples informations, veuillez consulter [Intégration de sécurité matérielle](hardware-security.md).  
Les valeurs valides sont `hsm` ou `no`.
Le test n'`hsi`est disponible qu'avec IDT v4.9.3 et versions ultérieures.

`devices.id`  
Un identificateur unique défini par l'utilisateur pour l'appareil testé.

`devices.operatingSystem`  
Le système d'exploitation de l'appareil. Les valeurs prises en charge sont `Linux` et `Windows`.

`connectivity.protocol`  
Le protocole de communication utilisé pour communiquer avec cet appareil. Actuellement, la seule valeur prise en charge `ssh` concerne les appareils physiques.

`connectivity.ip`  
L'adresse IP de l'appareil testé.  
<a name="connectivity-protocol-ssh-only"></a>Cette propriété s'applique uniquement si `connectivity.protocol` est défini sur `ssh`.

`connectivity.port`  
Facultatif. Le numéro de port à utiliser pour les connexions SSH.  
La valeur par défaut est 22.  
Cette propriété s'applique uniquement si `connectivity.protocol` est défini sur `ssh`.

`connectivity.publicKeyPath`  
Facultatif. Le chemin complet vers la clé publique utilisée pour authentifier les connexions à l'appareil testé.   
Lorsque vous spécifiez le`publicKeyPath`, IDT valide la clé publique de l'appareil lorsqu'il établit une connexion SSH avec le périphérique testé. Si cette valeur n'est pas spécifiée, IDT crée une connexion SSH, mais ne valide pas la clé publique de l'appareil.   
Nous vous recommandons vivement de spécifier le chemin d'accès à la clé publique et d'utiliser une méthode sécurisée pour récupérer cette clé publique. Pour les clients SSH standard basés sur une ligne de commande, la clé publique est fournie dans le `known_hosts` fichier. Si vous spécifiez un fichier de clé publique distinct, ce fichier doit utiliser le même format que le `known_hosts` fichier, c'est-à-dire` ip-address key-type public-key`. S'il existe plusieurs entrées avec la même adresse IP, l'entrée correspondant au type de clé utilisé par IDT doit se trouver avant les autres entrées du fichier.

`connectivity.auth`  
Informations d'authentification pour la connexion.  
<a name="connectivity-protocol-ssh-only"></a>Cette propriété s'applique uniquement si `connectivity.protocol` est défini sur `ssh`.    
`connectivity.auth.method`  
Méthode d'authentification utilisée pour accéder à un appareil sur le protocole de connectivité donné.  
Les valeurs prises en charge sont :  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Informations d'identification utilisées pour l'authentification.    
`connectivity.auth.credentials.password`  
Mot de passe utilisé pour se connecter à l'appareil à tester.  
Cette valeur s'applique uniquement si `connectivity.auth.method` est défini sur `password`.  
`connectivity.auth.credentials.privKeyPath`  
Chemin complet de la clé privée utilisée pour se connecter à l'appareil testé.  
Cette valeur s'applique uniquement si `connectivity.auth.method` est défini sur `pki`.  
`connectivity.auth.credentials.user`  
Nom d'utilisateur pour la connexion à l'appareil testé.

------

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

IDT for AWS IoT Greengrass V2 a également besoin d'informations supplémentaires sur l'emplacement des artefacts de test et des AWS IoT Greengrass logiciels.

Vous pouvez fournir ces informations à l'aide du modèle `userdata.json` situé dans ` <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"
    }
}
```

Toutes les propriétés contenant des valeurs sont obligatoires, comme décrit ici :

`TempResourcesDirOnDevice`  
Le chemin complet vers un dossier temporaire sur le périphérique testé dans lequel stocker les artefacts de test. Assurez-vous que les autorisations sudo ne sont pas requises pour écrire dans ce répertoire.   
IDT supprime le contenu de ce dossier une fois le test terminé.

`InstallationDirRootOnDevice`  
Le chemin complet vers un dossier de l'appareil dans lequel effectuer l'installation AWS IoT Greengrass. Pour PreInstalled Greengrass, il s'agit du chemin d'accès au répertoire d'installation de Greengrass.  
Vous devez définir les autorisations de fichier requises pour ce dossier. Exécutez la commande suivante pour chaque dossier du chemin d'installation.  

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

`GreengrassNucleusZip`  
Le chemin complet vers le fichier ZIP (`greengrass-nucleus-latest.zip`) du noyau de Greengrass sur votre ordinateur hôte. Ce champ n'est pas obligatoire pour les tests avec PreInstalled Greengrass.  
Pour plus d'informations sur les versions prises en charge du noyau Greengrass pour IDT, consultez. AWS IoT Greengrass[Dernière version IDT pour V2 AWS IoT Greengrass](dev-test-versions.md#idt-latest-version) Pour télécharger la dernière version du logiciel Greengrass, voir [Télécharger le AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html#config-gg) logiciel.

`PreInstalled`  
Cette fonctionnalité est disponible pour IDT v4.5.8 et versions ultérieures uniquement sur les appareils Linux.  
(Facultatif) Lorsque la valeur est*yes*, IDT supposera que le chemin indiqué est le répertoire dans `InstallationDirRootOnDevice` lequel Greengrass est installé.  
Pour plus d'informations sur l'installation de Greengrass sur votre appareil, consultez. [Installation AWS IoT Greengrass du logiciel Core avec provisionnement automatique des ressources](quick-installation.md) En cas d'[installation avec provisionnement manuel](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html), incluez l'étape « Ajouter l' AWS IoT objet à un nouveau groupe d'objets ou à un groupe d'objets existant » lors de la création manuelle d'un [AWS IoT objet](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html#create-iot-thing). IDT part du principe que l'objet et le groupe d'objets sont créés lors de la configuration de l'installation. Assurez-vous que ces valeurs sont reflétées dans le `effectiveConfig.yaml` fichier. IDT vérifie la présence du fichier ci-dessous`effectiveConfig.yaml`. `<InstallationDirRootOnDevice>/config/effectiveConfig.yaml`  
Pour exécuter des tests avec HSM, assurez-vous que le `aws.greengrass.crypto.Pkcs11Provider` champ est mis à jour dans`effectiveConfig.yaml`.

  `GreengrassV2TokenExchangeRole`  
(Facultatif) Le rôle IAM personnalisé que vous souhaitez utiliser comme rôle d'échange de jetons que le périphérique testé suppose d'interagir avec les AWS ressources.   
IDT utilise ce rôle IAM personnalisé au lieu de créer le rôle d'échange de jetons par défaut lors du test. Si vous utilisez un rôle personnalisé, vous pouvez mettre à jour les [autorisations IAM pour l'utilisateur de test afin d'](dev-tst-prereqs.md#configure-idt-permissions)exclure l'`iamResourcesUpdate`instruction qui permet à l'utilisateur de créer et de supprimer des rôles et des politiques IAM. 
Pour plus d'informations sur la création d'un rôle IAM personnalisé en tant que rôle d'échange de jetons, consultez[Configurer un rôle d'échange de jetons personnalisé](device-config-setup.md#configure-custom-tes-role-for-idt).

`hsm`  
Cette fonctionnalité est disponible pour IDT v4.5.1 et versions ultérieures.  
(Facultatif) Les informations de configuration pour les tests avec un module de sécurité AWS IoT Greengrass matériel (HSM). Sinon, la propriété `hsm` doit être omise. Pour de plus amples informations, veuillez consulter [Intégration de sécurité matérielle](hardware-security.md).  
<a name="connectivity-protocol-ssh-only"></a>Cette propriété s'applique uniquement si `connectivity.protocol` est défini sur `ssh`.  
La configuration HSM peut être considérée comme une donnée sensible si le module de sécurité matériel est partagé entre IDT et un autre système. Dans ce cas, vous pouvez éviter de sécuriser ces valeurs de configuration en texte brut en les stockant dans un AWS paramètre Parameter Store SecureString et en configurant IDT pour qu'il les récupère pendant l'exécution du test. Pour de plus amples informations, consultez [Extraire la configuration depuis le magasin de AWS paramètres](#fetch-config).  
`hsm.greengrassPkcsPluginJar`  
Le chemin complet vers le [composant fournisseur PKCS \$111](pkcs11-provider-component.md) que vous téléchargez sur la machine hôte IDT. AWS IoT Greengrass fournit ce composant sous forme de fichier JAR que vous pouvez télécharger pour le spécifier en tant que plugin de provisionnement lors de l'installation. Vous pouvez télécharger la dernière version du fichier JAR du composant à l'adresse suivante : [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`  
Le chemin complet vers la bibliothèque PKCS \$111 fournie par le fournisseur du module de sécurité matérielle (HSM) pour interagir avec le HSM.  
`hsm.slotId`  
ID de slot utilisé pour identifier le slot HSM dans lequel vous chargez la clé et le certificat.  
`hsm.slotLabel`  
L'étiquette d'emplacement utilisée pour identifier l'emplacement HSM dans lequel vous chargez la clé et le certificat.  
`hsm.slotUserPin`  
Le code PIN utilisateur utilisé par IDT pour authentifier le logiciel AWS IoT Greengrass Core auprès du HSM.  
Pour des raisons de sécurité, n'utilisez pas le même code PIN utilisateur sur les appareils de production.  
`hsm.keyLabel`  
Étiquette utilisée pour identifier la clé dans le module matériel. La clé et le certificat doivent utiliser la même étiquette de clé.  
`hsm.preloadedCertificateArn`  
Le nom de ressource Amazon (ARN) du certificat d'appareil téléchargé dans le AWS IoT cloud.  
Vous devez avoir préalablement généré ce certificat à l'aide de la clé du HSM, l'avoir importé dans votre HSM et l'avoir chargé dans le AWS IoT cloud. Pour plus d'informations sur la génération et l'importation du certificat, consultez la documentation de votre HSM.  
Vous devez télécharger le certificat sur le même compte et dans la même région que ceux que vous avez fournis dans [config.json.](#cfg-aws-gg) . Pour plus d'informations sur le téléchargement de votre certificat vers AWS IoT, voir [Enregistrer un certificat client manuellement](https://docs.aws.amazon.com/iot/latest/developerguide/manual-cert-registration.html) dans le *Guide du AWS IoT développeur*.  
`hsm.rootCAPath`  
(Facultatif) Le chemin complet sur la machine hôte IDT vers l'autorité de certification racine (CA) qui a signé votre certificat. Cela est nécessaire si le certificat de votre HSM créé n'est pas signé par l'autorité de certification racine Amazon.

## Extraire la configuration depuis le magasin de AWS paramètres
<a name="fetch-config"></a>

AWS IoT Device Tester (IDT) inclut une fonctionnalité optionnelle permettant de récupérer les valeurs de configuration depuis le magasin de [paramètres de AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html). AWS Parameter Store permet le stockage sécurisé et crypté des configurations. Une fois configuré, IDT peut récupérer les paramètres depuis le AWS Parameter Store au lieu de les stocker en texte brut dans le fichier. `userdata.json` Cela est utile pour toutes les données sensibles qui doivent être stockées cryptées, telles que les mots de passe, les codes PIN et autres secrets.

1. Pour utiliser cette fonctionnalité, vous devez mettre à jour les autorisations utilisées lors de la création de votre [utilisateur IDT afin d'](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html)autoriser l' GetParameter action sur les paramètres pour lesquels IDT est configuré pour utiliser. Vous trouverez ci-dessous un exemple de déclaration d'autorisation qui peut être ajoutée à l'utilisateur IDT. Pour plus d'informations, consultez le [AWS Systems Manager guide de l'utilisateur](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'autorisation ci-dessus est configurée pour permettre de récupérer tous les paramètres dont le nom commence par`IDT`, en utilisant le caractère générique. `*` Vous devez le personnaliser en fonction de vos besoins afin qu'IDT ait accès à tous les paramètres configurés en fonction du nom des paramètres que vous utilisez.

1. Vous devez stocker vos valeurs de configuration dans AWS Paramater Store. Cela peut être fait à partir de la AWS console ou de la AWS CLI. AWS Parameter Store vous permet de choisir un stockage crypté ou non chiffré. Pour le stockage de valeurs sensibles telles que les secrets, les mots de passe et les codes PIN, vous devez utiliser l'option cryptée qui est un type de paramètre de SecureString. Pour télécharger un paramètre à l'aide de la AWS CLI, vous pouvez utiliser la commande suivante :

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

   Vous pouvez vérifier qu'un paramètre est enregistré à l'aide de la commande suivante. (Facultatif) Utilisez l'`--with-decryption`indicateur pour récupérer un paramètre SecureString déchiffré.

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

   L'utilisation de la AWS CLI téléchargera le paramètre dans la AWS région de l'utilisateur CLI actuel et IDT récupérera les paramètres de la région configurée dans. `config.json` Pour vérifier votre région à partir de la AWS CLI, utilisez ce qui suit :

   ```
   aws configure get region
   ```

1. Une fois que vous avez une valeur de configuration dans le AWS cloud, vous pouvez mettre à jour n'importe quelle valeur dans la configuration IDT pour la récupérer depuis le AWS cloud. Pour ce faire, vous utilisez un espace réservé dans votre configuration IDT du formulaire `{{AWS.Parameter.parameter_name}}` pour récupérer le paramètre portant ce nom dans le Parameter Store. AWS 

   Supposons, par exemple, que vous souhaitiez utiliser le `IDT-example-name` paramètre de l'étape 2 en tant que KeyLabel HSM dans votre configuration HSM. Pour ce faire, vous pouvez mettre à jour votre `userdata.json` compte comme suit :

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

   IDT récupérera la valeur de ce paramètre au moment de l'exécution qui a été définie `IDT-example-value` à l'étape 2. Cette configuration est similaire au paramètre, `"keyLabel": "IDT-example-value"` mais cette valeur est stockée sous forme cryptée dans le AWS Cloud.