

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

# Proteção de dados em AWS IoT Greengrass
<a name="data-protection"></a>

O modelo de [responsabilidade AWS compartilhada modelo](https://aws.amazon.com/compliance/shared-responsibility-model/) se aplica à proteção de dados em AWS IoT Greengrass. Conforme descrito neste modelo, AWS é responsável por proteger a infraestrutura global que executa todos os Nuvem AWS. Você é responsável por manter o controle sobre o conteúdo hospedado nessa infraestrutura. Você também é responsável pelas tarefas de configuração e gerenciamento de segurança dos Serviços da AWS que usa. Para saber mais sobre a privacidade de dados, consulte as [Data Privacy FAQ](https://aws.amazon.com/compliance/data-privacy-faq/). Para saber mais sobre a proteção de dados na Europa, consulte a postagem do blog [AWS Shared Responsibility Model and RGPD](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) no *Blog de segurança da AWS *.

Para fins de proteção de dados, recomendamos que você proteja Conta da AWS as credenciais e configure usuários individuais com Centro de Identidade do AWS IAM ou AWS Identity and Access Management (IAM). Dessa maneira, cada usuário receberá apenas as permissões necessárias para cumprir suas obrigações de trabalho. Recomendamos também que você proteja seus dados das seguintes formas:
+ Use uma autenticação multifator (MFA) com cada conta.
+ Use SSL/TLS para se comunicar com AWS os recursos. Exigimos TLS 1.2 e recomendamos TLS 1.3.
+ Configure a API e o registro de atividades do usuário com AWS CloudTrail. Para obter informações sobre o uso de CloudTrail trilhas para capturar AWS atividades, consulte Como [trabalhar com CloudTrail trilhas](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) no *Guia AWS CloudTrail do usuário*.
+ Use soluções de AWS criptografia, juntamente com todos os controles de segurança padrão Serviços da AWS.
+ Use serviços gerenciados de segurança avançada, como o Amazon Macie, que ajuda a localizar e proteger dados sensíveis armazenados no Amazon S3.
+ Se você precisar de módulos criptográficos validados pelo FIPS 140-3 ao acessar AWS por meio de uma interface de linha de comando ou de uma API, use um endpoint FIPS. Para saber mais sobre os endpoints FIPS disponíveis, consulte [Federal Information Processing Standard (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

É altamente recomendável que nunca sejam colocadas informações confidenciais ou sensíveis, como endereços de e-mail de clientes, em tags ou campos de formato livre, como um campo **Nome**. Isso inclui quando você trabalha com AWS IoT Greengrass ou Serviços da AWS usa o console, a API ou AWS SDKs. AWS CLI Quaisquer dados inseridos em tags ou em campos de texto de formato livre usados para nomes podem ser usados para logs de faturamento ou de diagnóstico. Se você fornecer um URL para um servidor externo, é fortemente recomendável que não sejam incluídas informações de credenciais no URL para validar a solicitação nesse servidor.

Para obter mais informações sobre como proteger informações confidenciais em AWS IoT Greengrass, consulte[Não registrar em log informações confidenciais](security-best-practices.md#protect-pii).

Consulte mais informações sobre proteção de dados na publicação do blog [AWS Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) no *Blog de segurança da AWS *.

**Topics**
+ [Criptografia de dados](data-encryption.md)
+ [Integração de segurança de hardware](hardware-security.md)

# Criptografia de dados
<a name="data-encryption"></a>

AWS IoT Greengrass usa criptografia para proteger os dados em trânsito (pela Internet ou rede local) e em repouso (armazenados na Nuvem AWS).

Os dispositivos em um AWS IoT Greengrass ambiente geralmente coletam dados que são enviados aos AWS serviços para processamento adicional. Para obter mais informações sobre criptografia de dados em outros AWS serviços, consulte a documentação de segurança desse serviço.

**Topics**
+ [Criptografia em trânsito](encryption-in-transit.md)
+ [Criptografia em repouso](encryption-at-rest.md)
+ [Gerenciamento de chaves para o dispositivo de núcleo do Greengrass](key-management.md)

# Criptografia em trânsito
<a name="encryption-in-transit"></a>

O AWS IoT Greengrass tem dois modos de comunicação em que os dados estão em trânsito:
+ [Dados em trânsito pela Internet](#data-in-transit-internet). A comunicação entre um núcleo do Greengrass e o AWS IoT Greengrass através da internet é criptografada.
+ [Dados no dispositivo de núcleo](#data-in-transit-locally). A comunicação entre componentes no dispositivo de núcleo do Greengrass não é criptografada.

## Dados em trânsito pela Internet
<a name="data-in-transit-internet"></a>

AWS IoT GreengrassO usa Transport Layer Security (TLS) para criptografar todas as comunicações por meio da Internet. Todos os dados enviados para a Nuvem AWS são enviados por meio de uma conexão TLS usando protocolos MQTT ou HTTPS e, portanto, são seguros por padrão. O AWS IoT Greengrass usa o modelo de segurança de transporte da AWS IoT. Para obter mais informações, consulte [Segurança de transporte](https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html) no *Guia do desenvolvedor do AWS IoT Core*.

## Dados no dispositivo de núcleo
<a name="data-in-transit-locally"></a>

AWS IoT GreengrassO não criptografa dados trocados localmente no dispositivo de núcleo do Greengrass porque os dados não saem do dispositivo. Isso inclui a comunicação entre componentes definidos pelo usuário, SDK do dispositivo da AWS IoT e componentes públicos, como o gerenciador de fluxos.

# Criptografia em repouso
<a name="encryption-at-rest"></a>

AWS IoT GreengrassO armazena seus dados:
+ [Dados em repouso na Nuvem AWS](#data-at-rest-cloud). Esses dados são criptografados.
+ [Dados em repouso sobre o núcleo do Greengrass](#data-at-rest-device). Esses dados não são criptografados (exceto cópias locais de seus segredos).

## Dados em repouso na Nuvem AWS
<a name="data-at-rest-cloud"></a>

O AWS IoT Greengrass criptografa os dados do cliente armazenados na Nuvem AWS. Esses dados são protegidos usando chaves AWS KMS gerenciadas pelo AWS IoT Greengrass.

## Dados em repouso sobre o núcleo do Greengrass
<a name="data-at-rest-device"></a>

AWS IoT GreengrassO depende de permissões de arquivo Unix e da criptografia do disco inteiro (se habilitada) para proteger dados em repouso no núcleo. É sua responsabilidade proteger o sistema de arquivos e o dispositivo.

No entanto, o AWS IoT Greengrass não criptografa cópias locais de seus segredos recuperados do AWS Secrets Manager. Para mais informações, consulte o componente do [gerenciador de segredos](secret-manager-component.md).

# Gerenciamento de chaves para o dispositivo de núcleo do Greengrass
<a name="key-management"></a>

É responsabilidade do cliente garantir o armazenamento seguro de chaves criptográficas (públicas e privadas) no dispositivo principal do Greengrass. O AWS IoT Greengrass usa chaves públicas e privadas para os seguintes cenários:
+ A chave de cliente da IoT é usada com o certificado IoT para autenticar o handshake do Transport Layer Security (TLS) quando um núcleo do Greengrass se conecta ao AWS IoT Core. Para obter mais informações, consulte [Autenticação e autorização de dispositivos para AWS IoT Greengrass](device-auth.md).
**nota**  
A chave e o certificado também são conhecidos como a chave privada do núcleo e o certificado do dispositivo do núcleo.

Um dispositivo central do Greengrass oferece suporte ao armazenamento de chaves privadas usando permissões do sistema de arquivos ou um [módulo de segurança de hardware](hardware-security.md). Se você usar chaves privadas baseadas no sistema de arquivos, você será responsável por seu armazenamento seguro no dispositivo de núcleo.

# Integração de segurança de hardware
<a name="hardware-security"></a>

**nota**  
[Esse recurso está disponível para a versão 2.5.3 e posterior do componente núcleo do Greengrass.](greengrass-nucleus-component.md) AWS IoT Greengrass atualmente não oferece suporte a esse recurso nos dispositivos principais do Windows. 

Você pode configurar o software AWS IoT Greengrass Core para usar um módulo de segurança de hardware (HSM) por meio da interface [PKCS \$111](https://en.wikipedia.org/wiki/PKCS_11). Esse recurso permite que você armazene com segurança a chave privada e o certificado do dispositivo para que eles não sejam expostos ou duplicados no software. É possível armazenar a chave privada e o certificado em um módulo de hardware, como um HSM ou um Trusted Platform Module (TPM – Módulo de plataforma confiável).

O software AWS IoT Greengrass Core usa uma chave privada e um certificado X.509 para autenticar conexões com os serviços e. AWS IoT AWS IoT Greengrass O [componente gerenciador de segredos](secret-manager-component.md) usa essa chave privada para criptografar e descriptografar com segurança os segredos que você implanta em um dispositivo principal do Greengrass. Quando você configura um dispositivo principal para usar um HSM, esses componentes usam a chave privada e o certificado que você armazena no HSM.

O [componente de agente Moquette MQTT](mqtt-broker-moquette-component.md) também armazena uma chave privada para seu certificado de servidor MQTT local. Esse componente armazena a chave privada no sistema de arquivos do dispositivo na pasta de trabalho do componente. Atualmente, AWS IoT Greengrass não é compatível com o armazenamento dessa chave privada ou certificado em um HSM.

**dica**  
Pesquise dispositivos compatíveis com esse recurso no [Catálogo de dispositivos de parceiros da AWS](https://devices.amazonaws.com/search?kw=%22HSI%22&page=1).

**Topics**
+ [Requisitos](#hardware-security-requirements)
+ [Práticas recomendadas de segurança de hardware](#hardware-security-best-practices)
+ [Instale o software AWS IoT Greengrass Core com segurança de hardware](#install-with-hardware-security)
+ [Configurar a segurança do hardware em um dispositivo principal existente](#enable-hardware-security)
+ [usar hardware sem suporte a PKCS\$111](#hardware-without-pkcs11)
+ [Consulte também](#hardware-security-see-also)

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

É necessário atender aos seguintes requisitos para usar um HSM em um dispositivo Greengrass principal:
+ [Greengrass nucleus](greengrass-nucleus-component.md) v2.5.3 ou posterior instalado no dispositivo principal. Você pode escolher uma versão compatível ao instalar o software AWS IoT Greengrass Core em um dispositivo principal.
+ O [componente do provedor PKCS\$111](pkcs11-provider-component.md) instalado no dispositivo principal. Você pode baixar e instalar esse componente ao instalar o software AWS IoT Greengrass Core em um dispositivo principal.
+ <a name="hardware-security-module-requirements-key"></a>Um módulo de segurança de hardware que suporta o esquema de assinatura [PKCS\$11 v1.5](https://tools.ietf.org/html/rfc2313) e chaves RSA com tamanho de chave RSA-2048 (ou maior) ou chaves ECC.
**nota**  <a name="hardware-security-module-requirements-key-notes"></a>
Para usar um módulo de segurança de hardware com chaves ECC, use o [Greengrass nucleus](greengrass-nucleus-component.md) v2.5.6 ou posterior.  
Para usar um módulo de segurança de hardware e um [gerenciador de segredos](secret-manager-component.md), use um módulo de segurança de hardware com chaves RSA.
+ <a name="hardware-security-module-requirements-pkcs11-provider-library"></a>Uma biblioteca do provedor PKCS \$111 que o software AWS IoT Greengrass Core pode carregar em tempo de execução (usando libdl) para invocar as funções do PKCS \$111. A biblioteca do provedor PKCS\$111 deve implementar as operações de API do PKCS\$111 a seguir:
  + `C_Initialize`
  + `C_Finalize`
  + `C_GetSlotList`
  + `C_GetSlotInfo`
  + `C_GetTokenInfo`
  + `C_OpenSession`
  + `C_GetSessionInfo`
  + `C_CloseSession`
  + `C_Login`
  + `C_Logout`
  + `C_GetAttributeValue`
  + `C_FindObjectsInit`
  + `C_FindObjects`
  + `C_FindObjectsFinal`
  + `C_DecryptInit`
  + `C_Decrypt`
  + `C_DecryptUpdate`
  + `C_DecryptFinal`
  + `C_SignInit`
  + `C_Sign`
  + `C_SignUpdate`
  + `C_SignFinal`
  + `C_GetMechanismList`
  + `C_GetMechanismInfo`
  + `C_GetInfo`
  + `C_GetFunctionList`
+ <a name="hardware-security-module-requirements-slot-label"></a>O módulo de hardware deve ser solucionado pelo rótulo do slot, conforme definido na especificação PKCS\$111.
+ <a name="hardware-security-module-requirements-private-key-and-certificate"></a>Você deve armazenar a chave privada e o certificado no HSM no mesmo slot, e eles devem usar o mesmo rótulo de objeto e ID de objeto, se o HSM suportar objetos. IDs
+ <a name="hardware-security-module-requirements-object-label"></a>O certificado e a chave privada devem ser resolvidos por rótulos de objeto.
+ <a name="hardware-security-module-requirements-private-key-permissions"></a>A chave privada deve ter as seguintes permissões:
  + `sign`
  + `decrypt`
+ <a name="hardware-security-module-requirements-secret-manager-permissions"></a>(Opcional) Para usar o [componente gerenciador de segredos](secret-manager-component.md), é necessário usar a versão 2.1.0 ou posterior, e a chave privada deve ter as seguintes permissões:
  + `unwrap`
  + `wrap`

## Práticas recomendadas de segurança de hardware
<a name="hardware-security-best-practices"></a>

Pense nas seguintes práticas recomendadas ao configurar a segurança do hardware nos dispositivos principais do Greengrass.
+ Gerar chaves privadas diretamente no HSM usando o hardware interno gerador de número aleatório. Essa abordagem é mais segura do que importar uma chave privada que você gera em outro lugar, porque a chave privada permanece dentro do HSM.
+ Configure as chaves privadas para que sejam imutáveis e proíba a exportação.
+ Use a ferramenta de provisionamento recomendada pelo fornecedor de hardware do HSM para gerar uma solicitação de assinatura de certificado (CSR) usando a chave privada protegida por hardware e, em seguida, use o console ou a API para gerar um certificado de cliente. AWS IoT 

**nota**  
A prática recomendada de segurança de rodízio de chaves não se aplica quando você gera chaves privadas em um HSM.

## Instale o software AWS IoT Greengrass Core com segurança de hardware
<a name="install-with-hardware-security"></a>

Ao instalar o software AWS IoT Greengrass Core, você pode configurá-lo para usar uma chave privada gerada em um HSM. Essa abordagem segue a [prática recomendada de segurança](#hardware-security-best-practices) para gerar a chave privada no HSM, de forma que a chave privada permaneça dentro do HSM.

Para instalar o software AWS IoT Greengrass Core com segurança de hardware, faça o seguinte:

1. Gere uma chave privada no HSM

1. Crie uma Certificate Signing Request (CSR – Solicitação de assinatura de certificado) a partir da chave privada.

1. Crie um certificado da CSR. Você pode criar um certificado assinado por AWS IoT ou por outra autoridade de certificação (CA) raiz. Para obter mais informações sobre como usar outra CA raiz, consulte [Criar seus próprios certificados de cliente](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html) no *Guia do desenvolvedor do AWS IoT Core *.

1. Baixe o AWS IoT certificado e importe-o para o HSM.

1. Instale o software AWS IoT Greengrass Core a partir de um arquivo de configuração que especifica o uso do componente provedor PKCS \$111 e da chave privada e do certificado no HSM.

Você pode escolher uma das seguintes opções de instalação para instalar o software AWS IoT Greengrass Core com segurança de hardware:
+ **Instalação manual**

  Escolha essa opção para criar manualmente os AWS recursos necessários e configurar a segurança do hardware. Para obter mais informações, consulte [Instale o software AWS IoT Greengrass principal com provisionamento manual de recursos](manual-installation.md).
+ **Instalação com provisionamento personalizado**

  Escolha essa opção para desenvolver um aplicativo Java personalizado que cria automaticamente os AWS recursos necessários e configura a segurança do hardware. Para obter mais informações, consulte [Instale o software AWS IoT Greengrass principal com provisionamento personalizado de recursos](custom-provisioning.md).

Atualmente, AWS IoT Greengrass não oferece suporte à instalação do software AWS IoT Greengrass Core com segurança de hardware quando você [instala com provisionamento automático de recursos ou provisionamento de AWS IoT](quick-installation.md) [frota](fleet-provisioning.md).

## Configurar a segurança do hardware em um dispositivo principal existente
<a name="enable-hardware-security"></a>

É possível importar a chave privada e o certificado de um dispositivo principal para um HSM para configurar a segurança do hardware.

**Considerações**  
É necessário ter acesso root ao sistema de arquivos do dispositivo principal.
Neste procedimento, você desliga o software AWS IoT Greengrass Core para que o dispositivo principal fique off-line e indisponível enquanto você configura a segurança do hardware.

Para configurar a segurança do hardware em um dispositivo principal existente, faça o seguinte:

1. Inicializar o HSM

1. Implante o [componente do provedor PKCS\$111](pkcs11-provider-component.md) no dispositivo principal.

1. Pare o software AWS IoT Greengrass principal.

1. Importe a chave privada e o certificado do dispositivo principal para o HSM.

1. Atualize o arquivo de configuração do software AWS IoT Greengrass principal para usar a chave privada e o certificado no HSM.

1. Inicie o software AWS IoT Greengrass principal.

### Etapa 1: inicializar o módulo de segurança do hardware
<a name="enable-hardware-security-initialize-hsm"></a>

Conclua a etapa a seguir para inicializar o HSM em seu dispositivo principal.

**Para inicializar o módulo de segurança de hardware**
+ Inicialize um token PKCS\$111 no HSM e salve o ID do slot e o PIN do usuário para o token. Consulte a documentação do HSM para aprender a inicializar um token. Você usa o ID do slot e o PIN do usuário posteriormente ao implantar e configurar o componente provedor PKCS\$111.

### Etapa 2: implantar o componente do provedor PKCS\$111
<a name="enable-hardware-security-deploy-pkcs11-provider"></a>

Conclua as etapas a seguir para implantar e configurar o [componente provedor PKCS\$111](pkcs11-provider-component.md). É possível implantar o componente em um ou mais dispositivos principais.

#### Para implantar o componente do provedor PKCS\$111 (console)
<a name="deploy-pkcs11-provider-component-console"></a>

1. No menu de navegação do [console do AWS IoT Greengrass](https://console.aws.amazon.com/greengrass), selecione **Componentes**.

1. Na página **Componentes**, escolha a guia **Componentes públicos** e **aws.greengrass.crypto.Pkcs11Provider**.

1. Na página **aws.greengrass.crypto.Pkcs11Provider**, escolha **Implantar**.

1. <a name="deploy-component-choose-deployment-step"></a>Em **Adicionar à implantação**, escolha uma implantação existente para revisar ou opte por criar uma nova e, em seguida, escolha **Avançar**.

1. <a name="deploy-component-choose-target-step"></a>Se você criar uma nova implantação, escolha o dispositivo principal ou grupo de objetos de destino para ela. Na página **Especificar destino**, em **Destino de implantação**, escolha um dispositivo principal ou grupo de itens e, em seguida, escolha **Avançar**.

1. Na página **Selecionar componentes**, em **Componentes públicos**, selecione **aws.greengrass.crypto.Pkcs11Provider** e escolha **Avançar**.

1. Na página **Configurar componentes**, selecione **aws.greengrass.crypto.Pkcs11Provider** e faça o seguinte:

   1. Escolha **Configurar componente**.

   1. No modal **Configurar aws.greengrass.crypto.Pkcs11Provider**, em **Atualização de configuração**, em **Configuração para mesclar**, insira a seguinte atualização de configuração. Atualize os seguintes parâmetros de configuração com valores para os dispositivos principais de destino. Especifique o ID do slot e o PIN do usuário em que você inicializou o token PKCS\$111 anteriormente. Posteriormente, você importa a chave privada e o certificado para esse slot no HSM.<a name="pkcs11-provider-component-configuration-parameters"></a>  
`name`  
Um nome para a configuração de PKCS\$111.  
`library`  
O caminho absoluto do arquivo para a biblioteca da implementação do PKCS \$111 que o software AWS IoT Greengrass Core pode carregar com libdl.  
`slot`  
O ID do slot que contém a chave privada e o certificado do dispositivo. Esse valor é diferente do índice do slot ou do rótulo do slot.  
`userPin`  
O PIN do usuário a ser usado para acessar o slot.

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

   1. Escolha **Confirmar** para fechar o modal e, em seguida, escolha **Avançar**.

1. <a name="deploy-component-configure-advanced-settings-step"></a>Na página **Definir configurações avançadas**, mantenha as configurações padrão e escolha **Avançar**.

1. <a name="deploy-component-review-and-deploy-step"></a>Na página **Pré-visualizar**, escolha **Implantar**.

   A implantação pode levar até um minuto para ser concluída.

#### Para implantar o componente do provedor PKCS\$111 (AWS CLI)
<a name="deploy-pkcs11-provider-component-cli"></a>

Para implantar o componente do provedor PKCS\$111, crie um documento de implantação que inclua `aws.greengrass.crypto.Pkcs11Provider` no objeto `components` e especifique a atualização de configuração do componente. Siga as instruções em [Criar implantações](create-deployments.md) para criar uma nova implantação ou revisar uma existente.

O exemplo de documento de implantação parcial a seguir especifica a implantação e a configuração do componente provedor PKCS\$111. Atualize os seguintes parâmetros de configuração com valores para os dispositivos principais de destino. Salve o ID do slot e o PIN do usuário para usar posteriormente ao importar a chave privada e o certificado para o HSM.<a name="pkcs11-provider-component-configuration-parameters"></a>

`name`  
Um nome para a configuração de PKCS\$111.

`library`  
O caminho absoluto do arquivo para a biblioteca da implementação do PKCS \$111 que o software AWS IoT Greengrass Core pode carregar com libdl.

`slot`  
O ID do slot que contém a chave privada e o certificado do dispositivo. Esse valor é diferente do índice do slot ou do rótulo do slot.

`userPin`  
O PIN do usuário a ser usado para acessar o slot.

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

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

A implantação pode levar vários minutos para ser concluída. Você pode usar o AWS IoT Greengrass serviço para verificar o status da implantação. Você pode verificar os registros do software AWS IoT Greengrass principal para verificar se o componente do provedor PKCS \$111 foi implantado com êxito. Para saber mais, consulte:
+ [Verificar o status da implantação](check-deployment-status.md)
+ [Monitore AWS IoT Greengrass logs](monitor-logs.md)

Se a implantação falhar, você pode solucionar o problema de implantação em cada dispositivo principal. Para obter mais informações, consulte [Solução de problemas AWS IoT Greengrass V2](troubleshooting.md).

### Etapa 3: atualizar a configuração no dispositivo principal
<a name="enable-hardware-security-configure-core-device"></a>

O software AWS IoT Greengrass Core usa um arquivo de configuração que especifica como o dispositivo opera. Esse arquivo de configuração inclui onde encontrar a chave privada e o certificado que o dispositivo usa para se conectar à Nuvem AWS. Conclua as etapas a seguir para importar a chave privada e o certificado do dispositivo principal para o HSM e atualizar o arquivo de configuração para usar o HSM.

**Para atualizar a configuração no dispositivo principal para usar a segurança de hardware**

1. Pare o software AWS IoT Greengrass principal. Se você [configurou o software AWS IoT Greengrass Core como um serviço do sistema](configure-greengrass-core-v2.md#configure-system-service) com o systemd, você pode executar o comando a seguir para interromper o software.

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

1. Localize a chave privada e os arquivos de certificado do dispositivo principal.
   + Se você instalou o software AWS IoT Greengrass Core com [provisionamento automático ou provisionamento](quick-installation.md) [de frota](fleet-provisioning.md), a chave privada existe em`/greengrass/v2/privKey.key`, e o certificado existe em. `/greengrass/v2/thingCert.crt`
   + Se você instalou o software AWS IoT Greengrass Core com [provisionamento manual](manual-installation.md), a chave privada existe `/greengrass/v2/private.pem.key` por padrão e o certificado existe `/greengrass/v2/device.pem.crt` por padrão.

   Você também pode verificar as propriedades `system.privateKeyPath` e `system.certificateFilePath` no `/greengrass/v2/config/effectiveConfig.yaml` para encontrar a localização desses arquivos.

1. Importe a chave privada e o certificado para o HSM. Consulte a documentação do HSM para saber como importar chaves privadas e certificados para ele. Importe a chave privada e o certificado usando o ID do slot e o PIN do usuário em que você inicializou o token PKCS\$111 anteriormente. É necessário usar o mesmo rótulo de objeto e ID de objeto para a chave privada e o certificado. Salve o rótulo do objeto que você especifica ao importar cada arquivo. Você usa esse rótulo posteriormente ao atualizar a configuração do software AWS IoT Greengrass principal para usar a chave privada e o certificado no HSM.

1. Atualize a configuração AWS IoT Greengrass principal para usar a chave privada e o certificado no HSM. Para atualizar a configuração, você modifica o arquivo de configuração AWS IoT Greengrass principal e executa o software AWS IoT Greengrass principal com o arquivo de configuração atualizado para aplicar a nova configuração.

   Faça o seguinte:

   1. Crie um backup do arquivo de configuração AWS IoT Greengrass principal. É possível usar esse backup para restaurar o dispositivo principal se tiver problemas ao configurar a segurança do hardware.

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

   1. Abra o arquivo de configuração AWS IoT Greengrass principal em um editor de texto. Por exemplo, você pode executar o seguinte comando para usar o GNU nano para editar o arquivo. Substitua `/greengrass/v2` pelo caminho para a pasta raiz do Greengrass.

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

   1. Substitua o valor do `system.privateKeyPath` pelo URI PKCS\$111 para a chave privada no HSM. *iotdevicekey*Substitua pelo rótulo do objeto em que você importou a chave privada e o certificado anteriormente.

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

   1. Substitua o valor do `system.certificateFilePath` pelo URI PKCS\$111 para o certificado no HSM. *iotdevicekey*Substitua pelo rótulo do objeto em que você importou a chave privada e o certificado anteriormente.

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

   Depois de concluir essas etapas, a `system` propriedade no arquivo de configuração AWS IoT Greengrass principal deve ser semelhante ao exemplo a seguir.

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

1. Aplique a configuração no arquivo `effectiveConfig.yaml` atualizado. Execute `Greengrass.jar` com o parâmetro `--init-config` no qual aplicar a configuração em `effectiveConfig.yaml`. Substitua `/greengrass/v2` pelo caminho para a pasta raiz do Greengrass.

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

1. Inicie o software AWS IoT Greengrass principal. Se você [configurou o software AWS IoT Greengrass Core como um serviço do sistema](configure-greengrass-core-v2.md#configure-system-service) com o systemd, você pode executar o comando a seguir para iniciar o software.

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

   Para obter mais informações, consulte [Execute o software AWS IoT Greengrass Core](run-greengrass-core-v2.md).

1. Verifique os registros do software AWS IoT Greengrass principal para verificar se o software é iniciado e se conecta ao Nuvem AWS. O software AWS IoT Greengrass Core usa a chave privada e o certificado para se conectar aos AWS IoT Greengrass serviços AWS IoT e.

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

   As seguintes mensagens de registro em nível de informação indicam que o software AWS IoT Greengrass Core se conecta com êxito aos serviços AWS IoT e. AWS IoT Greengrass 

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

1. (Opcional) Depois de verificar se o software AWS IoT Greengrass Core funciona com a chave privada e o certificado no HSM, exclua a chave privada e os arquivos do certificado do sistema de arquivos do dispositivo. Execute o comando a seguir e substitua os caminhos dos arquivos pelos caminhos para a chave privada e os arquivos de certificado.

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

## usar hardware sem suporte a PKCS\$111
<a name="hardware-without-pkcs11"></a>

Em geral, a biblioteca PKCS\$111 é fornecida pelo fornecedor de hardware ou é de código aberto. Por exemplo, com hardware compatível com os padrões (como TPM1 .2), talvez seja possível usar o software de código aberto existente. No entanto, se o hardware não tem uma implementação de biblioteca PKCS\$111 correspondente, ou se você deseja gravar um provedor de PKCS\$111 personalizada, entre em contato com seu representante do Amazon Web Services Enterprise Support com perguntas relacionadas com a integração.

## Consulte também
<a name="hardware-security-see-also"></a>
+ [Guia de uso da interface de token criptográfico PKCS\$111 Versão 2.4.0](http://docs.oasis-open.org/pkcs11/pkcs11-ug/v2.40/pkcs11-ug-v2.40.html).
+ [RFC 7512](https://tools.ietf.org/html/rfc7512)
+ [PKCS \$11: RSA Encryption versão 1.5](https://tools.ietf.org/html/rfc2313)