

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configure los ajustes de IDT para ejecutar el conjunto de AWS IoT Greengrass cualificación
<a name="set-config"></a>

Antes de ejecutar las pruebas, debe configurar los ajustes de las AWS credenciales y los dispositivos del ordenador host.

## Configure AWS las credenciales en config.json
<a name="cfg-aws-gg"></a>

Debe configurar sus credenciales de usuario de IAM en el archivo `<device_tester_extract_location>/configs/config.json`. Utilice las credenciales del usuario de IDT para AWS IoT Greengrass V2 creado en[Cree y configure un Cuenta de AWS](dev-tst-prereqs.md#config-aws-account-for-idt). Puede especificar sus credenciales de una de las dos formas siguientes:
+ En un archivo de credenciales
+ Como variables de entorno.

### Configure AWS las credenciales con un archivo de credenciales
<a name="config-cred-file"></a>

IDT utiliza el mismo archivo de credenciales que la AWS CLI. Para obtener más información, consulte [Configuración y archivos de credenciales](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

La ubicación del archivo de credenciales varía en función del sistema operativo que utilice:
+ macOS, Linux: `~/.aws/credentials`
+ Windows: `C:\Users\UserName\.aws\credentials`

Añada sus AWS credenciales al `credentials` archivo en el siguiente formato:

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

Para configurar IDT para AWS IoT Greengrass V2 de modo que utilice AWS las credenciales del `credentials` archivo, edítelo `config.json` de la siguiente manera:

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

**nota**  
Si no usa el `default` AWS perfil, asegúrese de cambiar el nombre del perfil en el `config.json` archivo. Para obtener más información, consulte [Perfiles con nombre](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).

### Configure AWS las credenciales con variables de entorno
<a name="config-env-vars"></a>

Las variables de entorno son las variables que mantiene el sistema operativo y utilizan los comandos del sistema. No se guardan si cierra la sesión de SSH. IDT para AWS IoT Greengrass V2 puede usar las variables de `AWS_SECRET_ACCESS_KEY` entorno `AWS_ACCESS_KEY_ID` y para almacenar sus AWS credenciales.

Para establecer estas variables en Linux, MacOS, o Unix, utilice **export**:

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

Para establecer estas variables en Windows, utilice **set**:

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

Para configurar IDT para utilizar las variables de entorno, edite la sección `auth` de su archivo `config.json`. A continuación se muestra un ejemplo:

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

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

**nota**  
La versión 4.9.3 de IDT permite probar las características `ml`, `docker` y `streamManagement`. La versión 4.9.4 de IDT y las versiones posteriores admiten las pruebas de `docker`. Si no desea probar estas características, defina el valor correspondiente en `no`.

Además de AWS las credenciales, IDT para AWS IoT Greengrass V2 necesita información sobre los dispositivos en los que se ejecutan las pruebas. Algunos ejemplos de información serían la dirección IP, la información de inicio de sesión, el sistema operativo y la arquitectura de la CPU.

Debe proporcionar esta información utilizando la plantilla `device.json` ubicada en ` <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**  
Especifique `privKeyPath` solo si `method` está establecido en `pki`  
Especifique `password` solo si `method` está establecido en `password`

Todos los campos que contienen valores son obligatorios tal y como se describe aquí:

`id`  
Un ID alfanumérico definido por el usuario que identifica de forma única una colección de dispositivos que se conoce como *grupo de dispositivos*. Los dispositivos que pertenecen a un grupo deben tener idéntico hardware. Al ejecutar un conjunto de pruebas, los dispositivos del grupo se utilizan para paralelizar la carga de trabajo. Se utilizan varios dispositivos para ejecutar diferentes pruebas.

`sku`  
Un valor alfanumérico que identifica de forma única el dispositivo a prueba. El SKU se utiliza para realizar un seguimiento de placas cualificadas.  
Si quieres incluir tu dispositivo en el catálogo de AWS Partner dispositivos, el SKU que especifiques aquí debe coincidir con el SKU que utilices en el proceso de publicación.

`features`  
Una matriz que contenga las características compatibles del dispositivo. Todas las características son obligatorias.    
`arch`  
Las arquitecturas de sistemas operativos compatibles que valida la ejecución de la prueba. Los valores válidos son:  
+ `x86_64`
+ `armv6l`
+ `armv7l`
+ `aarch64`  
`ml`  
<a name="description-ml"></a>Valida que el dispositivo cumpla con todos los requisitos técnicos necesarios para utilizar los componentes AWS de aprendizaje automático (ML) proporcionados.  
[Al habilitar esta función, también se valida <a name="description-ml-inference-phrase"></a>que el dispositivo pueda realizar inferencias de aprendizaje automático mediante los marcos [Deep Learning Runtime y TensorFlow Lite](https://github.com/neo-ai/neo-ai-dlr) ML.](https://www.tensorflow.org/lite/guide/python)  
Los valores válidos son cualquier combinación de `dlr` y `tensorflowlite` o `no`.  
`docker`  
<a name="description-docker"></a>Valida que el dispositivo cumpla con todas las dependencias técnicas necesarias para utilizar el componente Docker Application AWS Manager () proporcionado. `aws.greengrass.DockerApplicationManager`  
Al habilitar esta característica, también se valida <a name="description-docker-app-manager-qual-phrase"></a>que el dispositivo pueda descargar una imagen de contenedor de Docker desde Amazon ECR.  
Los valores válidos son cualquier combinación de `yes` o `no`.  
`streamManagement`  
<a name="description-sm"></a>Valida que los dispositivos puedan descargar, instalar y ejecutar el [administrador de flujos de AWS IoT Greengrass](manage-data-streams.md).  
Los valores válidos son cualquier combinación de `yes` o `no`.  
`hsi`  
<a name="description-hsi"></a>Valida que el dispositivo pueda autenticar las conexiones a los AWS IoT Greengrass servicios mediante una clave privada AWS IoT y un certificado almacenados en un módulo de seguridad de hardware (HSM). Esta prueba también verifica que el [componente del proveedor PKCS \$111 AWS proporcionado pueda interactuar con el HSM mediante una biblioteca PKCS \$111 proporcionada por el proveedor](pkcs11-provider-component.md). Para obtener más información, consulte [Integración de la seguridad de hardware](hardware-security.md).  
Los valores válidos son `hsm` o `no`.
La prueba de `hsi` solo está disponible con la versión 4.9.3 de IDT y versiones posteriores.

`devices.id`  
Un identificador único y definido por el usuario para el dispositivo que se está probando.

`devices.operatingSystem`  
El sistema operativo del dispositivo. Los valores admitidos son `Linux` y `Windows`.

`connectivity.protocol`  
El protocolo de comunicación que se usará para la comunicación con este dispositivo. Actualmente, el único valor admitido es `ssh` para dispositivos físicos.

`connectivity.ip`  
La dirección IP del dispositivo que se está probando.  
<a name="connectivity-protocol-ssh-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.

`connectivity.port`  
Opcional. El número de puerto que se va a utilizar para las conexiones SSH.  
El valor predeterminado es 22.  
Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.

`connectivity.publicKeyPath`  
Opcional. La ruta completa a la clave pública utilizada para autenticar las conexiones al dispositivo que se está probando.   
Al especificar la `publicKeyPath`, IDT valida la clave pública del dispositivo cuando establece una conexión SSH con el dispositivo que se está probando. Si no se especifica este valor, IDT crea una conexión SSH, pero no valida la clave pública del dispositivo.   
Le recomendamos encarecidamente que especifique la ruta a la clave pública y que utilice un método seguro para obtenerla. En el caso de los clientes SSH estándar basados en la línea de comandos, la clave pública se proporciona en el archivo `known_hosts`. Si especifica un archivo de clave pública independiente, este archivo debe usar el mismo formato que el archivo `known_hosts`, es decir, ` ip-address key-type public-key`. Si hay varias entradas con la misma dirección IP, la entrada del tipo de clave utilizada por IDT debe estar antes que las demás entradas del archivo.

`connectivity.auth`  
Información de autenticación para la conexión.  
<a name="connectivity-protocol-ssh-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.    
`connectivity.auth.method`  
El método de autenticación que se utiliza para acceder a un dispositivo a través de un determinado protocolo de conectividad.  
Los valores admitidos son:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Las credenciales que se utilizan para la autenticación.    
`connectivity.auth.credentials.password`  
La contraseña que se utiliza para iniciar sesión en el dispositivo que se va a probar.  
Este valor solo se aplica si `connectivity.auth.method` está establecido en `password`.  
`connectivity.auth.credentials.privKeyPath`  
La ruta completa a la clave privada que se utiliza para iniciar sesión en el dispositivo que se está probando.  
Este valor solo se aplica si `connectivity.auth.method` está establecido en `pki`.  
`connectivity.auth.credentials.user`  
El nombre de usuario para iniciar sesión en el dispositivo que se está probando.

------
#### [ 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**  
Especifique `privKeyPath` solo si `method` está establecido en `pki`  
Especifique `password` solo si `method` está establecido en `password`

Todos los campos que contienen valores son obligatorios tal y como se describe aquí:

`id`  
Un ID alfanumérico definido por el usuario que identifica de forma única una colección de dispositivos que se conoce como *grupo de dispositivos*. Los dispositivos que pertenecen a un grupo deben tener idéntico hardware. Al ejecutar un conjunto de pruebas, los dispositivos del grupo se utilizan para paralelizar la carga de trabajo. Se utilizan varios dispositivos para ejecutar diferentes pruebas.

`sku`  
Un valor alfanumérico que identifica de forma única el dispositivo a prueba. El SKU se utiliza para realizar un seguimiento de placas cualificadas.  
Si quieres incluir tu dispositivo en el catálogo de dispositivos, el AWS Partner SKU que especifiques aquí debe coincidir con el SKU que utilices en el proceso de publicación.

`features`  
Una matriz que contenga las características compatibles del dispositivo. Todas las características son obligatorias.    
`arch`  
Las arquitecturas de sistemas operativos compatibles que valida la ejecución de la prueba. Los valores válidos son:  
+ `x86_64`
+ `armv6l`
+ `armv7l`
+ `aarch64`  
`docker`  
<a name="description-docker"></a>Valida que el dispositivo cumpla con todas las dependencias técnicas necesarias para utilizar el componente Docker application manager () AWS suministrado. `aws.greengrass.DockerApplicationManager`  
Al habilitar esta característica, también se valida <a name="description-docker-app-manager-qual-phrase"></a>que el dispositivo pueda descargar una imagen de contenedor de Docker desde Amazon ECR.  
Los valores válidos son cualquier combinación de `yes` o `no`.  
`hsi`  
<a name="description-hsi"></a>Valida que el dispositivo pueda autenticar las conexiones a los AWS IoT Greengrass servicios mediante una clave privada AWS IoT y un certificado almacenados en un módulo de seguridad de hardware (HSM). Esta prueba también verifica que el [componente del proveedor PKCS \$111 AWS proporcionado pueda interactuar con el HSM mediante una biblioteca PKCS \$111 proporcionada por el proveedor](pkcs11-provider-component.md). Para obtener más información, consulte [Integración de la seguridad de hardware](hardware-security.md).  
Los valores válidos son `hsm` o `no`.
La prueba de `hsi` solo está disponible con la versión 4.9.3 de IDT y versiones posteriores.

`devices.id`  
Un identificador único y definido por el usuario para el dispositivo que se está probando.

`devices.operatingSystem`  
El sistema operativo del dispositivo. Los valores admitidos son `Linux` y `Windows`.

`connectivity.protocol`  
El protocolo de comunicación que se usará para la comunicación con este dispositivo. Actualmente, el único valor admitido es `ssh` para dispositivos físicos.

`connectivity.ip`  
La dirección IP del dispositivo que se está probando.  
<a name="connectivity-protocol-ssh-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.

`connectivity.port`  
Opcional. El número de puerto que se va a utilizar para las conexiones SSH.  
El valor predeterminado es 22.  
Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.

`connectivity.publicKeyPath`  
Opcional. La ruta completa a la clave pública utilizada para autenticar las conexiones al dispositivo que se está probando.   
Al especificar la `publicKeyPath`, IDT valida la clave pública del dispositivo cuando establece una conexión SSH con el dispositivo que se está probando. Si no se especifica este valor, IDT crea una conexión SSH, pero no valida la clave pública del dispositivo.   
Le recomendamos encarecidamente que especifique la ruta a la clave pública y que utilice un método seguro para obtenerla. En el caso de los clientes SSH estándar basados en la línea de comandos, la clave pública se proporciona en el archivo `known_hosts`. Si especifica un archivo de clave pública independiente, este archivo debe usar el mismo formato que el archivo `known_hosts`, es decir, ` ip-address key-type public-key`. Si hay varias entradas con la misma dirección IP, la entrada del tipo de clave utilizada por IDT debe estar antes que las demás entradas del archivo.

`connectivity.auth`  
Información de autenticación para la conexión.  
<a name="connectivity-protocol-ssh-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.    
`connectivity.auth.method`  
El método de autenticación que se utiliza para acceder a un dispositivo a través de un determinado protocolo de conectividad.  
Los valores admitidos son:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Las credenciales que se utilizan para la autenticación.    
`connectivity.auth.credentials.password`  
La contraseña que se utiliza para iniciar sesión en el dispositivo que se va a probar.  
Este valor solo se aplica si `connectivity.auth.method` está establecido en `password`.  
`connectivity.auth.credentials.privKeyPath`  
La ruta completa a la clave privada que se utiliza para iniciar sesión en el dispositivo que se está probando.  
Este valor solo se aplica si `connectivity.auth.method` está establecido en `pki`.  
`connectivity.auth.credentials.user`  
El nombre de usuario para iniciar sesión en el dispositivo que se está probando.

------

## Configuración de userdata.json
<a name="userdata-config"></a>

IDT para la AWS IoT Greengrass versión 2 también necesita información adicional sobre la ubicación del software y los artefactos de prueba. AWS IoT Greengrass 

Debe proporcionar esta información utilizando la plantilla `userdata.json` ubicada en ` <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"
    }
}
```

Todas las propiedades que contienen valores son obligatorios tal y como se describe aquí:

`TempResourcesDirOnDevice`  
La ruta completa a una carpeta temporal del dispositivo que se está probando en la que se almacenan los artefactos de prueba. Asegúrese de que no se requieren permisos de sudo para escribir en este directorio.   
IDT borra el contenido de esta carpeta cuando termina de ejecutar una prueba.

`InstallationDirRootOnDevice`  
La ruta completa a la carpeta del dispositivo en la que se va a instalar AWS IoT Greengrass. Para PreInstalled Greengrass, esta es la ruta al directorio de instalación de Greengrass.  
Debe establecer los permisos de archivo necesarios para esta carpeta. Ejecute el siguiente comando para cada carpeta de la ruta de instalación.  

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

`GreengrassNucleusZip`  
La ruta completa al archivo ZIP (`greengrass-nucleus-latest.zip`) del núcleo de Greengrass en el equipo host. Este campo no es obligatorio para realizar pruebas con PreInstalled Greengrass.  
Para obtener información sobre las versiones compatibles del núcleo de Greengrass para IDT, consulte. AWS IoT Greengrass[Última versión de IDT para V2 AWS IoT Greengrass](dev-test-versions.md#idt-latest-version) Para descargar el software Greengrass más reciente, consulte [Descargar el AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html#config-gg) software.

`PreInstalled`  
Esta característica solo está disponible para la versión 4.5.8 de IDT y versiones posteriores en dispositivos Linux.  
(Opcional) Si el valor es*yes*, IDT asumirá que la ruta mencionada es el directorio en `InstallationDirRootOnDevice` el que está instalado Greengrass.  
Para obtener más información acerca de cómo instalar Greengrass en el dispositivo, consulte [Instale el software AWS IoT Greengrass principal con aprovisionamiento automático de recursos](quick-installation.md). [Si la [instalación se realiza con aprovisionamiento manual](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html), incluya el paso «Añadir AWS IoT el elemento a un grupo de elementos nuevo o existente» al crear un AWS IoT elemento manualmente.](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html#create-iot-thing) IDT supone que el elemento y el grupo de elementos se crean durante la configuración de la instalación. Asegúrese de que estos valores se reflejen en el archivo `effectiveConfig.yaml`. IDT busca el archivo `effectiveConfig.yaml` que aparece en `<InstallationDirRootOnDevice>/config/effectiveConfig.yaml`.  
Para ejecutar pruebas con HSM, asegúrese de que el campo `aws.greengrass.crypto.Pkcs11Provider` esté actualizado en `effectiveConfig.yaml`.

  `GreengrassV2TokenExchangeRole`  
(Opcional) El rol de IAM personalizado que desea utilizar como rol de intercambio de token que el dispositivo objeto de prueba asume para interactuar con los recursos de AWS .   
IDT utiliza este rol de IAM personalizado en lugar de crear el rol de intercambio de token predeterminado durante la ejecución de la prueba. Si usa un rol personalizado, puede actualizar los [permisos de IAM del usuario de prueba](dev-tst-prereqs.md#configure-idt-permissions) para excluir la declaración `iamResourcesUpdate` que permite al usuario crear y eliminar roles y políticas de IAM. 
Para obtener más información sobre cómo crear un rol de IAM personalizado como rol de intercambio de tokens, consulte [Configuración de un rol de intercambio de token personalizado](device-config-setup.md#configure-custom-tes-role-for-idt).

`hsm`  
Esta característica está disponible para la versión 4.5.1 de IDT y versiones posteriores.  
(Opcional) La información de configuración para realizar pruebas con un módulo de seguridad de hardware (HSM) de AWS IoT Greengrass . De lo contrario, la propiedad `hsm` debe omitirse. Para obtener más información, consulte [Integración de la seguridad de hardware](hardware-security.md).  
<a name="connectivity-protocol-ssh-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.  
La configuración del HSM puede considerarse información confidencial si IDT y otro sistema comparten el módulo de seguridad de hardware. En esta situación, puede evitar proteger estos valores de configuración en texto simple almacenándolos en un AWS parámetro del almacén SecureString de parámetros y configurando IDT para que los recupere durante la ejecución de la prueba. Para obtener más información, consulte [Obtenga la configuración del almacén de parámetros AWS](#fetch-config)  
`hsm.greengrassPkcsPluginJar`  
La ruta completa al [componente del proveedor PKCS \$111](pkcs11-provider-component.md) que se descarga en la máquina host de IDT. AWS IoT Greengrass proporciona este componente como un archivo JAR que puede descargar para especificarlo como complemento de aprovisionamiento durante la instalación. [Puede descargar la última versión del archivo JAR del componente en la siguiente 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`  
La ruta completa a la biblioteca PKCS \$111 que proporciona el proveedor del módulo de seguridad de hardware (HSM) para interactuar con el HSM.  
`hsm.slotId`  
El identificador de ranura que se utiliza para identificar la ranura del HSM en la que se cargan la clave y el certificado.  
`hsm.slotLabel`  
La etiqueta de ranura que se utiliza para identificar la ranura del HSM en la que se cargan la clave y el certificado.  
`hsm.slotUserPin`  
El PIN de usuario que IDT utiliza para autenticar el software principal en el HSM. AWS IoT Greengrass   
La práctica recomendada de seguridad es no utilizar el mismo PIN de usuario en dispositivos de producción.  
`hsm.keyLabel`  
Es la etiqueta que se utiliza para identificar la clave en el módulo de hardware. Tanto la clave como el certificado deben usar la misma etiqueta de clave.  
`hsm.preloadedCertificateArn`  
El nombre de recurso de Amazon (ARN) del certificado del dispositivo cargado en la nube de AWS IoT .  
Debe haber generado previamente este certificado con la clave del HSM, haberlo importado a su HSM y haberlo subido a la nube. AWS IoT Para obtener información sobre cómo generar e importar el certificado, consulte la documentación de su HSM.  
Debe cargar el certificado en la misma cuenta y región que proporcionó en [config.json.](#cfg-aws-gg) . *Para obtener más información sobre cómo cargar el certificado a AWS IoT, consulte [Registrar un certificado de cliente manualmente](https://docs.aws.amazon.com/iot/latest/developerguide/manual-cert-registration.html) en la AWS IoT Guía para desarrolladores.*  
`hsm.rootCAPath`  
(Opcional) La ruta completa de la máquina host de IDT a la entidad de certificación (CA) raíz que firmó el certificado. Esto es obligatorio si el certificado creado en el HSM no está firmado por la CA raíz de Amazon.

## Obtenga la configuración del almacén de parámetros AWS
<a name="fetch-config"></a>

AWS IoT El Device Tester (IDT) incluye una función opcional para obtener los valores de configuración del almacén de parámetros de [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html). AWS El almacén de parámetros permite almacenar las configuraciones de forma segura y cifrada. Cuando está configurado, IDT puede recuperar los parámetros del almacén de AWS parámetros en lugar de almacenarlos en texto plano dentro del archivo. `userdata.json` Esto resulta útil para cualquier dato confidencial que deba almacenarse cifrado, como contraseñas, números PIN y otros datos secretos.

1. Para utilizar esta función, debe actualizar los permisos utilizados al crear su [usuario de IDT](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html) para permitir la GetParameter acción en los parámetros para los que IDT está configurado. El siguiente es un ejemplo de una declaración de permiso que se puede agregar al usuario de IDT. Para obtener más información, consulte la [Guía del usuario de AWS Systems Manager](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*"
   }
   ```

   El permiso anterior está configurado para permitir la obtención de todos los parámetros cuyo nombre comience por `IDT`, mediante el carácter comodín `*`. Debe personalizarlo según sus necesidades para que IDT tenga acceso a cualquier parámetro configurado en función del nombre de los parámetros que esté utilizando.

1. Debe almacenar los valores de configuración en AWS Paramater Store. Esto se puede hacer desde la AWS consola o desde la AWS CLI. AWS Parameter Store le permite elegir un almacenamiento cifrado o no cifrado. Para almacenar valores confidenciales como secretos, contraseñas y pines, debe usar la opción cifrada, que es un tipo de parámetro de SecureString. Para cargar un parámetro mediante la AWS CLI, puede utilizar el siguiente comando:

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

   Puede confirmar que un parámetro está almacenado mediante el siguiente comando. (Opcional) Utilice la `--with-decryption` marca para obtener un parámetro descifrado. SecureString 

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

   El uso de la AWS CLI cargará el parámetro en la AWS región del usuario de CLI actual e IDT obtendrá los parámetros de la región configurada. `config.json` Para comprobar su región desde la CLI de AWS , utilice lo siguiente:

   ```
   aws configure get region
   ```

1. Una vez que tenga un valor de configuración en la AWS nube, podrá actualizar cualquier valor de la configuración de IDT para obtenerlo de la nube. AWS Para ello, utilice un marcador de posición en la configuración de IDT del formulario `{{AWS.Parameter.parameter_name}}` para buscar el parámetro con ese nombre en el almacén de parámetros. AWS 

   Por ejemplo, supongamos que quiere usar el parámetro `IDT-example-name` del paso 2 como HSM keyLabel en su configuración de HSM. Para ello, puede actualizar su `userdata.json` de la siguiente manera:

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

   IDT obtendrá el valor de este parámetro en el tiempo de ejecución que se configuró como `IDT-example-value` en el paso 2. Esta configuración es similar a la configuración, `"keyLabel": "IDT-example-value"` pero, en cambio, ese valor se almacena cifrado en la nube. AWS 