

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Defina as configurações de IDT para executar o pacote de AWS IoT Greengrass qualificação
<a name="set-config"></a>

Antes de executar os testes, você deve definir as configurações de AWS credenciais e dispositivos no computador host.

## Configurar AWS credenciais em config.json
<a name="cfg-aws-gg"></a>

Você deve configurar suas credenciais de usuário do IAM no arquivo `<device_tester_extract_location>/configs/config.json`. Use as credenciais do usuário IDT for AWS IoT Greengrass V2 criado em. [Crie e configure um Conta da AWS](dev-tst-prereqs.md#config-aws-account-for-idt) Você pode especificar suas credenciais de uma das seguintes formas:
+ Em um arquivo de credenciais
+ Como variáveis de ambiente

### Configurar AWS credenciais com um arquivo de credenciais
<a name="config-cred-file"></a>

O IDT usa o mesmo arquivo de credenciais que a AWS CLI. Para obter mais informações, consulte [Arquivos de configuração e credenciais](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

O local do arquivo de credenciais varia de acordo com o sistema operacional que você está usando:
+ macOS, Linux: `~/.aws/credentials`
+ Windows: `C:\Users\UserName\.aws\credentials`

Adicione suas AWS credenciais ao `credentials` arquivo no seguinte formato:

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

Para configurar o IDT para AWS IoT Greengrass V2 para usar AWS as credenciais do seu `credentials` arquivo, edite o arquivo da seguinte `config.json` forma:

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

**nota**  
Se você não usar o `default` AWS perfil, não se esqueça de alterar o nome do perfil no seu `config.json` arquivo. Para obter mais informações, consulte [Perfis nomeados](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).

### Configurar AWS credenciais com variáveis de ambiente
<a name="config-env-vars"></a>

As variáveis de ambiente são variáveis mantidas pelo sistema operacional e usadas pelos comandos do sistema. Elas não serão salvas se você fechar a sessão SSH. O IDT para AWS IoT Greengrass V2 pode usar as variáveis de `AWS_SECRET_ACCESS_KEY` ambiente `AWS_ACCESS_KEY_ID` e para armazenar suas AWS credenciais.

Para definir essas variáveis no Linux, macOS ou Unix, use :**export**

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

Para definir essas variáveis no Windows, use :**set**

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

Para configurar o IDT para usar as variáveis de ambiente, edite a seção `auth` no seu arquivo `config.json`. Exemplo:

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

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

**nota**  
O IDT v4.9.3 oferece suporte ao teste dos atributos `ml`, `docker` e `streamManagement`. O IDT v4.9.4 e versões mais recentes oferecem suporte ao teste do `docker`. Se você não quiser testar esses atributos, defina o valor correspondente como `no`.

Além das AWS credenciais, o IDT for AWS IoT Greengrass V2 precisa de informações sobre os dispositivos nos quais os testes são executados. As informações de exemplo são endereço IP, informações de login, sistema operacional e arquitetura da CPU.

Você deve fornecer essas informações usando o modelo `device.json` localizado em ` <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` somente se `method` estiver definido como `pki`.  
Especifique `password` somente se `method` estiver definido como `password`.

Todas as propriedades que contêm valores são obrigatórias, conforme descrito aqui:

`id`  
Um ID alfanumérico definido pelo usuário que identifica uma coleção de dispositivos chamada de *grupo de dispositivos*. Os dispositivos que pertencem a um grupo devem ter hardware idêntico. Quando um conjunto de testes é executado, os dispositivos do grupo são usados para paralelizar a workload. Vários dispositivos são usados para executar testes diferentes.

`sku`  
Um valor alfanumérico que identifica exclusivamente o dispositivo em teste. A SKU é usada para rastrear as placas qualificadas.  
Se você quiser listar seu dispositivo no Catálogo de AWS Partner dispositivos, o SKU especificado aqui deve corresponder ao SKU que você usa no processo de listagem.

`features`  
Uma matriz que contém atributos compatíveis com o dispositivo. Todos os atributos são obrigatórios.    
`arch`  
As arquiteturas de sistema operacional compatíveis que a execução do teste valida. Os valores válidos são:  
+ `x86_64`
+ `armv6l`
+ `armv7l`
+ `aarch64`  
`ml`  
<a name="description-ml"></a>Valida se o dispositivo atende a todas as dependências técnicas necessárias para usar os componentes de aprendizado AWS de máquina (ML) fornecidos.  
A ativação desse recurso também valida <a name="description-ml-inference-phrase"></a>que o dispositivo pode realizar inferência de ML usando as estruturas [Deep Learning Runtime](https://github.com/neo-ai/neo-ai-dlr) e [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) ML.  
Os valores válidos são qualquer combinação de `dlr` e `tensorflowlite` ou `no`.  
`docker`  
<a name="description-docker"></a>Valida se o dispositivo atende a todas as dependências técnicas necessárias para usar o componente Docker application manager () AWS fornecido. `aws.greengrass.DockerApplicationManager`  
A habilitação desse recurso também valida <a name="description-docker-app-manager-qual-phrase"></a>que o dispositivo pode fazer download de uma imagem de contêiner do Docker do Amazon ECR.  
Os valores válidos são qualquer combinação de `yes` ou `no`.  
`streamManagement`  
<a name="description-sm"></a>Valida que o dispositivo pode fazer download, instalar e executar o [Gerenciador de fluxos do AWS IoT Greengrass](manage-data-streams.md).  
Os valores válidos são qualquer combinação de `yes` ou `no`.  
`hsi`  
<a name="description-hsi"></a>Valida se o dispositivo pode autenticar conexões com os AWS IoT Greengrass serviços AWS IoT e usando uma chave privada e um certificado armazenados em um módulo de segurança de hardware (HSM). Esse teste também verifica se o [componente provedor PKCS \$111 AWS](pkcs11-provider-component.md) fornecido pode interagir com o HSM usando uma biblioteca PKCS \$111 fornecida pelo fornecedor. Para obter mais informações, consulte [Integração de segurança de hardware](hardware-security.md).  
Os valores válidos são `hsm` ou `no`.
O teste do `hsi` está disponível somente no IDT v4.9.3 e versões mais recentes.

`devices.id`  
Um identificador exclusivo, definido pelo usuário, para o dispositivo que está sendo testado.

`devices.operatingSystem`  
O sistema operacional do dispositivo. Os valores compatíveis são `Linux` e `Windows`.

`connectivity.protocol`  
O protocolo de comunicação usado para se comunicar com esse dispositivo. Para dispositivos físicos, o único valor com suporte no momento é `ssh`.

`connectivity.ip`  
O endereço IP do dispositivo que está sendo testado.  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.

`connectivity.port`  
Opcional. O número da porta usada nas conexões SSH.  
O valor padrão é 22.  
Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.

`connectivity.publicKeyPath`  
Opcional. O caminho completo para a chave pública usada para autenticar conexões com o dispositivo em teste.   
Ao especificar o `publicKeyPath`, o IDT valida a chave pública do dispositivo ao estabelecer uma conexão SSH com o dispositivo em teste. Se este valor não for especificado, o IDT cria uma conexão SSH, mas não valida a chave pública do dispositivo.   
É altamente recomendável especificar o caminho para a chave pública e use um método seguro para buscar essa chave pública. Para clientes SSH padrão baseados em linha de comando, a chave pública é fornecida no arquivo `known_hosts`. Se especificar um arquivo de chave pública separado, esse arquivo deverá usar o mesmo formato do arquivo `known_hosts` , ou seja, ` ip-address key-type public-key`. Se houver várias entradas com o mesmo endereço IP, a entrada referente ao tipo de chave usado pelo IDT deverá estar antes das outras entradas no arquivo.

`connectivity.auth`  
Informações de autenticação da conexão.  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.    
`connectivity.auth.method`  
O método de autenticação usado para acessar um dispositivo pelo protocolo de conectividade indicado.  
Os valores compatíveis são:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
As credenciais usadas para autenticação.    
`connectivity.auth.credentials.password`  
A senha usada para fazer login no dispositivo que está sendo testado.  
Esse valor se aplica somente se `connectivity.auth.method` estiver definido como `password`.  
`connectivity.auth.credentials.privKeyPath`  
O caminho completo para a chave privada usada para fazer login no dispositivo que está sendo testado.  
Esse valor se aplica somente se `connectivity.auth.method` estiver definido como `pki`.  
`connectivity.auth.credentials.user`  
O nome de usuário para fazer login no dispositivo que está sendo testado.

------
#### [ 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` somente se `method` estiver definido como `pki`.  
Especifique `password` somente se `method` estiver definido como `password`.

Todas as propriedades que contêm valores são obrigatórias, conforme descrito aqui:

`id`  
Um ID alfanumérico definido pelo usuário que identifica uma coleção de dispositivos chamada de *grupo de dispositivos*. Os dispositivos que pertencem a um grupo devem ter hardware idêntico. Quando um conjunto de testes é executado, os dispositivos do grupo são usados para paralelizar a workload. Vários dispositivos são usados para executar testes diferentes.

`sku`  
Um valor alfanumérico que identifica exclusivamente o dispositivo em teste. A SKU é usada para rastrear as placas qualificadas.  
Se você quiser listar seu dispositivo no Catálogo de AWS Partner dispositivos, o SKU especificado aqui deve corresponder ao SKU que você usa no processo de listagem.

`features`  
Uma matriz que contém atributos compatíveis com o dispositivo. Todos os atributos são obrigatórios.    
`arch`  
As arquiteturas de sistema operacional compatíveis que a execução do teste valida. Os valores válidos são:  
+ `x86_64`
+ `armv6l`
+ `armv7l`
+ `aarch64`  
`docker`  
<a name="description-docker"></a>Valida se o dispositivo atende a todas as dependências técnicas necessárias para usar o componente Docker application manager () AWS fornecido. `aws.greengrass.DockerApplicationManager`  
A habilitação desse recurso também valida <a name="description-docker-app-manager-qual-phrase"></a>que o dispositivo pode fazer download de uma imagem de contêiner do Docker do Amazon ECR.  
Os valores válidos são qualquer combinação de `yes` ou `no`.  
`hsi`  
<a name="description-hsi"></a>Valida se o dispositivo pode autenticar conexões com os AWS IoT Greengrass serviços AWS IoT e usando uma chave privada e um certificado armazenados em um módulo de segurança de hardware (HSM). Esse teste também verifica se o [componente provedor PKCS \$111 AWS](pkcs11-provider-component.md) fornecido pode interagir com o HSM usando uma biblioteca PKCS \$111 fornecida pelo fornecedor. Para obter mais informações, consulte [Integração de segurança de hardware](hardware-security.md).  
Os valores válidos são `hsm` ou `no`.
O teste do `hsi` está disponível somente no IDT v4.9.3 e versões mais recentes.

`devices.id`  
Um identificador exclusivo, definido pelo usuário, para o dispositivo que está sendo testado.

`devices.operatingSystem`  
O sistema operacional do dispositivo. Os valores compatíveis são `Linux` e `Windows`.

`connectivity.protocol`  
O protocolo de comunicação usado para se comunicar com esse dispositivo. Para dispositivos físicos, o único valor com suporte no momento é `ssh`.

`connectivity.ip`  
O endereço IP do dispositivo que está sendo testado.  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.

`connectivity.port`  
Opcional. O número da porta usada nas conexões SSH.  
O valor padrão é 22.  
Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.

`connectivity.publicKeyPath`  
Opcional. O caminho completo para a chave pública usada para autenticar conexões com o dispositivo em teste.   
Ao especificar o `publicKeyPath`, o IDT valida a chave pública do dispositivo ao estabelecer uma conexão SSH com o dispositivo em teste. Se este valor não for especificado, o IDT cria uma conexão SSH, mas não valida a chave pública do dispositivo.   
É altamente recomendável especificar o caminho para a chave pública e use um método seguro para buscar essa chave pública. Para clientes SSH padrão baseados em linha de comando, a chave pública é fornecida no arquivo `known_hosts`. Se especificar um arquivo de chave pública separado, esse arquivo deverá usar o mesmo formato do arquivo `known_hosts` , ou seja, ` ip-address key-type public-key`. Se houver várias entradas com o mesmo endereço IP, a entrada referente ao tipo de chave usado pelo IDT deverá estar antes das outras entradas no arquivo.

`connectivity.auth`  
Informações de autenticação da conexão.  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.    
`connectivity.auth.method`  
O método de autenticação usado para acessar um dispositivo pelo protocolo de conectividade indicado.  
Os valores compatíveis são:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
As credenciais usadas para autenticação.    
`connectivity.auth.credentials.password`  
A senha usada para fazer login no dispositivo que está sendo testado.  
Esse valor se aplica somente se `connectivity.auth.method` estiver definido como `password`.  
`connectivity.auth.credentials.privKeyPath`  
O caminho completo para a chave privada usada para fazer login no dispositivo que está sendo testado.  
Esse valor se aplica somente se `connectivity.auth.method` estiver definido como `pki`.  
`connectivity.auth.credentials.user`  
O nome de usuário para fazer login no dispositivo que está sendo testado.

------

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

O IDT for AWS IoT Greengrass V2 também precisa de informações adicionais sobre a localização dos artefatos e do software de teste. AWS IoT Greengrass 

Você deve fornecer essas informações usando o modelo `userdata.json` localizado em ` <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 as propriedades que contêm valores são obrigatórias, conforme descrito aqui:

`TempResourcesDirOnDevice`  
O caminho completo para uma pasta temporária no dispositivo em teste na qual armazenar os artefatos de teste. Certifique-se de que as permissões sudo não sejam obrigatórias para gravar nesse diretório.   
O IDT exclui o conteúdo dessa pasta quando termina de executar um teste.

`InstallationDirRootOnDevice`  
O caminho completo para uma pasta no dispositivo em que o AWS IoT Greengrass será instalado. Para o PreInstalled Greengrass, esse é o caminho para o diretório de instalação do Greengrass.  
Você deve definir as permissões de arquivo necessárias para essa pasta. Execute o comando a seguir para cada pasta no caminho de instalação.  

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

`GreengrassNucleusZip`  
O caminho completo para o arquivo ZIP (`greengrass-nucleus-latest.zip`) do núcleo do Greengrass em seu computador host. Esse campo não é obrigatório para testes com o PreInstalled Greengrass.  
Para obter informações sobre as versões suportadas do núcleo Greengrass para IDT for, consulte. AWS IoT Greengrass[Versão mais recente do IDT para AWS IoT Greengrass V2](dev-test-versions.md#idt-latest-version) Para baixar o software Greengrass mais recente, consulte [Baixar o AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html#config-gg) software.

`PreInstalled`  
Esse recurso está disponível somente para o IDT v4.5.8 e versões mais recentes em dispositivos Linux.  
(Opcional) Quando o valor for*yes*, o IDT assumirá que o caminho mencionado em `InstallationDirRootOnDevice` é o diretório em que o Greengrass está instalado.  
Para obter informações sobre como instalar o Greengrass em seu dispositivo, consulte [Instale o software AWS IoT Greengrass principal com provisionamento automático de recursos](quick-installation.md). Se estiver [instalando com provisionamento manual](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html), inclua a etapa “Adicionar a AWS IoT coisa a um grupo de coisas novo ou existente” ao criar uma [AWS IoT coisa](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html#create-iot-thing) manualmente. O IDT assume que o item e o grupo de itens foram criados durante a configuração da instalação. Certifique-se de que esses valores sejam refletidos no arquivo `effectiveConfig.yaml`. O IDT verifica o arquivo `effectiveConfig.yaml` em `<InstallationDirRootOnDevice>/config/effectiveConfig.yaml`.  
Para executar testes com o HSM, certifique-se de que o campo `aws.greengrass.crypto.Pkcs11Provider` esteja atualizado em `effectiveConfig.yaml`.

  `GreengrassV2TokenExchangeRole`  
(Opcional) O perfil do IAM personalizado que você deseja usar como perfil de troca de tokens que o dispositivo em teste adota para interagir com os recursos da AWS .   
O IDT usa esse perfil do IAM personalizado em vez de criar o perfil padrão de troca de tokens durante a execução do teste. Se você usar um perfil personalizado, poderá atualizar as [permissões do IAM do usuário de teste](dev-tst-prereqs.md#configure-idt-permissions) para excluir a declaração `iamResourcesUpdate` que permite ao usuário criar e excluir perfis e políticas do IAM. 
Para obter mais informações sobre como criar um perfil do IAM como perfil de troca de tokens, consulte [Configurar um perfil personalizado de troca de tokens](device-config-setup.md#configure-custom-tes-role-for-idt).

`hsm`  
Esse recurso está disponível para o IDT v4.5.1 e posterior.  
(Opcional) As informações de configuração para testes com um módulo de segurança de hardware (HSM) do AWS IoT Greengrass . Caso contrário, a propriedade `hsm` deve ser omitida. Para obter mais informações, consulte [Integração de segurança de hardware](hardware-security.md).  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.  
A configuração do HSM poderá ser considerada dados sigilosos se o módulo de segurança de hardware for compartilhado entre o IDT e outro sistema. Nessa situação, você pode evitar proteger esses valores de configuração em texto simples armazenando-os em um AWS parâmetro do Parameter Store SecureString e configurando o IDT para buscá-los durante a execução do teste. Para obter mais informações, consulte [Obter configuração do AWS Parameter Store](#fetch-config).  
`hsm.greengrassPkcsPluginJar`  
O caminho completo para o [componente provedor PKCS\$111](pkcs11-provider-component.md) do qual você faz download para a máquina host do IDT. O AWS IoT Greengrass fornece esse componente como arquivo JAR, que pode ser baixado para especificar como plug-in de provisionamento durante a instalação. Você pode baixar a versão mais recente do arquivo JAR do componente na seguinte 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`  
O caminho completo para a biblioteca PKCS\$111 do fornecedor do módulo de segurança de hardware (HSM) para interagir com o HSM.  
`hsm.slotId`  
O ID do slot usado para identificar o slot do HSM no qual você carrega a chave e o certificado.  
`hsm.slotLabel`  
O rótulo do slot usado para identificar o slot do HSM no qual você carrega a chave e o certificado.  
`hsm.slotUserPin`  
O PIN do usuário que o IDT usa para autenticar o software AWS IoT Greengrass Core no HSM.  
Como prática recomendada de segurança, não use o mesmo PIN de usuário em dispositivos de produção.  
`hsm.keyLabel`  
O rótulo usado para identificar a chave no módulo de hardware. Tanto a chave quanto o certificado devem usar o mesmo rótulo de chave.  
`hsm.preloadedCertificateArn`  
O nome do recurso da Amazon (ARN) do certificado do dispositivo carregado na nuvem do AWS IoT .  
Você deve ter gerado esse certificado anteriormente usando a chave no HSM, importado para o HSM e carregado na AWS IoT nuvem. Para obter informações sobre como gerar e importar o certificado, consulte a documentação do HSM.  
Você deve fazer upload do certificado para a mesma conta e região especificadas em [config.json](#cfg-aws-gg). Para obter mais informações sobre como fazer o upload do seu certificado para AWS IoT, consulte [Registrar um certificado de cliente manualmente](https://docs.aws.amazon.com/iot/latest/developerguide/manual-cert-registration.html) no *Guia do AWS IoT desenvolvedor*.  
`hsm.rootCAPath`  
(Opcional) O caminho completo na máquina host do IDT para a autoridade de certificação (CA) raiz que assinou seu certificado. Ele será necessário se o certificado criado no HSM não for assinado pela CA raiz da Amazon.

## Obter configuração do AWS Parameter Store
<a name="fetch-config"></a>

AWS IoT O Device Tester (IDT) inclui um recurso opcional para buscar valores de configuração do [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html). AWS O Parameter Store permite o armazenamento seguro e criptografado das configurações. Quando configurado, o IDT pode buscar AWS parâmetros do Parameter Store em vez de armazenar parâmetros em texto simples dentro do arquivo. `userdata.json` Esse recurso é útil para dados sigilosos que devem ser armazenados com criptografia, como senhas, PINs e outros segredos.

1. Para usar esse recurso, você deve atualizar as permissões usadas na criação [do usuário do IDT](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html) para permitir a GetParameter ação nos parâmetros que o IDT está configurado para usar. Veja abaixo um exemplo de declaração de permissão que pode ser adicionada ao usuário do IDT. Para obter mais informações, consulte o [Guia do usuário do 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*"
   }
   ```

   A permissão acima está configurada para obter todos os parâmetros que tenham um nome que começa com `IDT`, usando o caractere curinga `*`. Você deve personalizá-la de acordo com as suas necessidades para que o IDT tenha acesso para obter todos os parâmetros configurados com base na nomenclatura dos parâmetros que está sendo usada.

1. Você precisa armazenar seus valores de configuração dentro do AWS Paramater Store. Isso pode ser feito no AWS console ou na AWS CLI. AWS O Parameter Store permite que você escolha entre armazenamento criptografado e não criptografado. Para armazenar valores confidenciais, como segredos, senhas e pinos, você deve usar a opção criptografada, que é um tipo de parâmetro de SecureString. Para carregar um parâmetro usando a AWS CLI, você pode usar o seguinte comando:

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

   Você pode verificar se um parâmetro está armazenado usando o comando a seguir. (Opcional) Use o `--with-decryption` sinalizador para buscar um parâmetro descriptografadoSecureString .

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

   O uso da AWS CLI carregará o parâmetro na AWS região do usuário atual da CLI e o IDT buscará os parâmetros da região configurada em. `config.json` Para verificar sua região por meio da CLI da AWS , use o seguinte:

   ```
   aws configure get region
   ```

1. Depois de ter um valor de configuração na AWS nuvem, você pode atualizar qualquer valor dentro da configuração do IDT para buscá-lo na AWS nuvem. Para fazer isso, use um espaço reservado na configuração do IDT do formulário `{{AWS.Parameter.parameter_name}}` para buscar o parâmetro com esse nome no Parameter Store. AWS 

   Por exemplo, suponha que você queira usar o parâmetro `IDT-example-name` da Etapa 2 como o keyLabel do HSM na configuração do HSM. Para fazer isso, você pode atualizar o `userdata.json` da seguinte forma:

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

   O IDT obtém o valor desse parâmetro em runtime que foi definido como `IDT-example-value` na Etapa 2. Essa configuração é semelhante à configuração, `"keyLabel": "IDT-example-value"` mas, em vez disso, esse valor é armazenado como criptografado na AWS nuvem.