

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

# Segurança em AWS IoT Greengrass
<a name="security"></a>

A segurança na nuvem AWS é a maior prioridade. Como AWS cliente, você se beneficia de uma arquitetura de data center e rede criada para atender aos requisitos das organizações mais sensíveis à segurança.

A segurança é uma responsabilidade compartilhada entre você AWS e você. O [Modelo de Responsabilidade Compartilhada](https://aws.amazon.com/compliance/shared-responsibility-model/) descreve isso como segurança *da* nuvem e segurança *na* nuvem:
+ **Segurança da nuvem** — AWS é responsável por proteger a infraestrutura que executa AWS os serviços no Nuvem AWS. AWS também fornece serviços que você pode usar com segurança. Auditores terceirizados testam e verificam regularmente a eficácia de nossa segurança como parte dos Programas de Conformidade Programas de [AWS](https://aws.amazon.com/compliance/programs/) de . Para saber mais sobre os programas de conformidade que se aplicam AWS IoT Greengrass, consulte [AWS Serviços no escopo do programa de conformidade AWS](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Segurança na nuvem**: sua responsabilidade é determinada pelo serviço da AWS que você usa. Você também é responsável por outros fatores, incluindo a confidencialidade dos dados, os requisitos da empresa e as leis e regulamentos aplicáveis.

Ao usar AWS IoT Greengrass, você também é responsável por proteger seus dispositivos, conexão de rede local e chaves privadas.

Esta documentação ajuda você a entender como aplicar o modelo de responsabilidade compartilhada ao usar AWS IoT Greengrass. Os tópicos a seguir mostram como configurar para atender AWS IoT Greengrass aos seus objetivos de segurança e conformidade. Você também aprenderá a usar outros AWS serviços que ajudam a monitorar e proteger seus AWS IoT Greengrass recursos. 

**Topics**
+ [Proteção de dados em AWS IoT Greengrass](data-protection.md)
+ [Autenticação e autorização de dispositivos para AWS IoT Greengrass](device-auth.md)
+ [Gerenciamento de identidade e acesso para AWS IoT Greengrass](security-iam.md)
+ [Permitir o tráfego de dispositivos por meio de um proxy ou firewall](allow-device-traffic.md)
+ [Validação de conformidade do AWS IoT Greengrass](compliance-validation.md)
+ [Endpoints do FIPS](FIPS.md)
+ [Resiliência no AWS IoT Greengrass](disaster-recovery-resiliency.md)
+ [Segurança da infraestrutura em AWS IoT Greengrass](infrastructure-security.md)
+ [Análise de configuração e vulnerabilidade em AWS IoT Greengrass](vulnerability-analysis-and-management.md)
+ [Integridade do código em AWS IoT Greengrass V2](code-integrity.md)
+ [AWS IoT Greengrass e endpoints VPC de interface ()AWS PrivateLink](vpc-interface-endpoints.md)
+ [Melhores práticas de segurança para AWS IoT Greengrass](security-best-practices.md)

# 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)

# Autenticação e autorização de dispositivos para AWS IoT Greengrass
<a name="device-auth"></a>

Os dispositivos em AWS IoT Greengrass ambientes usam certificados X.509 para autenticação e AWS IoT políticas para autorização. Certificados e políticas permitem que os dispositivos se conectem com segurança entre si, AWS IoT Core, e AWS IoT Greengrass.

Os certificados X.509 são certificados digitais que usam a infraestrutura de chave pública X.509 padrão para associar uma chave pública a uma identidade contida em um certificado. Os certificados X.509 são emitidos por uma entidade confiável chamada de autoridade de certificação (CA). A CA mantém um ou mais certificados especiais chamados certificados CA que são usados para emitir certificados X.509. Somente a autoridade de certificação tem acesso aos certificados CA.

AWS IoT as políticas definem o conjunto de operações permitidas para AWS IoT dispositivos. Especificamente, eles permitem e negam o acesso AWS IoT Core e as operações do plano de AWS IoT Greengrass dados, como publicar mensagens MQTT e recuperar sombras do dispositivo.

Todos os dispositivos exigem uma entrada no AWS IoT Core registro e um certificado X.509 ativado com uma política anexada AWS IoT . Os dispositivos se enquadram em duas categorias:
+ **Dispositivos principais do Greengrass**

  Os principais dispositivos do Greengrass usam certificados e AWS IoT políticas para se conectar a e. AWS IoT Core AWS IoT Greengrass Os certificados e políticas também permitem AWS IoT Greengrass implantar componentes e configurações nos dispositivos principais.
+ **Dispositivos cliente**

  Os dispositivos clientes MQTT usam certificados e políticas para se conectar ao AWS IoT Core AWS IoT Greengrass serviço. Isso permite que os dispositivos cliente AWS IoT Greengrass usem a descoberta na nuvem para encontrar e se conectar a um dispositivo principal do Greengrass. Um dispositivo cliente usa o mesmo certificado para se conectar ao serviço de nuvem do AWS IoT Core e aos dispositivos principais. Os dispositivos cliente também usam informações de descoberta para autenticação mútua com o dispositivo de núcleo. Para obter mais informações, consulte [Interagir com dispositivos de IoT locais](interact-with-local-iot-devices.md).

## Certificados X.509
<a name="x509-certificates"></a>

A comunicação entre dispositivos principais e dispositivos clientes e entre dispositivos AWS IoT Core e/ou AWS IoT Greengrass deve ser autenticada. Esta autenticação mútua é baseada nos certificados e nas chaves criptográficas do dispositivo X.509 registrado.

Em um AWS IoT Greengrass ambiente, os dispositivos usam certificados com chaves públicas e privadas para as seguintes conexões TLS (Transport Layer Security):
+ O componente AWS IoT cliente no dispositivo principal do Greengrass que se conecta à AWS IoT Core e AWS IoT Greengrass pela Internet.
+ Dispositivos clientes que se conectam pela AWS IoT Greengrass Internet para descobrir dispositivos principais.
+ O componente do agente MQTT no núcleo do Greengrass conectando-se aos dispositivos Greengrass no grupo pela rede local.

AWS IoT Greengrass os dispositivos principais armazenam certificados na pasta raiz do Greengrass.

### Certificados da autoridade de certificação (CA)
<a name="ca-certificates"></a>

Os dispositivos principais e clientes do Greengrass baixam um certificado CA raiz usado para autenticação com os serviços AWS IoT Core e. AWS IoT Greengrass Recomendamos que você use um certificado CA raiz do Amazon Trust Services (ATS), como o [Amazon Root CA 1](https://www.amazontrust.com/repository/AmazonRootCA1.pem). Para obter mais informações, consulte [Certificados CA para a autenticação do servidor](https://docs.aws.amazon.com/iot/latest/developerguide/server-authentication.html#server-authentication-certs) no *Guia do desenvolvedor do AWS IoT Core *.

Os dispositivos cliente também fazem download de um certificado de CA do núcleo do Greengrass. Eles usam isso para validar o certificado do servidor MQTT no dispositivo principal durante a autenticação mútua.

### Troca de certificado no agente MQTT local
<a name="mqtt-certificate-expiration"></a>

Quando você [ativa o suporte ao dispositivo cliente](interact-with-local-iot-devices.md), os dispositivos principais do Greengrass geram um certificado de servidor MQTT local que os dispositivos cliente usam para autenticação mútua. Esse certificado é assinado pelo certificado CA do dispositivo principal, que o dispositivo principal armazena na AWS IoT Greengrass nuvem. Os dispositivos cliente recuperam o certificado de CA do dispositivo principal quando descobrem o dispositivo principal. Eles usam o certificado de CA do dispositivo principal para verificar o certificado do servidor MQTT do dispositivo principal quando se conectam a ele. O certificado de CA do dispositivo principal expira após cinco anos.

O certificado do servidor MQTT expira a cada 7 dias por padrão, e você pode configurar essa duração entre 2 e 10 dias. Esse período limitado é baseado nas melhores práticas de segurança. Essa rotação ajuda a mitigar a ameaça de um invasor roubar o certificado e a chave privada do servidor MQTT para se passar pelo dispositivo principal do Greengrass.

O dispositivo principal do Greengrass gira o certificado do servidor MQTT 24 horas antes de expirar. O dispositivo principal do Greengrass gera um novo certificado e reinicia o agente MQTT local. Quando isso acontece, todos os dispositivos clientes conectados ao dispositivo principal do Greengrass são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal do Greengrass após um curto período.

## AWS IoT políticas para operações de plano de dados
<a name="iot-policies"></a>

Use AWS IoT políticas para autorizar o acesso aos planos de AWS IoT Greengrass dados AWS IoT Core e. O plano de dados do AWS IoT Core fornece operações para dispositivos, usuários e aplicações. Essas operações incluem a capacidade de se conectar AWS IoT Core e assinar tópicos. O plano AWS IoT Greengrass de dados fornece operações para dispositivos Greengrass. Para obter mais informações, consulte [AWS IoT Greengrass V2 ações políticas](#greengrass-policy-actions). Essas operações incluem a capacidade de resolver dependências de componentes e baixar artefatos de componentes públicos.

Uma AWS IoT política é um documento JSON semelhante a uma [política do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html#policies-grammar-json). Ela contém uma ou mais declarações de política que especificam as seguintes propriedades:
+ `Effect`. O modo de acesso, que pode ser `Allow` ou `Deny`.
+ `Action`. A lista de ações permitidas ou negadas pela política.
+ `Resource`. A lista de recursos em que a ação é permitida ou negada.

AWS IoT as políticas são suportadas `*` como um caractere curinga e tratam os caracteres curinga (`+`e`#`) do MQTT como cadeias de caracteres literais. Para obter mais informações sobre o `*` curinga, consulte [Usando o curinga no recurso ARNs no](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html#reference_policies_elements_resource_wildcards) Guia do *AWS Identity and Access Management usuário*.

Para obter mais informações, consulte [Políticas do AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policies.html) e [Ações de políticas do AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-actions.html) no *Guia do desenvolvedor do AWS IoT Core *.

**Importante**  
<a name="thing-policy-variable-not-supported"></a>As [variáveis de política de objeto](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) não são compatíveis em políticas de AWS IoT para dispositivos principais ou operações de plano de dados do Greengrass. Em vez disso, você pode usar um caractere curinga que corresponda a vários dispositivos com nomes semelhantes. Por exemplo, você pode especificar `MyGreengrassDevice*` para corresponder ao `MyGreengrassDevice1`, `MyGreengrassDevice2` e assim por diante. 

**nota**  
AWS IoT Core permite que você anexe AWS IoT políticas a grupos de coisas para definir permissões para grupos de dispositivos. As políticas do Thing Group não permitem acesso às operações do plano de AWS IoT Greengrass dados. Para permitir que uma coisa acesse uma operação de plano de AWS IoT Greengrass dados, adicione a permissão a uma AWS IoT política que você anexa ao certificado da coisa.

### AWS IoT Greengrass V2 ações políticas
<a name="greengrass-policy-actions"></a>

AWS IoT Greengrass V2 define as seguintes ações de política que os dispositivos principais e clientes do Greengrass podem usar nas AWS IoT políticas. Para especificar um recurso para uma ação de política, use o nome do recurso da Amazon (ARN) do recurso.Ações do dispositivo principal

`greengrass:GetComponentVersionArtifact`  <a name="greengrass-get-component-version-artifact-action"></a>
Concede permissão para obter uma URL pré-assinada para baixar um artefato de componente público ou um artefato de componente do Lambda.  
Essa permissão é avaliada quando um dispositivo principal recebe uma implantação que especifica um componente público ou um Lambda com artefatos. Se o dispositivo principal já tiver o artefato, ele não baixará o artefato novamente.  
Tipo de recurso: `componentVersion`  
Formato do ARN de recurso: `arn:aws:greengrass:region:account-id:components:component-name:versions:component-version`

`greengrass:ResolveComponentCandidates`  <a name="greengrass-resolve-component-candidates-action"></a>
Concede permissão para identificar uma lista de componentes que atendem aos requisitos de componente, versão e plataforma para uma implantação. Se os requisitos entrarem em conflito ou se não existirem componentes que atendam aos requisitos, essa operação retornará um erro e a implantação falhará no dispositivo.  
Essa permissão é avaliada quando um dispositivo principal recebe uma implantação que especifica componentes.  
Tipo de recurso: nenhum  
Formato do ARN de recurso: `*`

`greengrass:GetDeploymentConfiguration`  <a name="greengrass-get-deployment-configuration-action"></a>
Concede permissão para ter um URL pré-assinado para fazer download de um documento de implantação de grande porte.  
Essa permissão é avaliada quando um dispositivo principal recebe uma implantação que especifica um documento de implantação maior que 7 KB (se a implantação for direcionada a um objeto) ou 31 KB (se a implantação for direcionada a um grupo de objetos). O documento de implantação inclui configurações de componentes, políticas de implantação e metadados de implantação. Para obter mais informações, consulte [Implemente AWS IoT Greengrass componentes em dispositivos](manage-deployments.md).  
Esse atributo está disponível para a versão 2.3.0 e posteriores do [componente de núcleo do Greengrass](greengrass-nucleus-component.md).  
Tipo de recurso: nenhum  
Formato do ARN de recurso: `*`

`greengrass:ListThingGroupsForCoreDevice`  <a name="greengrass-list-thing-groups-for-core-device-action"></a>
Concede permissão para ter a hierarquia de grupos de objetos de um dispositivo principal.  
Essa permissão é verificada quando um dispositivo principal recebe uma implantação do AWS IoT Greengrass. O dispositivo principal usa essa ação para identificar se ele foi removido de um grupo de objetos desde a última implantação. Se ele foi removido de um grupo de objetos e esse grupo é o alvo de uma implantação no dispositivo principal, o dispositivo remove os componentes instalados por essa implantação.  
Esse atributo é usado na versão 2.5.0 e posteriores do [componente de núcleo do Greengrass](greengrass-nucleus-component.md).  
Tipo de recurso: `thing` (dispositivo principal)  
Formato do ARN de recurso: `arn:aws:iot:region:account-id:thing/core-device-thing-name`

`greengrass:VerifyClientDeviceIdentity`  <a name="greengrass-verify-client-device-identity-action"></a>
Concede permissão para verificar a identidade de um dispositivo cliente que se conecta a um dispositivo principal.  
Essa permissão é avaliada quando um dispositivo principal executa o [componente de autenticação do dispositivo cliente](client-device-auth-component.md) e recebe uma conexão MQTT de um dispositivo cliente. O dispositivo cliente apresenta seu certificado de dispositivo da AWS IoT . Em seguida, o dispositivo principal envia o certificado do dispositivo ao serviço de nuvem do AWS IoT Greengrass para verificar a identidade do dispositivo cliente. Para obter mais informações, consulte [Interagir com dispositivos de IoT locais](interact-with-local-iot-devices.md).  
Tipo de recurso: nenhum  
Formato do ARN de recurso: `*`

`greengrass:VerifyClientDeviceIoTCertificateAssociation`  <a name="greengrass-verify-client-device-iot-certificate-association-action"></a>
Concede permissão para verificar se um dispositivo cliente está associado a um certificado da AWS IoT .  
Essa permissão é avaliada quando um dispositivo principal executa o [componente de autenticação do dispositivo cliente](client-device-auth-component.md) e autoriza um dispositivo cliente a se conectar pelo MQTT. Para obter mais informações, consulte [Interagir com dispositivos de IoT locais](interact-with-local-iot-devices.md).  
Para que um dispositivo principal use essa operação, a [função de serviço do Greengrass](greengrass-service-role.md) deve estar associada à sua Conta da AWS e permitir a `iot:DescribeCertificate` permissão.
Tipo de recurso: `thing` (dispositivo cliente)  
Formato do ARN de recurso: `arn:aws:iot:region:account-id:thing/client-device-thing-name`

`greengrass:PutCertificateAuthorities`  <a name="greengrass-put-certificate-authorities-action"></a>
Concede permissão para carregar certificados de autoridade de certificação (CA) que os dispositivos cliente podem baixar para verificar o dispositivo principal.  
Essa permissão é avaliada quando um dispositivo principal instala e executa o [componente de autenticação do dispositivo cliente](client-device-auth-component.md). Esse componente cria uma autoridade de certificação local e usa essa operação para carregar os certificados de CA. Os dispositivos clientes baixam esses certificados de CA quando usam a operação [Descoberta](#greengrass-discover-action) para encontrar dispositivos principais aos quais podem se conectar. Quando dispositivos clientes se conectam a um agente MQTT em um dispositivo principal, eles usam esses certificados de CA para verificar a identidade do dispositivo principal. Para obter mais informações, consulte [Interagir com dispositivos de IoT locais](interact-with-local-iot-devices.md).  
Tipo de recurso: nenhum  
Formato ARN: `*`

`greengrass:GetConnectivityInfo`  <a name="greengrass-get-connectivity-info-action"></a>
Concede permissão para conseguir informações de conectividade de um dispositivo principal. Essas informações descrevem como os dispositivos cliente podem se conectar ao dispositivo principal.  
Essa permissão é avaliada quando um dispositivo principal instala e executa o [componente de autenticação do dispositivo cliente](client-device-auth-component.md). Esse componente usa as informações de conectividade para gerar certificados CA válidos para serem carregados no serviço de AWS IoT Greengrass nuvem com a [PutCertificateAuthories](#greengrass-put-certificate-authorities-action)operação. Os dispositivos cliente usam esses certificados de CA para verificar a identidade do dispositivo principal. Para obter mais informações, consulte [Interagir com dispositivos de IoT locais](interact-with-local-iot-devices.md).  
Você também pode usar essa operação no plano de AWS IoT Greengrass controle para visualizar as informações de conectividade de um dispositivo principal. Para obter mais informações, consulte [GetConnectivityInfo](https://docs.aws.amazon.com/greengrass/v1/apireference/getconnectivityinfo-get.html) na *Referência de APIs do AWS IoT Greengrass V1 *.  
Tipo de recurso: `thing` (dispositivo principal)  
Formato do ARN de recurso: `arn:aws:iot:region:account-id:thing/core-device-thing-name`

`greengrass:UpdateConnectivityInfo`  <a name="greengrass-update-connectivity-info-action"></a>
Concede permissão para atualizar as informações de conectividade de um dispositivo principal. Essas informações descrevem como os dispositivos cliente podem se conectar ao dispositivo principal.  
Essa permissão é avaliada quando um dispositivo principal executa o [componente detector de IP](ip-detector-component.md). Esse componente identifica as informações que os dispositivos cliente precisam para se conectar ao dispositivo principal na rede local. Em seguida, esse componente usa essa operação para carregar as informações de conectividade no serviço de AWS IoT Greengrass nuvem, para que os dispositivos clientes possam recuperar essas informações com a operação [Discover](#greengrass-discover-action). Para obter mais informações, consulte [Interagir com dispositivos de IoT locais](interact-with-local-iot-devices.md).  
Você também pode usar essa operação no plano de AWS IoT Greengrass controle para atualizar manualmente as informações de conectividade de um dispositivo principal. Para obter mais informações, consulte [UpdateConnectivityInfo](https://docs.aws.amazon.com/greengrass/v1/apireference/updateconnectivityinfo-put.html) na *Referência de APIs do AWS IoT Greengrass V1 *.  
Tipo de recurso: `thing` (dispositivo principal)  
Formato do ARN de recurso: `arn:aws:iot:region:account-id:thing/core-device-thing-name`Ações do dispositivo cliente

`greengrass:Discover`  <a name="greengrass-discover-action"></a>
Concede permissão para descobrir informações de conectividade para dispositivos principais aos quais um dispositivo cliente pode se conectar. Essas informações descrevem como os dispositivos cliente podem se conectar ao dispositivo principal. Um dispositivo cliente pode descobrir somente os dispositivos principais aos quais você o associou usando a [BatchAssociateClientDeviceWithCoreDevice](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchAssociateClientDeviceWithCoreDevice.html)operação. Para obter mais informações, consulte [Interagir com dispositivos de IoT locais](interact-with-local-iot-devices.md).  
Tipo de recurso: `thing` (dispositivo cliente)  
Formato do ARN de recurso: `arn:aws:iot:region:account-id:thing/client-device-thing-name`

## Atualizar a AWS IoT política de um dispositivo principal
<a name="update-core-device-iot-policy"></a>

Você pode usar os AWS IoT consoles AWS IoT Greengrass e ou a AWS IoT API para visualizar e atualizar a AWS IoT política de um dispositivo principal.

**nota**  
Se você usou o [instalador de software AWS IoT Greengrass Core para provisionar recursos](quick-installation.md), seu dispositivo principal tem uma AWS IoT política que permite acesso a todas as AWS IoT Greengrass ações (`greengrass:*`). Siga essas etapas para restringir o acesso somente às ações que um dispositivo principal usa.

### Revise e atualize a AWS IoT política de um dispositivo principal (console)
<a name="update-core-device-iot-policy-console"></a>

1. <a name="update-iot-policy-console-open-greengrass-console"></a>No menu de navegação do [console do AWS IoT Greengrass](https://console.aws.amazon.com/greengrass), selecione **Dispositivos principais**.

1. <a name="update-iot-policy-console-choose-core-device"></a>Na página **Dispositivos principais**, escolha o dispositivo principal a ser atualizado.

1. <a name="update-iot-policy-console-choose-core-device-thing"></a>Na página de detalhes do dispositivo principal, escolha o link para o **Objeto** do dispositivo principal. Esse link abre a página de detalhes do objeto no console da AWS IoT .

1. <a name="update-iot-policy-console-choose-thing-security"></a>Na página de detalhes do objeto, escolha **Certificados**.

1. <a name="update-iot-policy-console-choose-thing-certificate"></a>Na guia **Certificados**, escolha o certificado ativo do objeto.

1. <a name="update-iot-policy-console-choose-certificate-policies"></a>Na página de detalhes do certificado, escolha **Políticas**.

1. <a name="update-iot-policy-console-choose-policy"></a>Na guia **Políticas**, escolha a AWS IoT política a ser revisada e atualizada. É possível adicionar as permissões necessárias a toda política anexada ao certificado ativo do dispositivo principal.
**nota**  <a name="quick-installation-iot-policies-note"></a>
Se você usou o [instalador de software AWS IoT Greengrass Core para provisionar recursos](quick-installation.md), você tem duas AWS IoT políticas. Recomendamos que você escolha a política com o nome **GreengrassV2IoTThingPolicy**, se ela existir. Os dispositivos principais que você cria com o instalador rápido usam esse nome de política por padrão. Se você adicionar permissões a essa política, também estará concedendo essas permissões a outros dispositivos principais que usam essa política.

1. <a name="update-iot-policy-console-edit-policy"></a>Na visão geral da política, escolha **Editar versão ativa**.

1. Revise a política e adicione, remova ou edite as permissões, conforme necessário.

1. <a name="update-iot-policy-console-set-as-active-version"></a>Para definir uma nova versão da política como a versão ativa, em **Status da versão da política**, selecione **Definir a versão editada como a versão ativa desta política**.

1. <a name="update-iot-policy-console-save-policy"></a>Selecione **Salvar como nova versão**.

### Revise e atualize a AWS IoT política de um dispositivo principal (AWS CLI)
<a name="update-core-device-iot-policy-cli"></a>

1. <a name="update-iot-policy-cli-list-thing-principals"></a>Liste os princípios básicos do AWS IoT dispositivo principal. As entidades principais do objeto podem ser certificados de dispositivos X.509 ou outros identificadores. Execute o comando a seguir e *MyGreengrassCore* substitua pelo nome do dispositivo principal.

   ```
   aws iot list-thing-principals --thing-name MyGreengrassCore
   ```

   A operação retorna uma resposta que lista os princípios básicos do dispositivo principal.

   ```
   {
       "principals": [
           "arn:aws:iot:us-west-2:123456789012:cert/certificateId"
       ]
   }
   ```

1. <a name="update-iot-policy-cli-identify-active-certificate"></a>Identifique o certificado ativo do dispositivo principal. Execute o comando a seguir e *certificateId* substitua pelo ID de cada certificado da etapa anterior até encontrar o certificado ativo. O ID do certificado é a string hexadecimal no final do ARN do certificado. O argumento `--query` especifica a saída somente do status do certificado.

   ```
   aws iot describe-certificate --certificate-id certificateId --query 'certificateDescription.status'
   ```

   A operação retorna o status do certificado como uma string. Por exemplo, se o certificado estiver ativo, essa operação resulta `"ACTIVE"`.

1. <a name="update-iot-policy-cli-list-certificate-policies"></a>Liste as AWS IoT políticas anexadas ao certificado. Execute o comando a seguir e substitua o ARN do certificado pelo outro.

   ```
   aws iot list-principal-policies --principal arn:aws:iot:us-west-2:123456789012:cert/certificateId
   ```

   A operação retorna uma resposta que lista as AWS IoT políticas anexadas ao certificado.

   ```
   {
       "policies": [
           {
               "policyName": "GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias",
               "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias"
           },
           {
               "policyName": "GreengrassV2IoTThingPolicy",
               "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy"
           }
       ]
   }
   ```

1. <a name="update-iot-policy-cli-choose-policy"></a>Escolha a política a ser visualizada e atualizada.
**nota**  <a name="quick-installation-iot-policies-note"></a>
Se você usou o [instalador de software AWS IoT Greengrass Core para provisionar recursos](quick-installation.md), você tem duas AWS IoT políticas. Recomendamos que você escolha a política com o nome **GreengrassV2IoTThingPolicy**, se ela existir. Os dispositivos principais que você cria com o instalador rápido usam esse nome de política por padrão. Se você adicionar permissões a essa política, também estará concedendo essas permissões a outros dispositivos principais que usam essa política.

1. <a name="update-iot-policy-cli-get-policy-document"></a>Obtenha o documento da política. Execute o comando a seguir e *GreengrassV2IoTThingPolicy* substitua pelo nome da política.

   ```
   aws iot get-policy --policy-name GreengrassV2IoTThingPolicy
   ```

   A operação retorna uma resposta contendo o documento da política e outras informações sobre a política. O documento de política é um objeto JSON serializado como uma string. 

   ```
   {
       "policyName": "GreengrassV2IoTThingPolicy",
       "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy",
       "policyDocument": "{\
     \\"Version\\": \\"2012-10-17		 	 	 \\",\
     \\"Statement\\": [\
       {\
         \\"Effect\\": \\"Allow\\",\
         \\"Action\\": [\
                   \\"iot:Connect\\",\
                   \\"iot:Publish\\",\
                   \\"iot:Subscribe\\",\
                   \\"iot:Receive\\",\
                   \\"greengrass:*\\"\
   ],\
         \\"Resource\\": \\"*\\"\
       }\
     ]\
   }",
       "defaultVersionId": "1",
       "creationDate": "2021-02-05T16:03:14.098000-08:00",
       "lastModifiedDate": "2021-02-05T16:03:14.098000-08:00",
       "generationId": "f19144b798534f52c619d44f771a354f1b957dfa2b850625d9f1d0fde530e75f"
   }
   ```

1. <a name="update-iot-policy-cli-create-policy-document-file"></a>Use um conversor on-line ou outra ferramenta para converter a string do documento de política em um objeto JSON e, em seguida, salve-a em um arquivo chamado `iot-policy.json`.

   Por exemplo, se você tiver a ferramenta [jq](https://stedolan.github.io/jq/) instalada, poderá executar o comando a seguir para ter o documento de política, convertê-lo em um objeto JSON e salvá-lo como um objeto JSON.

   ```
   aws iot get-policy --policy-name GreengrassV2IoTThingPolicy --query 'policyDocument' | jq fromjson >> iot-policy.json
   ```

1. Revise a política do documento e adicione, remova ou edite as permissões, conforme necessário.

   <a name="nano-command-intro-existing-file"></a>Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para abrir o arquivo.

   ```
   nano iot-policy.json
   ```

   Quando você terminar, o documento de política pode parecer semelhante à [AWS IoT política mínima para dispositivos principais](#greengrass-core-minimal-iot-policy).

1. <a name="update-iot-policy-cli-create-policy-version"></a>Salve as alterações como uma nova versão da política. Execute o comando a seguir e *GreengrassV2IoTThingPolicy* substitua pelo nome da política.

   ```
   aws iot create-policy-version --policy-name GreengrassV2IoTThingPolicy --policy-document file://iot-policy.json --set-as-default
   ```

   A operação retornará uma resposta semelhante ao seguinte exemplo, se for bem-sucedida.

   ```
   {
       "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy",
       "policyDocument": "{\
     \\"Version\\": \\"2012-10-17		 	 	 \\",\
     \\"Statement\\": [\
       {\
         \\"Effect\\": \\"Allow\\",\
         \\"Action\\": [\
   \\t\\t\\"iot:Connect\\",\
   \\t\\t\\"iot:Publish\\",\
   \\t\\t\\"iot:Subscribe\\",\
   \\t\\t\\"iot:Receive\\",\
   \\t\\t\\"greengrass:*\\"\
         ],\
         \\"Resource\\": \\"*\\"\
       }\
     ]\
   }",
       "policyVersionId": "2",
       "isDefaultVersion": true
   }
   ```

## AWS IoT Política mínima para dispositivos AWS IoT Greengrass V2 principais
<a name="greengrass-core-minimal-iot-policy"></a>

**Importante**  
Versões posteriores do [componente nucleus do Greengrass](greengrass-nucleus-component.md) exigem permissões adicionais sobre a política mínima. AWS IoT Talvez seja necessário [atualizar as políticas de AWS IoT dos dispositivos principais](#update-core-device-iot-policy) para conceder permissões adicionais.  
Os dispositivos principais que executam o núcleo do Greengrass v2.5.0 e versões posteriores usam a permissão `greengrass:ListThingGroupsForCoreDevice` para desinstalar componentes quando você remove um dispositivo principal de um grupo de objetos.
Os dispositivos principais que executam o núcleo do Greengrass v2.3.0 e versões posteriores usam a permissão `greengrass:GetDeploymentConfiguration` para oferecer suporte a grandes documentos de configuração de implantação.

A política de exemplo a seguir inclui o conjunto mínimo de ações necessárias para oferecer suporte à funcionalidade básica do Greengrass para seu dispositivo de núcleo.
+ A política de `Connect` inclui o caractere curinga `*` após o nome do dispositivo principal (por exemplo, `core-device-thing-name*`). O dispositivo principal usa o mesmo certificado de dispositivo para fazer várias assinaturas simultâneas AWS IoT Core, mas o ID do cliente em uma conexão pode não corresponder exatamente ao nome do dispositivo principal. Após as primeiras 50 assinaturas, o dispositivo principal usa `core-device-thing-name#number` como ID do cliente, em que `number` incrementa para cada 50 assinaturas adicionais. Por exemplo, quando um dispositivo principal chamado `MyCoreDevice` cria 150 assinaturas simultâneas, ele usa o seguinte cliente: IDs
  + Assinaturas 1 a 50: `MyCoreDevice`
  + Assinaturas 51 a 100: `MyCoreDevice#2`
  + Assinaturas 101 a 150: `MyCoreDevice#3`

  O curinga permite que o dispositivo principal se conecte quando usa esses clientes IDs que têm um sufixo.
+ A política lista os tópicos MQTT e filtros de tópicos nos quais o dispositivo de núcleo pode publicar mensagens, assinar e receber mensagens, incluindo tópicos usados para o estado de shadow. Para oferecer suporte à troca de mensagens entre AWS IoT Core componentes do Greengrass e dispositivos cliente, especifique os tópicos e os filtros de tópicos que você deseja permitir. Para obter mais informações, consulte [Exemplos de políticas de publicação/assinatura](https://docs.aws.amazon.com/iot/latest/developerguide/pub-sub-policy.html) no *Guia do desenvolvedor do AWS IoT Core *.
+ A política concede permissão para publicar dados de telemetria no tópico a seguir.

  ```
  $aws/things/core-device-thing-name/greengrass/health/json
  ```

  Você pode remover essa permissão para dispositivos principais nos quais você desativa a telemetria. Para obter mais informações, consulte [Colete dados de telemetria de integridade do sistema a partir dos dispositivos principais AWS IoT Greengrass](telemetry.md).
+ A política concede permissão para assumir uma função do IAM por meio de um alias de AWS IoT função. O dispositivo principal usa essa função, chamada de função de troca de tokens, para adquirir AWS credenciais que ele pode usar para autenticar solicitações AWS . Para obter mais informações, consulte [Autorize os dispositivos principais a interagir com os serviços AWS](device-service-role.md).

  Ao instalar o software AWS IoT Greengrass Core, você cria e anexa uma segunda AWS IoT política que inclui somente essa permissão. Se você incluir essa permissão na AWS IoT política primária do seu dispositivo principal, poderá desanexar e excluir a outra AWS IoT política.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Connect"
            ],
            "Resource": "arn:aws:iot:us-east-1:123456789012:client/core-device-thing-name*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive",
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/greengrass/health/json",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/greengrassv2/health/json",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/jobs/*",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name/shadow/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name/jobs/*",
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name/shadow/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iot:AssumeRoleWithCertificate",
            "Resource": "arn:aws:iot:us-east-1:123456789012:rolealias/token-exchange-role-alias-name"
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:GetComponentVersionArtifact",
                "greengrass:ResolveComponentCandidates",
                "greengrass:GetDeploymentConfiguration",
                "greengrass:ListThingGroupsForCoreDevice"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS IoT Política mínima para oferecer suporte aos dispositivos do cliente
<a name="client-device-support-minimal-iot-policy"></a>

O exemplo de política a seguir inclui o conjunto mínimo de ações necessárias para oferecer suporte à interação com dispositivos clientes em um dispositivo principal. Para oferecer suporte a dispositivos cliente, um dispositivo principal deve ter as permissões dessa AWS IoT política, além da [AWS IoT política Mínima para operação básica](#greengrass-core-minimal-iot-policy).
+ A política permite que o dispositivo principal atualize as próprias informações de conectividade. Essa permissão (`greengrass:UpdateConnectivityInfo`) é necessária somente se você implantar o [componente detector de IP](ip-detector-component.md) no dispositivo principal.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name-gci/shadow/get"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name-gci/shadow/update/delta",
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/core-device-thing-name-gci/shadow/get/accepted"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name-gci/shadow/update/delta",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/core-device-thing-name-gci/shadow/get/accepted"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:PutCertificateAuthorities",
                "greengrass:VerifyClientDeviceIdentity"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:VerifyClientDeviceIoTCertificateAssociation"
            ],
            "Resource": "arn:aws:iot:us-east-1:123456789012:thing/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:GetConnectivityInfo",
                "greengrass:UpdateConnectivityInfo"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:thing/core-device-thing-name"
            ]
        }
    ]
}
```

------

## AWS IoT Política mínima para dispositivos clientes
<a name="client-device-minimal-iot-policy"></a>

O exemplo de política a seguir inclui o conjunto mínimo de ações necessárias para que um dispositivo cliente descubra os dispositivos principais nos quais eles se conectam e se comunicam pelo MQTT. A AWS IoT política do dispositivo cliente deve incluir a `greengrass:Discover` ação para permitir que o dispositivo descubra as informações de conectividade dos dispositivos principais do Greengrass associados. Na seção `Resource`, especifique o nome do recurso da Amazon (ARN) do dispositivo cliente, não o ARN do dispositivo principal do Greengrass.
+ A política permite a comunicação sobre todos os tópicos MQTT. Para seguir as melhores práticas de segurança, restrinja as permissões `iot:Publish`, `iot:Subscribe`, e `iot:Receive` ao conjunto mínimo de tópicos que um dispositivo cliente exige para seu caso de uso.
+ A política permite que a coisa descubra os principais dispositivos para todas as AWS IoT coisas. Para seguir as melhores práticas de segurança, restrinja a `greengrass:Discover` permissão ao AWS IoT item do dispositivo cliente ou a um caractere curinga que corresponda a um conjunto de AWS IoT itens.
**Importante**  
<a name="thing-policy-variable-not-supported"></a>As [variáveis de política de objeto](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) não são compatíveis em políticas de AWS IoT para dispositivos principais ou operações de plano de dados do Greengrass. Em vez disso, você pode usar um caractere curinga que corresponda a vários dispositivos com nomes semelhantes. Por exemplo, você pode especificar `MyGreengrassDevice*` para corresponder ao `MyGreengrassDevice1`, `MyGreengrassDevice2` e assim por diante. 
+ A AWS IoT política de um dispositivo cliente normalmente não exige permissões ou `iot:DeleteThingShadow` ações `iot:GetThingShadow``iot:UpdateThingShadow`, porque o dispositivo principal do Greengrass gerencia as operações de sincronização paralela para dispositivos cliente. Para permitir que o dispositivo principal manipule as sombras do dispositivo cliente, verifique se a AWS IoT política do dispositivo principal permite essas ações e se a `Resource` seção inclui a ARNs dos dispositivos cliente.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Connect"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:Discover"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:thing/*"
            ]
        }
    ]
}
```

------

# Gerenciamento de identidade e acesso para AWS IoT Greengrass
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) é uma ferramenta AWS service (Serviço da AWS) que ajuda o administrador a controlar com segurança o acesso aos AWS recursos. Os administradores do IAM controlam quem pode ser *autenticado* (conectado) e *autorizado* (tem permissões) a usar AWS IoT Greengrass os recursos. O IAM é um AWS service (Serviço da AWS) que você pode usar sem custo adicional.

**nota**  
Este tópico descreve conceitos e atributos do IAM. Para obter informações sobre os recursos do IAM compatíveis com AWS IoT Greengrass, consulte[Como AWS IoT Greengrass funciona com o IAM](security_iam_service-with-iam.md).

## Público
<a name="security_iam_audience"></a>

A forma como você usa AWS Identity and Access Management (IAM) difere com base na sua função:
+ **Usuário do serviço**: solicite permissões ao seu administrador se você não conseguir acessar os atributos (consulte [Solução de problemas de identidade e acesso para AWS IoT Greengrass](security_iam_troubleshoot.md)).
+ **Administrador do serviço**: determine o acesso do usuário e envie solicitações de permissão (consulte [Como AWS IoT Greengrass funciona com o IAM](security_iam_service-with-iam.md))
+ **Administrador do IAM**: escreva políticas para gerenciar o acesso (consulte [Exemplos de políticas baseadas em identidade para AWS IoT Greengrass](security_iam_id-based-policy-examples.md))

## Autenticação com identidades
<a name="security_iam_authentication"></a>

A autenticação é a forma como você faz login AWS usando suas credenciais de identidade. Você deve estar autenticado como usuário do IAM ou assumindo uma função do IAM. Usuário raiz da conta da AWS

Você pode fazer login como uma identidade federada usando credenciais de uma fonte de identidade como Centro de Identidade do AWS IAM (IAM Identity Center), autenticação de login único ou credenciais. Google/Facebook Para ter mais informações sobre como fazer login, consulte [Como fazer login em sua Conta da AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) no *Guia do usuário do Início de Sessão da AWS *.

Para acesso programático, AWS fornece um SDK e uma CLI para assinar solicitações criptograficamente. Para ter mais informações, consulte [AWS Signature Version 4 para solicitações de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) no *Guia do usuário do IAM*.

### Conta da AWS usuário root
<a name="security_iam_authentication-rootuser"></a>

 Ao criar um Conta da AWS, você começa com uma identidade de login chamada *usuário Conta da AWS raiz* que tem acesso completo a todos Serviços da AWS os recursos. É altamente recomendável não usar o usuário-raiz em tarefas diárias. Consulte as tarefas que exigem credenciais de usuário-raiz em [Tarefas que exigem credenciais de usuário-raiz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) no *Guia do usuário do IAM*. 

### Usuários e grupos do IAM
<a name="security_iam_authentication-iamuser"></a>

Um *[usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* é uma identidade com permissões específicas para uma única pessoa ou aplicação. É recomendável usar credenciais temporárias, em vez de usuários do IAM com credenciais de longo prazo. Para obter mais informações, consulte [Exigir que usuários humanos usem a federação com um provedor de identidade para acessar AWS usando credenciais temporárias](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) no *Guia do usuário do IAM*.

Um [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) especifica um conjunto de usuários do IAM e facilita o gerenciamento de permissões para grandes conjuntos de usuários. Para ter mais informações, consulte [Casos de uso de usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) no *Guia do usuário do IAM*.

### Perfis do IAM
<a name="security_iam_authentication-iamrole"></a>

Uma *[perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* é uma identidade com permissões específicas que oferece credenciais temporárias. Você pode assumir uma função [mudando de um usuário para uma função do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) ou chamando uma operação de AWS API AWS CLI ou. Para saber mais, consulte [Métodos para assumir um perfil](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) no *Manual do usuário do IAM*.

Os perfis do IAM são úteis para acesso de usuário federado, permissões de usuário do IAM temporárias, acesso entre contas, acesso entre serviços e aplicações em execução no Amazon EC2. Consulte mais informações em [Acesso a recursos entre contas no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) no *Guia do usuário do IAM*.

## Gerenciar o acesso usando políticas
<a name="security_iam_access-manage"></a>

Você controla o acesso AWS criando políticas e anexando-as a AWS identidades ou recursos. Uma política define permissões quando associada a uma identidade ou recurso. AWS avalia essas políticas quando um diretor faz uma solicitação. A maioria das políticas é armazenada AWS como documentos JSON. Para ter mais informações sobre documentos de política JSON, consulte [Visão geral das políticas JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) no *Guia do usuário do IAM*.

Por meio de políticas, os administradores especificam quem tem acesso a que, definindo qual **entidade principal** pode realizar **ações** em quais **recursos** e sob quais **condições**.

Por padrão, usuários e perfis não têm permissões. Um administrador do IAM cria políticas do IAM e as adiciona aos perfis, os quais os usuários podem então assumir. As políticas do IAM definem permissões, independentemente do método usado para realizar a operação.

### Políticas baseadas em identidade
<a name="security_iam_access-manage-id-based-policies"></a>

As políticas baseadas em identidade são documentos de políticas de permissão JSON que você anexa a uma identidade (usuário, grupo ou perfil). Essas políticas controlam quais ações as identidades podem realizar, em quais recursos e sob quais condições. Para saber como criar uma política baseada em identidade, consulte [Definir permissões personalizadas do IAM com as políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do Usuário do IAM*.

As políticas baseadas em identidade podem ser políticas *em linha* (incorporadas diretamente em uma única identidade) ou *políticas gerenciadas* (políticas autônomas anexadas a várias identidades). Para saber como escolher entre uma política gerenciada e políticas em linha, consulte [Escolher entre políticas gerenciadas e políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) no *Guia do usuário do IAM*.

### Políticas baseadas em recursos
<a name="security_iam_access-manage-resource-based-policies"></a>

Políticas baseadas em recursos são documentos de políticas JSON que você anexa a um recurso. Entre os exemplos estão *políticas de confiança de perfil* do IAM e *políticas de bucket* do Amazon S3. Em serviços compatíveis com políticas baseadas em recursos, os administradores de serviço podem usá-las para controlar o acesso a um recurso específico. É necessário [especificar uma entidade principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) em uma política baseada em recursos.

Políticas baseadas em recursos são políticas em linha localizadas nesse serviço. Você não pode usar políticas AWS gerenciadas do IAM em uma política baseada em recursos.

### Listas de controle de acesso (ACLs)
<a name="security_iam_access-manage-acl"></a>

As listas de controle de acesso (ACLs) controlam quais diretores (membros da conta, usuários ou funções) têm permissões para acessar um recurso. ACLs são semelhantes às políticas baseadas em recursos, embora não usem o formato de documento de política JSON.

O Amazon S3 e o AWS WAF Amazon VPC são exemplos de serviços que oferecem suporte. ACLs Para saber mais ACLs, consulte a [visão geral da lista de controle de acesso (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) no *Guia do desenvolvedor do Amazon Simple Storage Service*.

### Outros tipos de política
<a name="security_iam_access-manage-other-policies"></a>

AWS oferece suporte a tipos de políticas adicionais que podem definir o máximo de permissões concedidas por tipos de políticas mais comuns:
+ **Limites de permissões**: definem o número máximo de permissões que uma política baseada em identidade pode conceder a uma entidade do IAM. Para saber mais sobre limites de permissões, consulte [Limites de permissões para identidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) no *Guia do usuário do IAM*.
+ **Políticas de controle de serviço (SCPs)** — Especifique as permissões máximas para uma organização ou unidade organizacional em AWS Organizations. Para saber mais, consulte [Políticas de controle de serviço](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) no *Guia do usuário do AWS Organizations *.
+ **Políticas de controle de recursos (RCPs)** — Defina o máximo de permissões disponíveis para recursos em suas contas. Para obter mais informações, consulte [Políticas de controle de recursos (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) no *Guia AWS Organizations do usuário*.
+ **Políticas de sessão**: políticas avançadas transmitidas como um parâmetro durante a criação de uma sessão temporária para um perfil ou um usuário federado. Para saber mais, consulte [Políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) no *Guia do usuário do IAM*.

### Vários tipos de política
<a name="security_iam_access-manage-multiple-policies"></a>

Quando vários tipos de política são aplicáveis a uma solicitação, é mais complicado compreender as permissões resultantes. Para saber como AWS determinar se uma solicitação deve ser permitida quando vários tipos de políticas estão envolvidos, consulte [Lógica de avaliação de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) no *Guia do usuário do IAM*.

## Consulte também
<a name="security_iam_service-see-also"></a>
+ [Como AWS IoT Greengrass funciona com o IAM](security_iam_service-with-iam.md)
+ [Exemplos de políticas baseadas em identidade para AWS IoT Greengrass](security_iam_id-based-policy-examples.md)
+ [Solução de problemas de identidade e acesso para AWS IoT Greengrass](security_iam_troubleshoot.md)

# Como AWS IoT Greengrass funciona com o IAM
<a name="security_iam_service-with-iam"></a>

Antes de usar o IAM para gerenciar o acesso AWS IoT Greengrass, você deve entender os recursos do IAM com os quais você pode usar AWS IoT Greengrass.


| Recurso do IAM | Compatível com o Greengrass? | 
| --- | --- | 
| [Políticas baseadas em identidade com permissões em nível de recurso](#security_iam_service-with-iam-id-based-policies) | Sim | 
| [Políticas baseadas em recurso](#security_iam_service-with-iam-resource-based-policies) | Não | 
| [Listas de controle de acesso (ACLs)](#security_iam_service-with-iam-acls) | Não | 
| [Autorização baseada em tags](#security_iam_service-with-iam-tags) | Sim | 
| [Credenciais temporárias](#security_iam_service-with-iam-roles-tempcreds) | Sim | 
| [Perfis vinculados a serviço](#security_iam_service-with-iam-roles-service-linked) | Não | 
| [Perfis de serviço](#security_iam_service-with-iam-roles-service-linked) | Sim | 

Para uma visão de alto nível de como outros AWS serviços funcionam com o IAM, consulte [AWS os serviços que funcionam com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) no *Guia do usuário do IAM*.

## Políticas baseadas em identidade para AWS IoT Greengrass
<a name="security_iam_service-with-iam-id-based-policies"></a>

Com as políticas baseadas em identidade do IAM, você pode especificar ações e recursos permitidos ou negados e as condições sob as quais as ações são permitidas ou negadas. AWS IoT Greengrass oferece suporte a ações, recursos e chaves de condição específicos. Para saber mais sobre todos os elementos usados em uma política, consulte [Referência de elementos de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) no *Guia do usuário do IAM*.

### Ações
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao quê. Ou seja, qual **entidade principal** pode executar **ações** em quais **recursos** e em que **condições**.

O elemento `Action` de uma política JSON descreve as ações que podem ser usadas para permitir ou negar acesso em uma política. Incluem ações em uma política para conceder permissões para executar a operação associada.

Ações de política para AWS IoT Greengrass usar o `greengrass:` prefixo antes da ação. Por exemplo, para permitir que alguém use a operação da `ListCoreDevices` API para listar os dispositivos principais Conta da AWS, você inclui a `greengrass:ListCoreDevices` ação na política dessa pessoa. As declarações de política devem incluir um `NotAction` elemento `Action` ou. AWS IoT Greengrass define seu próprio conjunto de ações que descrevem as tarefas que você pode executar com esse serviço.

Para especificar várias ações em uma única declaração, coloque-as entre parênteses (`[` `]`) e separe-as com vírgulas, da seguinte forma:

```
"Action": [
  "greengrass:action1",
  "greengrass:action2",
  "greengrass:action3"
]
```

Você pode usar curingas (`*`) para especificar várias ações. Por exemplo, para especificar todas as ações que começam com a palavra `List`, inclua a seguinte ação:

```
"Action": "greengrass:List*"
```

**nota**  
Recomendamos que você evite o uso de curingas para especificar todas as ações disponíveis para um serviço. De acordo com as melhores práticas, você deve conceder permissões de privilégio mínimo e definir um escopo de permissões mais específico em uma política. Para obter mais informações, consulte [Conceder o mínimo possível de permissões](security-best-practices.md#least-privilege).

Para ver a lista completa de AWS IoT Greengrass ações, consulte [Ações definidas por AWS IoT Greengrass](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions) no *Guia do usuário do IAM*.

### Recursos
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao quê. Ou seja, qual **entidade principal** pode executar **ações** em quais **recursos** e em que **condições**.

O elemento de política JSON `Resource` especifica o objeto ou os objetos aos quais a ação se aplica. Como prática recomendada, especifique um recurso usando seu [nome do recurso da Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Para ações que não oferecem compatibilidade com permissões em nível de recurso, use um curinga (\$1) para indicar que a instrução se aplica a todos os recursos.

```
"Resource": "*"
```

A tabela a seguir contém o AWS IoT Greengrass recurso ARNs que pode ser usado no `Resource` elemento de uma declaração de política. Para um mapeamento das permissões compatíveis em nível de recurso para AWS IoT Greengrass ações, consulte Ações [definidas por AWS IoT Greengrass](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions) no Guia do usuário do *IAM*.

Algumas AWS IoT Greengrass ações (por exemplo, algumas operações de lista) não podem ser executadas em um recurso específico. Nesses casos, você deve usar apenas o caractere curinga.

```
"Resource": "*"
```

Para especificar vários recursos ARNs em uma instrução, liste-os entre colchetes (`[``]`) e separe-os com vírgulas, da seguinte forma:

```
"Resource": [
  "resource-arn1",
  "resource-arn2",
  "resource-arn3"
]
```

Para obter mais informações sobre formatos ARN, consulte [Amazon Resource Names (ARNs) e namespaces AWS de serviços](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) no. *Referência geral da Amazon Web Services*

### Chaves de condição
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao quê. Ou seja, qual **entidade principal** pode executar **ações** em quais **recursos** e em que **condições**.

O elemento `Condition` especifica quando as instruções são executadas com base em critérios definidos. É possível criar expressões condicionais que usem [agentes de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação. Para ver todas as chaves de condição AWS globais, consulte as [chaves de contexto de condição AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) no *Guia do usuário do IAM*.

### Exemplos
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Para ver exemplos de políticas AWS IoT Greengrass baseadas em identidade, consulte. [Exemplos de políticas baseadas em identidade para AWS IoT Greengrass](security_iam_id-based-policy-examples.md)

## Políticas baseadas em recursos para AWS IoT Greengrass
<a name="security_iam_service-with-iam-resource-based-policies"></a>

AWS IoT Greengrass não oferece suporte a políticas [baseadas em recursos](security-iam.md#security_iam_access-manage-resource-based-policies).

## Listas de controle de acesso (ACLs)
<a name="security_iam_service-with-iam-acls"></a>

AWS IoT Greengrass não suporta [ACLs](security-iam.md#security_iam_access-manage-acl).

## Autorização baseada em AWS IoT Greengrass tags
<a name="security_iam_service-with-iam-tags"></a>

Você pode anexar tags aos AWS IoT Greengrass recursos compatíveis ou passar tags em uma solicitação para AWS IoT Greengrass. Para controlar o acesso baseado em tags, forneça informações sobre as tags no [elemento de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de uma política usando as chaves de condição `aws:ResourceTag/${TagKey}`, `aws:RequestTag/${TagKey}` ou `aws:TagKeys`. Para obter mais informações, consulte [Marque seus AWS IoT Greengrass Version 2 recursos](tag-resources.md).

## Funções do IAM para AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles"></a>

Um [perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) é uma entidade dentro da sua Conta da AWS que tem permissões específicas.

### Usando credenciais temporárias com AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Credenciais temporárias são usadas para fazer login com federação, assumir um perfil do IAM ou assumir uma função entre contas. Obtenha credenciais de segurança temporárias chamando operações de API AWS STS tais como [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) ou [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html).

No núcleo do Greengrass, credenciais temporárias para a [função do dispositivo](device-service-role.md) são disponibilizadas aos componentes do Greengrass. Se seus componentes usam o AWS SDK, você não precisa adicionar lógica para obter as credenciais, pois o AWS SDK faz isso por você.

### Perfis vinculados ao serviço
<a name="security_iam_service-with-iam-roles-service-linked"></a>

AWS IoT Greengrass não oferece suporte a funções [vinculadas a serviços](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role).

### Perfis de serviço
<a name="security_iam_service-with-iam-roles-service"></a>

Esse atributo permite que um serviço assuma um [perfil de serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) em seu nome. O perfil permite que o serviço acesse recursos em outros serviços para concluir uma ação em seu nome. Os perfis de serviço aparecem em sua conta do IAM e são de propriedade da conta. Isso significa que um administrador do IAM pode alterar as permissões para esse perfil. Porém, fazer isso pode alterar a funcionalidade do serviço.

AWS IoT Greengrass os dispositivos principais usam uma função de serviço para permitir que os componentes do Greengrass e as funções do Lambda acessem alguns de seus AWS recursos em seu nome. Para obter mais informações, consulte [Autorize os dispositivos principais a interagir com os serviços AWS](device-service-role.md).

AWS IoT Greengrass usa uma função de serviço para acessar alguns de seus AWS recursos em seu nome. Para obter mais informações, consulte [Função de serviço do Greengrass](greengrass-service-role.md).

# Exemplos de políticas baseadas em identidade para AWS IoT Greengrass
<a name="security_iam_id-based-policy-examples"></a>

Por padrão, os usuários e os perfis do IAM não têm permissão para criar ou modificar recursos do AWS IoT Greengrass . Eles também não podem realizar tarefas usando a AWS API Console de gerenciamento da AWS AWS CLI, ou. Um administrador do IAM deve criar políticas do IAM que concedam aos usuários e perfis permissão para executarem operações de API específicas nos recursos especificados de que precisam. O administrador deve anexar essas políticas aos usuários ou grupos do IAM que exigem essas permissões.

## Práticas recomendadas de política
<a name="security_iam_service-with-iam-policy-best-practices"></a>

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir AWS IoT Greengrass recursos em sua conta. Essas ações podem incorrer em custos para sua Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:
+ **Comece com as políticas AWS gerenciadas e avance para as permissões de privilégios mínimos — Para começar a conceder permissões** aos seus usuários e cargas de trabalho, use as *políticas AWS gerenciadas* que concedem permissões para muitos casos de uso comuns. Eles estão disponíveis no seu Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo AWS cliente que sejam específicas para seus casos de uso. Para saber mais, consulte [Políticas gerenciadas pela AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [Políticas gerenciadas pela AWS para funções de trabalho](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) no *Guia do usuário do IAM*.
+ **Aplique permissões de privilégio mínimo**: ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como *permissões de privilégio mínimo*. Para saber mais sobre como usar o IAM para aplicar permissões, consulte [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.
+ **Use condições nas políticas do IAM para restringir ainda mais o acesso**: é possível adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, é possível escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. Você também pode usar condições para conceder acesso às ações de serviço se elas forem usadas por meio de uma ação específica AWS service (Serviço da AWS), como CloudFormation. Para saber mais, consulte [Elementos da política JSON do IAM: condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) no *Guia do usuário do IAM*.
+ **Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais**: o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de cem verificações de política e recomendações práticas para ajudar a criar políticas seguras e funcionais. Para saber mais, consulte [Validação de políticas do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) no *Guia do Usuário do IAM*.
+ **Exigir autenticação multifator (MFA**) — Se você tiver um cenário que exija usuários do IAM ou um usuário root, ative Conta da AWS a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para saber mais, consulte [Configuração de acesso à API protegido por MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) no *Guia do Usuário do IAM*.

Para saber mais sobre as práticas recomendadas do IAM, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

## Exemplos de políticas
<a name="security_iam_id-based-policy-examples-list"></a>

As políticas de exemplo definidas pelo cliente a seguir concedem permissões para cenários comuns.

**Topics**
+ [Permitir que os usuários visualizem suas próprias permissões](#security_iam_id-based-policy-examples-view-own-permissions)

Para saber como criar uma política baseada em identidade do IAM utilizando esses exemplos de documentos de política JSON, consulte [Criar políticas na guia JSON ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) no *Guia do usuário do IAM*.

### Permitir que os usuários visualizem suas próprias permissões
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Este exemplo mostra como criar uma política que permita que os usuários do IAM visualizem as políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissões para concluir essa ação no console ou programaticamente usando a API AWS CLI ou AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# Autorize os dispositivos principais a interagir com os serviços AWS
<a name="device-service-role"></a>

AWS IoT Greengrass os dispositivos principais usam o provedor de AWS IoT Core credenciais para autorizar chamadas para AWS serviços. O provedor de AWS IoT Core credenciais permite que os dispositivos usem seus certificados X.509 como a identidade exclusiva do dispositivo para autenticar solicitações. AWS Isso elimina a necessidade de armazenar uma ID de chave de AWS acesso e uma chave de acesso secreta em seus dispositivos AWS IoT Greengrass principais. Para obter mais informações, consulte [Autorização de chamadas diretas para AWS serviços](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) no *Guia do AWS IoT Core desenvolvedor*.

Ao executar o software AWS IoT Greengrass Core, você pode optar por provisionar os AWS recursos que o dispositivo principal exige. Isso inclui a função AWS Identity and Access Management (IAM) que seu dispositivo principal assume por meio do provedor de AWS IoT Core credenciais. Use o `--provision true` argumento para configurar uma função e políticas que permitam que o dispositivo principal obtenha AWS credenciais temporárias. Esse argumento também configura um alias de AWS IoT função que aponta para essa função do IAM. Você pode especificar o nome da função do IAM e o alias da AWS IoT função a serem usados. Se você especificar `--provision true` sem esses outros parâmetros de nome, o dispositivo principal do Greengrass cria e usa os seguintes recursos padrão:
+ Perfil do IAM: `GreengrassV2TokenExchangeRole`

  Esse perfil tem um nome de política `GreengrassV2TokenExchangeRoleAccess` e um relacionamento de confiança que permite que `credentials.iot.amazonaws.com` assuma o perfil. A política inclui as permissões mínimas para o dispositivo principal.
**Importante**  
Essa política não inclui acesso a arquivos em buckets do S3. Você deve adicionar permissões ao perfil para permitir que os dispositivos principais recuperem artefatos de componentes dos buckets do S3. Para obter mais informações, consulte [Permitir acesso aos buckets do S3 para artefatos de componentes](#device-service-role-access-s3-bucket).
+ AWS IoT alias de função: `GreengrassV2TokenExchangeRoleAlias`

  Esse alias de perfil se refere ao perfil do IAM.

Para obter mais informações, consulte [Etapa 3: instalar o software AWS IoT Greengrass principal](install-greengrass-v2.md).

Você também pode definir o alias de perfil para um dispositivo principal existente. Para fazer isso, configure o parâmetro de configuração `iotRoleAlias` do [componente do núcleo do Greengrass](greengrass-nucleus-component.md).

Você pode adquirir AWS credenciais temporárias para essa função do IAM para realizar AWS operações em seus componentes personalizados. Para obter mais informações, consulte [Interaja com AWS os serviços](interact-with-aws-services.md).

**Topics**
+ [Permissões de perfil de serviço para dispositivos principais](#device-service-role-permissions)
+ [Permitir acesso aos buckets do S3 para artefatos de componentes](#device-service-role-access-s3-bucket)

## Permissões de perfil de serviço para dispositivos principais
<a name="device-service-role-permissions"></a>

O perfil permite que o seguinte serviço presuma a perfil:
+ `credentials.iot.amazonaws.com`

Se você usa o software AWS IoT Greengrass Core para criar essa função, ele usa a seguinte política de permissões para permitir que os dispositivos principais se conectem e enviem registros para AWS. O nome da política é padronizado para o nome do perfil do IAM que termina com `Access`. Por exemplo, se você usar o nome de perfil do IAM padrão, o nome dessa política será `GreengrassV2TokenExchangeRoleAccess`.

------
#### [ Greengrass nucleus v2.5.0 and later ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ v2.4.x ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ Earlier than v2.4.0 ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "iot:Connect",
        "iot:Publish",
        "iot:Subscribe",
        "iot:Receive",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------

## Permitir acesso aos buckets do S3 para artefatos de componentes
<a name="device-service-role-access-s3-bucket"></a>

O perfil padrão do dispositivo principal não permite que os dispositivos principais acessem os buckets do S3. Para implantar componentes que tenham artefatos em buckets do S3, adicione a permissão `s3:GetObject` para permitir que os dispositivos principais baixem artefatos de componentes. Você pode adicionar uma nova política ao perfil do dispositivo principal para conceder essa permissão.

**Para adicionar uma política que permita o acesso a artefatos de componentes no Amazon S3**

1. Crie um arquivo chamado `component-artifact-policy.json` e copie o JSON a seguir no arquivo. Essa política permite acesso a todos os arquivos em um bucket do S3. Substitua amzn-s3-demo-bucket pelo nome do bucket S3 para permitir o acesso do dispositivo principal.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
       }
     ]
   }
   ```

------

1. Execute o comando a seguir para criar a política com base no documento em `component-artifact-policy.json`.

------
#### [ Linux or Unix ]

   ```
   aws iam create-policy \
     --policy-name MyGreengrassV2ComponentArtifactPolicy \
     --policy-document file://component-artifact-policy.json
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam create-policy ^
     --policy-name MyGreengrassV2ComponentArtifactPolicy ^
     --policy-document file://component-artifact-policy.json
   ```

------
#### [ PowerShell ]

   ```
   aws iam create-policy `
     --policy-name MyGreengrassV2ComponentArtifactPolicy `
     --policy-document file://component-artifact-policy.json
   ```

------

   Copie o nome do recurso da Amazon (ARN) da política dos metadados na saída. Na próxima etapa, você vai usar esse ARN para anexar a política ao perfil do dispositivo principal.

1. Execute o comando a seguir para anexar a política ao perfil do dispositivo principal. *GreengrassV2TokenExchangeRole*Substitua pelo nome da função que você especificou ao executar o software AWS IoT Greengrass Core. Em seguida, substitua o ARN da política pelo ARN da etapa anterior.

------
#### [ Linux or Unix ]

   ```
   aws iam attach-role-policy \
     --role-name GreengrassV2TokenExchangeRole \
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam attach-role-policy ^
     --role-name GreengrassV2TokenExchangeRole ^
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------
#### [ PowerShell ]

   ```
   aws iam attach-role-policy `
     --role-name GreengrassV2TokenExchangeRole `
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------

   Se o comando não tiver saída, ele foi bem-sucedido e seu dispositivo principal poderá acessar os artefatos que você carrega nesse bucket do S3.

# Política mínima de IAM para o instalador provisionar recursos
<a name="provision-minimal-iam-policy"></a>

Ao instalar o software AWS IoT Greengrass Core, você pode provisionar AWS os recursos necessários, como uma AWS IoT coisa e uma função do IAM para seu dispositivo. Você também pode implantar ferramentas de desenvolvimento local no dispositivo. O instalador requer AWS credenciais para poder realizar essas ações no seu Conta da AWS. Para obter mais informações, consulte [Instalar o software do AWS IoT Greengrass Core](install-greengrass-core-v2.md).

O exemplo de política a seguir inclui o conjunto mínimo de ações que o instalador exige para provisionar esses recursos. Essas permissões são necessárias se você especificar o argumento `--provision` para o instalador. *account-id*Substitua pelo seu Conta da AWS ID e *GreengrassV2TokenExchangeRole* substitua pelo nome da função de troca de tokens que você especifica com o [argumento do `--tes-role-name` instalador](configure-installer.md).

**nota**  
A declaração de política `DeployDevTools` é necessária somente se você especificar o argumento `--deploy-dev-tools` para o instalador.

------
#### [ Greengrass nucleus v2.5.0 and later ]

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
                "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------
#### [ Earlier than v2.5.0 ]

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
            "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
    "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------

# Função de serviço do Greengrass
<a name="greengrass-service-role"></a>

<a name="greengrass-service-role-intro"></a>A função de serviço do Greengrass é uma função de serviço AWS Identity and Access Management (IAM) que AWS IoT Greengrass autoriza o acesso a recursos de AWS serviços em seu nome. Essa função possibilita verificar AWS IoT Greengrass a identidade dos dispositivos clientes e gerenciar as principais informações de conectividade do dispositivo.

**nota**  
AWS IoT Greengrass V1 também usa essa função para realizar tarefas essenciais. Para obter mais informações, consulte [Perfil de serviço do Greengrass](https://docs.aws.amazon.com/greengrass/v1/developerguide/service-role.html) no *Guia do Desenvolvedor do AWS IoT Greengrass V1 *.

Para permitir AWS IoT Greengrass o acesso aos seus recursos, a função de serviço do Greengrass deve estar associada à sua Conta da AWS e ser especificada AWS IoT Greengrass como uma entidade confiável. A função deve incluir a política [AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy)gerenciada ou uma política personalizada que defina permissões equivalentes para os AWS IoT Greengrass recursos que você usa. AWS mantém essa política, que define o conjunto de permissões que você AWS IoT Greengrass usa para acessar seus AWS recursos. Para obter mais informações, consulte [AWS política gerenciada: AWSGreengrass ResourceAccessRolePolicy](security-iam-aws-managed-policies.md#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy).

Você pode reutilizar a mesma função de serviço do Greengrass Regiões da AWS em todas as partes, mas deve associá-la à sua conta em Região da AWS todos os lugares em que usa. AWS IoT Greengrass Se a função de serviço não estiver configurada na atual Região da AWS, os dispositivos principais falharão em verificar os dispositivos cliente e não atualizarão as informações de conectividade.

As seções a seguir descrevem como criar e gerenciar a função de serviço do Greengrass com o Console de gerenciamento da AWS ou. AWS CLI

**Topics**
+ [Gerenciar o perfil de serviço do Greengrass (console)](#manage-greengrass-service-role-console)
+ [Gerenciar o perfil de serviço do Greengrass (CLI)](#manage-service-role-cli)
+ [Consulte também](#service-role-see-also)

**nota**  
Além do perfil de serviço que autoriza o acesso em nível de serviço, você atribui um *perfil de troca de tokens* aos dispositivos centrais do Greengrass. A função de troca de tokens é uma função separada do IAM que controla como os componentes do Greengrass e as funções do Lambda no dispositivo principal podem acessar os serviços. AWS Para obter mais informações, consulte [Autorize os dispositivos principais a interagir com os serviços AWS](device-service-role.md).

## Gerenciar o perfil de serviço do Greengrass (console)
<a name="manage-greengrass-service-role-console"></a>

O AWS IoT console facilita o gerenciamento de sua função de serviço no Greengrass. Por exemplo, quando você configura a descoberta do dispositivo do cliente para um dispositivo principal, o console verifica se a Conta da AWS está anexada a uma função de serviço do Greengrass na. Região da AWS Caso contrário, o console pode criar e configurar uma função de serviço para você. Para obter mais informações, consulte [Criar a função de serviço do Greengrass (console)](#create-greengrass-service-role-console).

É possível usar o console do para as seguintes tarefas de gerenciamento de função:

**Topics**
+ [Encontrar a função de serviço do Greengrass (console)](#get-greengrass-service-role-console)
+ [Criar a função de serviço do Greengrass (console)](#create-greengrass-service-role-console)
+ [Alterar a função de serviço do Greengrass (console)](#update-greengrass-service-role-console)
+ [Desanexar a função de serviço do Greengrass (console)](#remove-greengrass-service-role-console)

**nota**  
O usuário que está conectado no console deve ter permissões para visualizar, criar ou alterar o perfil de serviço.

### Encontrar a função de serviço do Greengrass (console)
<a name="get-greengrass-service-role-console"></a>

Use as etapas a seguir para encontrar a função de serviço AWS IoT Greengrass usada na atual Região da AWS.

1. <a name="open-iot-console"></a>Navegue até o [console do AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>No painel de navegação, selecione **Configurações**.

1. Role até a seção **Função de serviço do Greengrass** para ver a função de serviço e as políticas dela.

   Se não for exibido um perfil de serviço, o console pode criar ou configurar um para você. Para obter mais informações, consulte [Criar a função de serviço do Greengrass](#create-greengrass-service-role-console).

### Criar a função de serviço do Greengrass (console)
<a name="create-greengrass-service-role-console"></a>

O console pode criar e configurar uma função de serviço padrão do Greengrass para você. Essa função tem as propriedades a seguir.


| Propriedade | Valor | 
| --- | --- | 
| Nome | Greengrass\$1ServiceRole | 
| Entidade confiável | AWS service: greengrass | 
| Política | [AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy) | 

**nota**  
Se você criar essa função com o [script de configuração do AWS IoT Greengrass V1 dispositivo](https://docs.aws.amazon.com/greengrass/v1/developerguide/quick-start.html), o nome da função será`GreengrassServiceRole_random-string`.

Quando você configura a descoberta do dispositivo cliente para um dispositivo principal, o console verifica se uma função de serviço do Greengrass está associada à sua Conta da AWS no momento. Região da AWS Caso contrário, o console solicitará que você permita AWS IoT Greengrass a leitura e gravação nos AWS serviços em seu nome.

Se você conceder permissão, o console verifica se uma função chamada `Greengrass_ServiceRole` existe na Conta da AWS.
+ Se a função existir, o console anexará a função de serviço à sua Conta da AWS na atual Região da AWS.
+ Se a função não existir, o console cria uma função de serviço padrão do Greengrass e a anexa à sua Conta da AWS na atual. Região da AWS

**nota**  
Se quiser criar uma função de serviço com políticas de função personalizadas, use o console do IAM para criar ou modificar a função. Para obter mais informações, consulte [Criação de uma função para delegar permissões a um AWS serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) ou [Modificar uma função no Guia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) do *usuário do IAM*. Verifique se a função concede permissões equivalentes à política gerenciada `AWSGreengrassResourceAccessRolePolicy` para os atributos e as características que você utiliza. Recomendamos que você também inclua as chaves de contexto de condição global `aws:SourceArn` e `aws:SourceAccount` em sua política de confiança para ajudar a evitar o problema de segurança *confused deputy*. As chaves de contexto de condição restringem o acesso para permitir somente as solicitações provenientes da conta especificada e do espaço de trabalho do Greengrass. Para obter mais informações sobre o problema confused deputy, consulte [Prevenção contra o ataque do “substituto confuso” em todos os serviços](cross-service-confused-deputy-prevention.md).  
Se você criar uma função de serviço, retorne ao AWS IoT console e anexe a função à sua Conta da AWS. É possível fazer isso no **perfil de serviço do Greengrass**, na página **Configurações**.

### Alterar a função de serviço do Greengrass (console)
<a name="update-greengrass-service-role-console"></a>

Use o procedimento a seguir para escolher uma função de serviço diferente do Greengrass para anexar à sua Conta da AWS na Região da AWS atualmente selecionada no console.

1. <a name="open-iot-console"></a>Navegue até o [console do AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>No painel de navegação, selecione **Configurações**.

1. Em **Função de serviço do Greengrass**, selecione **Change role (Mudar perfil)**.

   A caixa de diálogo **Atualizar função de serviço do Greengrass** é aberta e mostra as funções do IAM em sua Conta da AWS que você define AWS IoT Greengrass como uma entidade confiável.

1. Selecione a função de serviço do Greengrass a ser anexado.

1. Selecione **Anexar função**.

### Desanexar a função de serviço do Greengrass (console)
<a name="remove-greengrass-service-role-console"></a>

Use o procedimento a seguir para separar a função de serviço do Greengrass da AWS sua conta atual. Região da AWS Isso revoga as permissões AWS IoT Greengrass para acessar AWS serviços no atual Região da AWS.

**Importante**  
Desanexar o perfil de serviço pode interromper operações ativas.

1. <a name="open-iot-console"></a>Navegue até o [console do AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>No painel de navegação, selecione **Configurações**.

1. Em **Função de serviço do Greengrass**, selecione **Detach role (Desanexar função)**.

1. Na caixa de diálogo de confirmação, selecione **Detach (Desvincular)**.

**nota**  
Se você não precisar mais da função, poderá excluí-la no console do IAM. Para obter mais informações sobre como excluir uma função, consulte [Excluir funções ou perfis de instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) no *Manual do usuário do IAM*.  
Outras funções podem permitir AWS IoT Greengrass o acesso aos seus recursos. Para encontrar todas as funções que permitem que o AWS IoT Greengrass assuma permissões em seu nome, no console do IAM, na página **Funções**, procure as funções que incluem **AWS service: greengrass** na coluna **Entidades confiáveis**.

## Gerenciar o perfil de serviço do Greengrass (CLI)
<a name="manage-service-role-cli"></a>

Nos procedimentos a seguir, presumimos que o AWS Command Line Interface esteja instalado e configurado para usar seu Conta da AWS. Para mais informações, consulte [Instalar, atualizar e desinstalar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) e [Configuração da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) no *Guia do usuário da AWS Command Line Interface *.

Você pode usar o AWS CLI para as seguintes tarefas de gerenciamento de funções:

**Topics**
+ [Obter a função de serviço do Greengrass (CLI)](#get-service-role)
+ [Criar a função de serviço do Greengrass (CLI)](#create-service-role)
+ [Remover a função de serviço do Greengrass (CLI)](#remove-service-role)

### Obter a função de serviço do Greengrass (CLI)
<a name="get-service-role"></a>

Use o procedimento a seguir para descobrir se uma função de serviço do Greengrass está associado à Conta da AWS em uma Região da AWS.
+ Obtenha a função de serviço. *region*Substitua pelo seu Região da AWS (por exemplo,`us-west-2`).

  ```
  aws greengrassv2 get-service-role-for-account --region region
  ```

  Se um perfil de serviço do Greengrass já estiver associado à sua conta, a solicitação retorna os metadados do perfil a seguir.

  ```
  {
    "associatedAt": "timestamp",
    "roleArn": "arn:aws:iam::account-id:role/path/role-name"
  }
  ```

  Se a solicitação não retornar metadados de função, será necessário criar o perfil de serviço (se ele não existir) e associá-lo à sua conta na Região da AWS.

### Criar a função de serviço do Greengrass (CLI)
<a name="create-service-role"></a>

Use as etapas a seguir para criar uma função e associá-la à sua Conta da AWS.

**Como criar a função de serviço usando o IAM**

1. Crie uma função com uma política de confiança que AWS IoT Greengrass permita assumir a função. Este exemplo cria uma função chamada `Greengrass_ServiceRole`, mas você pode usar um nome diferente. Recomendamos que você também inclua as chaves de contexto de condição global `aws:SourceArn` e `aws:SourceAccount` em sua política de confiança para ajudar a evitar o problema de segurança *confused deputy*. As chaves de contexto de condição restringem o acesso para permitir somente as solicitações provenientes da conta especificada e do espaço de trabalho do Greengrass. Para obter mais informações sobre o problema confused deputy, consulte [Prevenção contra o ataque do “substituto confuso” em todos os serviços](cross-service-confused-deputy-prevention.md).

------
#### [ Linux or Unix ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:region:account-id:*"
           },
           "StringEquals": {
             "aws:SourceAccount": "account-id"
           }
         }
       }
     ]
   }'
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"greengrass.amazonaws.com\"},\"Action\":\"sts:AssumeRole\",\"Condition\":{\"ArnLike\":{\"aws:SourceArn\":\"arn:aws:greengrass:region:account-id:*\"},\"StringEquals\":{\"aws:SourceAccount\":\"account-id\"}}}]}"
   ```

------
#### [ PowerShell ]

   ```
   aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:region:account-id:*"
           },
           "StringEquals": {
             "aws:SourceAccount": "account-id"
           }
         }
       }
     ]
   }'
   ```

------

1. Copie o ARN da função dos metadados da função na saída. Você usará o ARN para associar a função à sua conta.

1. Anexe a política do `AWSGreengrassResourceAccessRolePolicy` à função.

   ```
   aws iam attach-role-policy --role-name Greengrass_ServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy
   ```

**Para associar a função de serviço à sua Conta da AWS**
+ Associe a função à sua conta. *role-arn*Substitua pelo ARN da função de serviço e *region* pelo seu Região da AWS (por exemplo,`us-west-2`).

  ```
  aws greengrassv2 associate-service-role-to-account --role-arn role-arn --region region
  ```

  Se a solicitação for bem-sucedida, ela retornará a resposta a seguir.

  ```
  {
    "associatedAt": "timestamp"
  }
  ```

### Remover a função de serviço do Greengrass (CLI)
<a name="remove-service-role"></a>

Use as etapas a seguir para desassociar a função de serviço do Greengrass de sua Conta da AWS.
+ Desassocie a função de serviço da conta. *region*Substitua pelo seu Região da AWS (por exemplo,`us-west-2`).

  ```
  aws greengrassv2 disassociate-service-role-from-account --region region
  ```

  Se houver êxito, a resposta a seguir será retornada.

  ```
  {
    "disassociatedAt": "timestamp"
  }
  ```
**nota**  
Você deve excluir a função de serviço se não a estiver usando em nenhuma Região da AWS. Primeiro, use [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html) para desvincular a política gerenciada `AWSGreengrassResourceAccessRolePolicy` do perfil, depois use [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html) para excluir o perfil. Para obter mais informações sobre como excluir uma função, consulte [Excluir funções ou perfis de instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) no *Manual do usuário do IAM*.

## Consulte também
<a name="service-role-see-also"></a>
+ [Criação de uma função para delegar permissões a um AWS serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) no Guia do *usuário do IAM*
+ [Modificando uma função](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) no *Guia do usuário do IAM*
+ [Excluir funções ou perfis de instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) no *Manual do usuário do IAM*.
+ AWS IoT Greengrass comandos na *Referência de AWS CLI Comandos*
  + [associate-service-role-to-conta](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/associate-service-role-to-account.html)
  + [disassociate-service-role-from-conta](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/disassociate-service-role-from-account.html)
  + [get-service-role-for-conta](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/get-service-role-for-account.html)
+ Comandos do IAM disponíveis na *Referência de comandos do AWS CLI *
  + [attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)
  + [create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)
  + [delete-role](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html)
  + [delete-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html)

# AWS políticas gerenciadas para AWS IoT Greengrass
<a name="security-iam-aws-managed-policies"></a>

Uma política AWS gerenciada é uma política autônoma criada e administrada por AWS. AWS as políticas gerenciadas são projetadas para fornecer permissões para muitos casos de uso comuns, para que você possa começar a atribuir permissões a usuários, grupos e funções.

Lembre-se de que as políticas AWS gerenciadas podem não conceder permissões de privilégio mínimo para seus casos de uso específicos porque elas estão disponíveis para uso de todos os AWS clientes. Recomendamos que você reduza ainda mais as permissões definindo as [ políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) que são específicas para seus casos de uso.

Você não pode alterar as permissões definidas nas políticas AWS gerenciadas. Se AWS atualizar as permissões definidas em uma política AWS gerenciada, a atualização afetará todas as identidades principais (usuários, grupos e funções) às quais a política está anexada. AWS é mais provável que atualize uma política AWS gerenciada quando uma nova AWS service (Serviço da AWS) é lançada ou novas operações de API são disponibilizadas para serviços existentes.

Para saber mais, consulte [AWS Políticas gerenciadas pela ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) no *Guia do usuário do IAM*.

**Topics**
+ [AWS política gerenciada: AWSGreengrass FullAccess](#aws-managed-policies-AWSGreengrassFullAccess)
+ [AWS política gerenciada: AWSGreengrass ReadOnlyAccess](#aws-managed-policies-AWSGreengrassReadOnlyAccess)
+ [AWS política gerenciada: AWSGreengrass ResourceAccessRolePolicy](#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy)
+ [AWS IoT Greengrass atualizações nas políticas AWS gerenciadas](#aws-managed-policy-updates)

## AWS política gerenciada: AWSGreengrass FullAccess
<a name="aws-managed-policies-AWSGreengrassFullAccess"></a>

É possível anexar a política `AWSGreengrassFullAccess` às suas identidades do IAM.

Essa política concede permissões administrativas que permitem a uma entidade principal acessar todas as ações do AWS IoT Greengrass .

**Detalhes de permissões**

Esta política inclui as seguintes permissões:
+ `greengrass`: permite às entidades principais acessar todas as ações do AWS IoT Greengrass .

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS política gerenciada: AWSGreengrass ReadOnlyAccess
<a name="aws-managed-policies-AWSGreengrassReadOnlyAccess"></a>

É possível anexar a política `AWSGreengrassReadOnlyAccess` às suas identidades do IAM.

Essa política concede permissões somente leitura que permitem a uma entidade principal visualizar, mas não modificar, as informações no AWS IoT Greengrass. Por exemplo, as entidades principais com essas permissões podem visualizar a lista de componentes implantados em um dispositivo principal do Greengrass, mas não podem criar uma implantação para alterar os componentes que são executados nesse dispositivo.

**Detalhes de permissões**

Esta política inclui as seguintes permissões:
+ `greengrass`: permite às entidades principais executar ações que retornam uma lista de itens ou detalhes sobre um item. Isso inclui as operações de API que começam com `List` ou `Get`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:List*",
                "greengrass:Get*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS política gerenciada: AWSGreengrass ResourceAccessRolePolicy
<a name="aws-managed-policies-AWSGreengrassResourceAccessRolePolicy"></a>

Você pode anexar a `AWSGreengrassResourceAccessRolePolicy` política às suas entidades do IAM. AWS IoT Greengrass também anexa essa política a uma função de serviço que permite AWS IoT Greengrass realizar ações em seu nome. Para obter mais informações, consulte [Função de serviço do Greengrass](greengrass-service-role.md).

Essa política concede permissões administrativas que permitem AWS IoT Greengrass realizar tarefas essenciais, como recuperar suas funções do Lambda, AWS IoT gerenciar sombras de dispositivos e verificar dispositivos clientes do Greengrass.

**Detalhes das permissões**

Esta política inclui as seguintes permissões.
+ `greengrass`: gerenciar os recursos do Greengrass.
+ `iot`(`*Shadow`) — Gerencie AWS IoT sombras que tenham os seguintes identificadores especiais em seus nomes. Essas permissões são necessárias para que o AWS IoT Greengrass possa se comunicar com os dispositivos principais.
  + `*-gci`— AWS IoT Greengrass usa essa sombra para armazenar as principais informações de conectividade do dispositivo, para que os dispositivos clientes possam descobrir e se conectar aos dispositivos principais.
  + `*-gcm`— A AWS IoT Greengrass V1 usa essa sombra para notificar o dispositivo principal de que o certificado de autoridade de certificação (CA) do grupo Greengrass foi rotacionado.
  + `*-gda`— A AWS IoT Greengrass V1 usa essa sombra para notificar o dispositivo principal sobre uma implantação.
  + `GG_*`: não usada.
+ `iot`(`DescribeThing`e`DescribeCertificate`) — Recupere informações sobre AWS IoT itens e certificados. Essas permissões são necessárias para que AWS IoT Greengrass possamos verificar os dispositivos cliente que se conectam a um dispositivo principal. Para obter mais informações, consulte [Interagir com dispositivos de IoT locais](interact-with-local-iot-devices.md).
+ `lambda`— Recupere informações sobre AWS Lambda funções. Essa permissão é necessária para que a AWS IoT Greengrass V1 possa implantar funções Lambda nos núcleos do Greengrass. Para obter mais informações, consulte [Executar a função Lambda no AWS IoT Greengrass núcleo no Guia do](https://docs.aws.amazon.com/greengrass/v1/developerguide/lambda-functions.html) desenvolvedor da *AWS IoT Greengrass V1*.
+ `secretsmanager`— Recupere o valor dos AWS Secrets Manager segredos cujos nomes começam com`greengrass-`. Essa permissão é necessária para que a AWS IoT Greengrass V1 possa implantar segredos do Secrets Manager nos núcleos do Greengrass. Para obter mais informações, consulte [Implantar segredos no AWS IoT Greengrass núcleo](https://docs.aws.amazon.com/greengrass/v1/developerguide/secrets.html) no *Guia do desenvolvedor AWS IoT Greengrass V1*.
+ `s3`: recuperar os objetos de arquivos dos buckets do S3 que têm nomes com `greengrass` ou `sagemaker`. Essas permissões são necessárias para que a AWS IoT Greengrass V1 possa implantar recursos de aprendizado de máquina que você armazena em buckets do S3. Para obter mais informações, consulte [Recursos de aprendizado de máquina](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html#ml-resources) no *Guia do desenvolvedor AWS IoT Greengrass V1*.
+ `sagemaker`— Recupere informações sobre os modelos de inferência de aprendizado de máquina da Amazon SageMaker AI. Essa permissão é necessária para que a AWS IoT Greengrass V1 possa implantar modelos de ML nos núcleos do Greengrass. Para obter mais informações, consulte [Executar inferência de aprendizado de máquina](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html) no Guia do *desenvolvedor AWS IoT Greengrass V1*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGreengrassAccessToShadows",
            "Action": [
                "iot:DeleteThingShadow",
                "iot:GetThingShadow",
                "iot:UpdateThingShadow"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iot:*:*:thing/GG_*",
                "arn:aws:iot:*:*:thing/*-gcm",
                "arn:aws:iot:*:*:thing/*-gda",
                "arn:aws:iot:*:*:thing/*-gci"
            ]
        },
        {
            "Sid": "AllowGreengrassToDescribeThings",
            "Action": [
                "iot:DescribeThing"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:thing/*"
        },
        {
            "Sid": "AllowGreengrassToDescribeCertificates",
            "Action": [
                "iot:DescribeCertificate"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:cert/*"
        },
        {
            "Sid": "AllowGreengrassToCallGreengrassServices",
            "Action": [
                "greengrass:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetLambdaFunctions",
            "Action": [
                "lambda:GetFunction",
                "lambda:GetFunctionConfiguration"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetGreengrassSecrets",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:secretsmanager:*:*:secret:greengrass-*"
        },
        {
            "Sid": "AllowGreengrassAccessToS3Objects",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*Greengrass*",
                "arn:aws:s3:::*GreenGrass*",
                "arn:aws:s3:::*greengrass*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*sagemaker*"
            ]
        },
        {
            "Sid": "AllowGreengrassAccessToS3BucketLocation",
            "Action": [
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassAccessToSageMakerTrainingJobs",
            "Action": [
                "sagemaker:DescribeTrainingJob"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:sagemaker:*:*:training-job/*"
            ]
        }
    ]
}
```

------

## AWS IoT Greengrass atualizações nas políticas AWS gerenciadas
<a name="aws-managed-policy-updates"></a>

Você pode ver detalhes sobre as atualizações das políticas AWS gerenciadas a AWS IoT Greengrass partir do momento em que esse serviço começou a rastrear essas alterações. Para receber alertas automáticos sobre alterações nessa página, assine o feed RSS na página de [histórico de documentos da AWS IoT Greengrass V2](document-history.md).


| Alteração | Descrição | Data | 
| --- | --- | --- | 
|  AWS IoT Greengrass começou a rastrear as alterações  |  AWS IoT Greengrass começou a rastrear as mudanças em suas políticas AWS gerenciadas.  |  2 de julho de 2021  | 

# Prevenção contra o ataque do “substituto confuso” em todos os serviços
<a name="cross-service-confused-deputy-prevention"></a>

O problema "confused deputy" é um problema de segurança em que uma entidade que não tem permissão para executar uma ação pode coagir uma entidade mais privilegiada a executar a ação. Em AWS, a falsificação de identidade entre serviços pode resultar no problema confuso do deputado. A personificação entre serviços pode ocorrer quando um serviço (o *serviço de chamada*) chama outro serviço (o *serviço chamado*). O serviço de chamada pode ser manipulado de modo a usar suas permissões para atuar nos recursos de outro cliente de uma forma na qual ele não deveria ter permissão para acessar. Para evitar isso, a AWS fornece ferramentas que ajudam você a proteger seus dados para todos os serviços com entidades principais de serviço que receberam acesso aos recursos em sua conta. 

Recomendamos usar as chaves de contexto de condição [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)e as chaves de contexto nas políticas de recursos para limitar as permissões que AWS IoT Greengrass concedem outro serviço ao recurso. Se você utilizar ambas as chaves de contexto de condição global, o valor `aws:SourceAccount` e a conta `aws:SourceArn` no valor deverão utilizar o mesmo ID de conta quando utilizados na mesma instrução de política.

O valor de `aws:SourceArn` deve ser o recurso do cliente do Greengrass associado à solicitação `sts:AssumeRole`.

A maneira mais eficaz de se proteger do problema ‘confused deputy’ é usar a chave de contexto de condição global `aws:SourceArn` com o ARN completo do recurso. Se você não souber o ARN completo do recurso ou se especificar vários recursos, use a chave de condição de contexto global `aws:SourceArn` com curingas (`*`) para as partes desconhecidas do ARN. Por exemplo, .`arn:aws:greengrass::account-id:*` 

Para um exemplo de uma política que usa as chaves de contexto de condição global `aws:SourceArn` e `aws:SourceAccount`, consulte [Criar a função de serviço do Greengrass](greengrass-service-role.md#create-service-role).

# Solução de problemas de identidade e acesso para AWS IoT Greengrass
<a name="security_iam_troubleshoot"></a>

Use as informações a seguir para ajudá-lo a diagnosticar e corrigir problemas comuns que você pode encontrar ao trabalhar com AWS IoT Greengrass um IAM.

**Topics**
+ [Não estou autorizado a realizar uma ação em AWS IoT Greengrass](#security_iam_troubleshoot-no-permissions)
+ [Não estou autorizado a realizar iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Sou administrador e quero permitir que outras pessoas acessem AWS IoT Greengrass](#security_iam_troubleshoot-admin-delegate)
+ [Quero permitir que pessoas fora da minha Conta da AWS acessem meus AWS IoT Greengrass recursos](#security_iam_troubleshoot-cross-account-access)

Para obter ajuda geral com a solução de problemas, consulte [Solução de problemas AWS IoT Greengrass V2](troubleshooting.md).

## Não estou autorizado a realizar uma ação em AWS IoT Greengrass
<a name="security_iam_troubleshoot-no-permissions"></a>

Se você receber uma mensagem de erro informando que você não está autorizado a executar a ação, entre em contato com o administrador para obter assistência. O administrador é a pessoa que forneceu a você o seu nome de usuário e senha.

O erro de exemplo a seguir ocorre quando o usuário do IAM `mateojackson` tenta visualizar detalhes de um dispositivo principal, mas não tem as permissões `greengrass:GetCoreDevice`.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: greengrass:GetCoreDevice on resource: arn:aws:greengrass:us-west-2:123456789012:coreDevices/MyGreengrassCore
```

Neste caso, Mateo pede ao administrador para atualizar suas políticas para permitir a ele o acesso ao recurso `arn:aws:greengrass:us-west-2:123456789012:coreDevices/MyGreengrassCore` usando a ação `greengrass:GetCoreDevice`.

Veja a seguir os problemas gerais do IAM que você pode encontrar ao trabalhar com AWS IoT Greengrass.

## Não estou autorizado a realizar iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Se você receber uma mensagem de erro informando que não está autorizado a executar a ação `iam:PassRole`, as suas políticas devem ser atualizadas para permitir que você passe uma função para o AWS IoT Greengrass.

Alguns Serviços da AWS permitem que você passe uma função existente para esse serviço em vez de criar uma nova função de serviço ou uma função vinculada ao serviço. Para fazê-lo, você deve ter permissões para passar o perfil para o serviço.

O exemplo de erro a seguir ocorre quando uma usuária do IAM chamada `marymajor` tenta utilizar o console para executar uma ação no AWS IoT Greengrass. No entanto, a ação exige que o serviço tenha permissões concedidas por um perfil de serviço. Mary não tem permissões para passar o perfil para o serviço.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Nesse caso, as políticas de Mary devem ser atualizadas para permitir que ela realize a ação `iam:PassRole`.

Se precisar de ajuda, entre em contato com seu AWS administrador. Seu administrador é a pessoa que forneceu suas credenciais de login.

## Sou administrador e quero permitir que outras pessoas acessem AWS IoT Greengrass
<a name="security_iam_troubleshoot-admin-delegate"></a>

Para permitir que outras pessoas acessem AWS IoT Greengrass, você deve conceder permissão às pessoas ou aplicativos que precisam de acesso. Se você estiver usando o Centro de Identidade do AWS IAM para gerenciar pessoas e aplicações, atribua conjuntos de permissões a usuários ou grupos para definir o nível de acesso. Os conjuntos de permissões criam e atribuem automaticamente políticas do IAM aos perfis do IAM associados à pessoa ou aplicação. Para ter mais informações, consulte [Conjuntos de permissões](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.

Se você não estiver usando o Centro de Identidade do IAM, deverá criar entidades do IAM (usuários ou perfis) para as pessoas ou aplicações que precisam de acesso. Você deve anexar uma política à entidade que concede a eles as permissões corretas no AWS IoT Greengrass. Depois que as permissões forem concedidas, forneça as credenciais ao usuário ou desenvolvedor da aplicação. Eles usarão essas credenciais para acessar AWS. Para saber mais sobre como criar grupos, políticas, permissões e usuários do IAM, consulte [Identidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) e [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.

## Quero permitir que pessoas fora da minha Conta da AWS acessem meus AWS IoT Greengrass recursos
<a name="security_iam_troubleshoot-cross-account-access"></a>

Você pode criar uma função do IAM que usuários de outras contas ou pessoas fora da sua organização possam usar para acessar seus AWS recursos. Você pode especificar quem é confiável para assumir a função. Para obter mais informações, consulte [Fornecer acesso a um usuário do IAM em outro Conta da AWS de sua](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) propriedade e [Fornecer acesso a Conta da AWS um de propriedade de terceiros](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) no *Guia do usuário do IAM*.

AWS IoT Greengrass não oferece suporte ao acesso entre contas com base em políticas baseadas em recursos ou listas de controle de acesso (). ACLs

# Permitir o tráfego de dispositivos por meio de um proxy ou firewall
<a name="allow-device-traffic"></a>

Os principais dispositivos e componentes do Greengrass realizam solicitações externas para AWS serviços e outros sites. Como medida de segurança, é possível limitar o tráfego de saída a uma pequena variedade de endpoints e portas. É possível usar as seguintes informações sobre endpoints e portas para limitar o tráfego de dispositivos por meio de um proxy, firewall ou [grupo de segurança da Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html). Para obter mais informações sobre como configurar um dispositivo principal para usar um proxy, consulte [Conectar-se à porta 443 ou por meio de um proxy de rede](configure-greengrass-core-v2.md#configure-alpn-network-proxy).

**Topics**
+ [Endpoints para operação básica](#core-endpoints)
+ [Endpoints para instalação com provisionamento automático](#automatic-provisioning-endpoints)
+ [Endpoints para componentes AWS fornecidos](#public-component-endpoints)

## Endpoints para operação básica
<a name="core-endpoints"></a>

Os dispositivos principais do Greengrass usam os seguintes endpoints e portas para operação básica.

### Recupere endpoints AWS IoT
<a name="retrieve-iot-endpoints"></a>

Obtenha os AWS IoT endpoints para você Conta da AWS e salve-os para usar mais tarde. Seu dispositivo usa esses endpoints para se conectar à AWS IoT. Faça o seguinte:

1. Obtenha o endpoint de AWS IoT dados para você Conta da AWS.

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

   ```
   {
     "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
   }
   ```

1. Obtenha o endpoint AWS IoT de credenciais para seu. Conta da AWS

   ```
   aws iot describe-endpoint --endpoint-type iot:CredentialProvider
   ```

   Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

   ```
   {
     "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
   }
   ```


| Endpoint | Porta | Obrigatório | Description | 
| --- | --- | --- | --- | 
|  `greengrass-ats.iot.region.amazonaws.com`  | 8443 ou 443 | Sim |  Usado para operações de plano de dados, como instalar implantações e trabalhar com dispositivos cliente.  | 
|  `device-data-prefix-ats.iot.region.amazonaws.com`  |  MQTT: 8883 ou 443 HTTPS: 8443 ou 443  | Sim |  Usado para operações de plano de dados para o gerenciamento de dispositivos, como comunicação MQTT e sincronização de sombra com o AWS IoT Core.  | 
|  `device-credentials-prefix.credentials.iot.region.amazonaws.com`  | 443 | Sim |  Usado para adquirir AWS credenciais, que o dispositivo principal usa para baixar artefatos de componentes do Amazon S3 e realizar outras operações. Para obter mais informações, consulte [Autorize os dispositivos principais a interagir com os serviços AWS](device-service-role.md).  | 
|  `*.s3.amazonaws.com` `*.s3.region.amazonaws.com`  | 443 | Sim |  Usado para implantações. Este formato inclui o caractere `*`, porque os prefixos de endpoint são controlados internamente e podem mudar a qualquer momento.  | 
|  `data.iot.region.amazonaws.com`  | 443 | Não |  Obrigatório se o dispositivo principal executar uma versão do [núcleo do Greengrass](greengrass-nucleus-component.md) anterior à versão 2.4.0 e estiver configurado para usar um proxy de rede. O dispositivo principal usa esse endpoint para comunicação MQTT AWS IoT Core quando está atrás de um proxy. Para obter mais informações, consulte [Configurar uma proxy de rede](configure-greengrass-core-v2.md#configure-network-proxy).  | 

## Endpoints para instalação com provisionamento automático
<a name="automatic-provisioning-endpoints"></a>

Os dispositivos principais do Greengrass usam os seguintes endpoints e portas quando você [instala o software AWS IoT Greengrass Core com provisionamento automático](quick-installation.md) de recursos.


| Endpoint | Porta | Obrigatório | Description | 
| --- | --- | --- | --- | 
|  `iot.region.amazonaws.com`  | 443 | Sim |  Usado para criar AWS IoT recursos e recuperar informações sobre AWS IoT os recursos existentes.  | 
|  `iam.amazonaws.com`  | 443 | Sim |  Usado para criar recursos do IAM e recuperar informações sobre recursos existentes do IAM.  | 
|  `sts.region.amazonaws.com`  | 443 | Sim |  Usado para obter a identificação do seu Conta da AWS.  | 
|  `greengrass.region.amazonaws.com`  | 443 | Não |  Obrigatório se você usar o argumento `--deploy-dev-tools` para implantar o componente da CLI do Greengrass no dispositivo principal.  | 

## Endpoints para componentes AWS fornecidos
<a name="public-component-endpoints"></a>

Os dispositivos principais do Greengrass usam endpoints adicionais, dependendo de quais componentes de software eles executam. Você pode encontrar os endpoints que cada componente AWS fornecido exige na seção **Requisitos** da página de cada componente neste guia do desenvolvedor. Para obter mais informações, consulte [Componentes fornecidos pela AWS](public-components.md).

# Validação de conformidade do AWS IoT Greengrass
<a name="compliance-validation"></a>

Para saber se um AWS service (Serviço da AWS) está no escopo de programas de conformidade específicos, consulte [Serviços da AWS in Scope by Compliance Program](https://aws.amazon.com/compliance/services-in-scope/) e selecione o programa de conformidade do seu interesse. Para obter informações gerais, consulte [Programas de Conformidade da AWS](https://aws.amazon.com/compliance/programs/).

É possível baixar relatórios de auditoria de terceiros usando o AWS Artifact. Para obter mais informações, consulte [Baixar relatórios no AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html).

Sua responsabilidade de conformidade ao usar o Serviços da AWS é determinada pela confidencialidade dos seus dados, pelos objetivos de conformidade da sua empresa e pelos regulamentos e leis aplicáveis. Para ter mais informações sobre sua responsabilidade pela conformidade ao usar Serviços da AWS, consulte a [documentação da AWS sobre segurança](https://docs.aws.amazon.com/security/).

# Endpoints do FIPS
<a name="FIPS"></a>

AWS IoT Greengrass suporta o uso de endpoints FIPS ([Federal Information Processing Standard (FIPS) 140-2)](https://aws.amazon.com/compliance/fips/). Quando o modo FIPS está ativado, todas as transmissões de dados, incluindo os protocolos HTTP e MQTT, para os serviços da Nuvem AWS devem ser invocadas e estabelecer conexões com os endpoints compatíveis com o FIPS correspondente, ([FIPS - Amazon Web Services, [AWS]](https://aws.amazon.com/compliance/fips/)).

Comunicações MQTT para AWS IoT utilizar o endpoint FIPS do plano de dados de IoT [(conectando-se AWS IoT aos endpoints FIPS AWS IoT Core-) e a biblioteca criptográfica compatível com FIPS desenvolvida aws-lc](https://docs.aws.amazon.com/iot/latest/developerguide/iot-connect-fips.html#iot-connect-fips-data). AWS

Para comunicações HTTP no Greengrass:
+ Para componentes de núcleo e plug-in, todos os clientes HTTP do SDK são configurados com endpoints FIPS definindo a propriedade do sistema como verdadeira; AWS\$1USE\$1FIPS\$1ENDPOINT 
+ Para componentes genéricos, todos os componentes começam com a propriedade do sistema AWS\$1USE\$1FIPS\$1ENDPOINT definida como verdadeira. Esse processo garante que os clientes HTTP do SDK usados por esses componentes genéricos enviem solicitações para endpoints compatíveis com o FIPS.

**nota**  
No caso do Stream Manager, o Nucleus passa a variável de ambiente AWS\$1GG \$1FIPS\$1MODE. Essa variável de ambiente permite que os clientes HTTP utilizados no Stream Manager identifiquem e se conectem ao endpoint compatível com o FIPS correspondente.

AWS IoT Greengrass oferece dois métodos para ativar o modo FIPS: provisionamento e implantação. Para ativar o modo FIPS, você precisa definir o parâmetro `fipsMode` de configuração como verdadeiro. O Nucleus então define a propriedade do sistema como verdadeira e AWS\$1USE\$1FIPS\$1ENDPOINT a propaga como uma variável de ambiente para todos os outros componentes. Além disso, AWS IoT Greengrass baixará um certificado CA raiz (CA3) e o anexará ao arquivo RootCA.pem (ou .pem) existente. AmazonRoot CA1 Se você habilitar o FIPS por meio de uma nova implantação, o núcleo será reiniciado para garantir que a propriedade do sistema entre em vigor após a ativação do modo FIPS.

 Além de configurar o parâmetro `fipsMode`, também é preciso configurar os parâmetros `iotDataEndpoint`, `iotCredEndpoint` e `greengrassDataEndpoint`. Para mais informações, consulte a documentação relevante abaixo.

## Habilitar o endpoints do FIPS com implantação
<a name="FIPS-deployment"></a>

Obtenha os AWS IoT endpoints para você Conta da AWS e salve-os para usar mais tarde. Seu dispositivo usa esses endpoints para se conectar à AWS IoT. São necessários dois endpoints, o `iotDataEndpoint` e o `iotCredEndpoint`. Faça o seguinte:

1. Obtenha o endpoint de dados do FIPS para sua região nos [endpoints do plano de dados do FIPS do AWS IoT Core .](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints) O endpoint de dados FIPS para você Conta da AWS deve ter a seguinte aparência: *data.iot-fips.us-west-2.amazonaws.com*

1. Obtenha o endpoint de credenciais do FIPS para sua região em [endpoints do plano de dados do FIPS do AWS IoT Core .](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints) O endpoint de credenciais FIPS para você Conta da AWS deve ter a seguinte aparência: *data.credentials.iot-fips.us-west-2.amazonaws.com*

Em seguida, para habilitar o FIPS com uma implantação, você precisa aplicar a seguinte configuração ao núcleo. A configuração a ser mesclada na implantação é como a seguir.

------
#### [ Console ]

**Configuração a ser mesclada**  

```
{
  "fipsMode": "true",
  "iotDataEndpoint": "data.iot-fips.us-west-2.amazonaws.com",
  "greengrassDataPlaneEndpoint": "iotData",
  "iotCredEndpoint": "data.credentials.iot-fips.us-west-2.amazonaws.com"
}
```

------
#### [ AWS CLI ]

O comando a seguir cria uma implantação em um dispositivo principal.

```
aws greengrassv2 create-deployment --cli-input-json file://dashboard-deployment.json
```

O arquivo `dashboard-deployment.json` contém o documento JSON a seguir.

```
{
  "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
  "deploymentName": "Deployment for MyGreengrassCore",
  "components": {
    "aws.greengrass.Nucleus": {
      "componentVersion": "2.13.0",
      "configurationUpdate": {
        "merge":{\"fipsMode\":\"true\",\"iotDataEndpoint\":\"data.iot-fips.us-west-2.amazonaws.com\",\"greengrassDataPlaneEndpoint\":\"iotData\",\"iotCredEndpoint\":\"data.credentials.iot-fips.us-west-2.amazonaws.com\"}"
      }
    }
  }
}
```

------
#### [ Greengrass CLI ]

O comando da [CLI do Greengrass](greengrass-cli-component.md) a seguir cria uma implantação local em um dispositivo principal.

```
sudo greengrass-cli deployment create \
  --recipeDir recipes \
  --artifactDir artifacts \
  --merge "aws.greengrass.Nucleus=2.13.0" \
  --update-config dashboard-configuration.json
```

O arquivo `dashboard-configuration.json` contém o documento JSON a seguir.

```
{
  "aws.greengrass.Nucleus": {
    "MERGE": {
       "fipsMode": "true",
       "iotDataEndpoint": "data.iot-fips.us-west-2.amazonaws.com",
       "greengrassDataPlaneEndpoint": "iotData",
       "iotCredEndpoint": "data.credentials.iot-fips.us-west-2.amazonaws.com"

    }
  }
}
```

------

## Instale o núcleo com endpoints do FIPS com provisionamento manual de recursos
<a name="FIPS-manual-installation"></a>

Provisione manualmente AWS recursos para dispositivos AWS IoT Greengrass V2 principais com endpoints FIPS

**Importante**  <a name="install-greengrass-core-requirements-note"></a>
Antes de baixar o software AWS IoT Greengrass Core, verifique se seu dispositivo principal atende aos [requisitos](greengrass-nucleus-component.md#greengrass-v2-requirements) para instalar e executar o software AWS IoT Greengrass Core v2.0.

**Topics**
+ [Recupere endpoints AWS IoT](#w2ab1c58c44c23b9)
+ [Crie qualquer AWS IoT coisa](#create-iot-thing)
+ [Criar o certificado do objeto](#create-thing-certificate-fips)
+ [Criar um perfil de troca de token](#create-token-exchange-role)
+ [Baixar certificados para o dispositivo](#download-thing-certificates)
+ [Configurar o ambiente do dispositivo](#set-up-device-environment)
+ [Baixe o software AWS IoT Greengrass Core](#download-greengrass-core-v2)
+ [Instale o software AWS IoT Greengrass Core](#run-greengrass-core-v2-installer-manual-fips)

### Recupere endpoints AWS IoT
<a name="w2ab1c58c44c23b9"></a>

Obtenha os AWS IoT endpoints para você Conta da AWS e salve-os para usar mais tarde. Seu dispositivo usa esses endpoints para se conectar à AWS IoT. São necessários dois endpoints, o `iotDataEndpoint` e o `iotCredEndpoint`. Faça o seguinte:

1. Obtenha o endpoint de dados do FIPS para sua região nos [endpoints do plano de dados do FIPS do AWS IoT Core .](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints) O endpoint de dados FIPS para você Conta da AWS deve ter a seguinte aparência: *data.iot-fips.us-west-2.amazonaws.com*

1. Obtenha o endpoint de credenciais do FIPS para sua região em [endpoints do plano de dados do FIPS do AWS IoT Core .](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints) O endpoint de credenciais FIPS para você Conta da AWS deve ter a seguinte aparência: *data.credentials.iot-fips.us-west-2.amazonaws.com*

### Crie qualquer AWS IoT coisa
<a name="create-iot-thing"></a>

AWS IoT *as coisas* representam dispositivos e entidades lógicas que se conectam AWS IoT a. Os principais dispositivos do Greengrass são AWS IoT coisas. Quando você registra um dispositivo como uma AWS IoT coisa, esse dispositivo pode usar um certificado digital para se autenticar AWS.

Nesta seção, você cria AWS IoT algo que representa seu dispositivo.

**Para criar qualquer AWS IoT coisa**

1. Crie qualquer AWS IoT coisa para o seu dispositivo. Execute o comando a seguir no computador de desenvolvimento.
   + *MyGreengrassCore*Substitua pelo nome da coisa a ser usada. Esse nome também é o nome do dispositivo principal do Greengrass.
**nota**  <a name="install-argument-thing-name-constraint"></a>
O nome do objeto não pode conter caracteres de dois pontos (`:`).

   ```
   aws iot create-thing --thing-name MyGreengrassCore
   ```

   Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

   ```
   {
     "thingName": "MyGreengrassCore",
     "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
     "thingId": "8cb4b6cd-268e-495d-b5b9-1713d71dbf42"
   }
   ```

1. (Opcional) Adicione a AWS IoT coisa a um grupo de coisas novo ou existente. Use grupos de objetos para gerenciar frotas de dispositivos principais do Greengrass. Ao implantar componentes de software nos dispositivos, é possível segmentar dispositivos individuais ou grupos de dispositivos. É possível adicionar um dispositivo a um grupo de objetos com uma implantação ativa do Greengrass para implantar os componentes de software desse grupo de objetos no dispositivo. Faça o seguinte:

   1. (Opcional) Crie um grupo de AWS IoT coisas.
      + *MyGreengrassCoreGroup*Substitua pelo nome do grupo de coisas a ser criado.
**nota**  <a name="install-argument-thing-group-name-constraint"></a>
O nome do grupo de objetos não pode conter caracteres de dois pontos (`:`).

      ```
      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup
      ```

      Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

      ```
      {
        "thingGroupName": "MyGreengrassCoreGroup",
        "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup",
        "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa"
      }
      ```

   1. Adicione a AWS IoT coisa a um grupo de coisas.
      + *MyGreengrassCore*Substitua pelo nome da sua AWS IoT coisa.
      + *MyGreengrassCoreGroup*Substitua pelo nome do grupo de coisas.

      ```
      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup
      ```

      O comando não terá nenhuma saída se a solicitação for bem-sucedida.

### Criar o certificado do objeto
<a name="create-thing-certificate-fips"></a>

<a name="create-thing-certificate-intro-1"></a>Quando você registra um dispositivo como uma AWS IoT coisa, esse dispositivo pode usar um certificado digital para se autenticar AWS. Esse certificado permite que o dispositivo se comunique com AWS IoT AWS IoT Greengrass e.

<a name="create-thing-certificate-intro-2"></a>Nesta seção, você cria e baixa certificados que o dispositivo pode usar para se conectar com a AWS.

<a name="create-thing-certificate-intro-3"></a>Se você quiser configurar o software AWS IoT Greengrass Core para usar um módulo de segurança de hardware (HSM) para armazenar com segurança a chave privada e o certificado, siga as etapas para criar o certificado a partir de uma chave privada em um HSM. Caso contrário, siga as etapas para criar o certificado e a chave privada no AWS IoT serviço. O atributo de segurança de hardware está disponível somente em dispositivos Linux. Para mais informações sobre a segurança do hardware e os requisitos para usá-lo, consulte [Integração de segurança de hardware](hardware-security.md).

#### Crie o certificado e a chave privada no AWS IoT serviço
<a name="create-thing-certificate-cloud"></a><a name="create-thing-certificate-cloud-steps"></a>

**Para criar o certificado do objeto**

1. Crie uma pasta na qual você baixa os certificados da AWS IoT coisa.

   ```
   mkdir greengrass-v2-certs
   ```

1. Crie e baixe os certificados da AWS IoT coisa.

   ```
   aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile greengrass-v2-certs/device.pem.crt --public-key-outfile greengrass-v2-certs/public.pem.key --private-key-outfile greengrass-v2-certs/private.pem.key
   ```

   Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----",
     "keyPair": {
       "PublicKey": "-----BEGIN PUBLIC KEY-----\
   MIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\
   MMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\
   59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\
   hJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\
   FQIDAQAB\
   -----END PUBLIC KEY-----\
   ",
       "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\
   key omitted for security reasons\
   -----END RSA PRIVATE KEY-----\
   "
     }
   }
   ```

   Salve o nome do recurso da Amazon (ARN) do certificado para usar na configuração do certificado posteriormente.

#### Crie o certificado a partir de uma chave privada em um HSM
<a name="create-thing-certificate-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. 

**Para criar o certificado do objeto**

1. No dispositivo principal, inicialize um token PKCS\$111 no HSM e gere uma chave privada. A chave privada precisa ser uma chave RSA com um tamanho de chave RSA-2048 (ou maior) ou uma chave 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.

   Consulte a documentação do HSM para saber como inicializar o token e gerar a chave privada. Se seu HSM oferecer suporte a objetos IDs, especifique um ID de objeto ao gerar a chave privada. Salve o ID do slot, o PIN do usuário, o rótulo do objeto e o ID do objeto (se o HSM usar um) que você especifica ao inicializar o token e gerar a chave privada. Você usa esses valores posteriormente ao importar o certificado do item para o HSM e configurar o software AWS IoT Greengrass Core.

1. Crie uma solicitação de assinatura de certificado (CSR) a partir da chave privada. A AWS IoT usa essa CSR para criar um certificado para a chave privada que você gerou no HSM. Para informações sobre como criar um CSR a partir da chave privada, consulte a documentação do HSM. O CSR é um arquivo, como `iotdevicekey.csr`.

1. Copie a CSR do dispositivo para o computador de desenvolvimento. Se o SSH e o SCP estiverem habilitados no computador de desenvolvimento e no dispositivo, será possível usar o comando `scp` no computador de desenvolvimento para transferir o CSR. *device-ip-address*Substitua pelo endereço IP do seu dispositivo e *\$1/iotdevicekey.csr* substitua pelo caminho para o arquivo CSR no dispositivo.

   ```
   scp device-ip-address:~/iotdevicekey.csr iotdevicekey.csr
   ```

1. No seu computador de desenvolvimento, crie uma pasta na qual você baixa o certificado da AWS IoT coisa.

   ```
   mkdir greengrass-v2-certs
   ```

1. Use o arquivo CSR para criar e baixar o certificado do objeto da AWS IoT no computador de desenvolvimento.

   ```
   aws iot create-certificate-from-csr --set-as-active --certificate-signing-request=file://iotdevicekey.csr --certificate-pem-outfile greengrass-v2-certs/device.pem.crt
   ```

   Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----"
   }
   ```

   Salve o ARN do certificado para usar na configuração do certificado posteriormente.

Em seguida, configure o certificado da coisa. Para obter mais informações, consulte [Configurar o certificado do objeto](manual-installation.md#configure-thing-certificate).

### Criar um perfil de troca de token
<a name="create-token-exchange-role"></a>

<a name="installation-create-token-exchange-role-intro"></a>Os dispositivos principais do Greengrass usam uma função de serviço do IAM, chamada função de *troca de tokens*, para autorizar chamadas para serviços. AWS O dispositivo usa o provedor de AWS IoT credenciais para obter AWS credenciais temporárias para essa função, o que permite que o dispositivo interaja AWS IoT, envie registros para o Amazon CloudWatch Logs e baixe artefatos de componentes personalizados do Amazon S3. Para obter mais informações, consulte [Autorize os dispositivos principais a interagir com os serviços AWS](device-service-role.md).

<a name="installation-create-token-exchange-role-alias-intro"></a>Você usa um *alias de AWS IoT função* para configurar a função de troca de tokens para os dispositivos principais do Greengrass. Os aliases de perfil permitem que você altere o perfil de troca de tokens de um dispositivo, mas mantenha a mesma configuração do dispositivo. Para mais informações, consulte [Autorizar de chamadas diretas para serviços da AWS](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) no *Guia do desenvolvedor do AWS IoT Core *.

Nesta seção, você cria uma função do IAM de troca de tokens e um alias de AWS IoT função que aponta para a função. Se você já configurou um dispositivo principal do Greengrass, pode usar o perfil de troca de tokens e o alias de perfil em vez de criar novos. Em seguida, você configura o objeto da AWS IoT do dispositivo para usar esse perfil e alias.

**Para criar um perfil do IAM de troca de token**

1. <a name="create-token-exchange-role-create-iam-role"></a>Crie um perfil do IAM que seu dispositivo possa usar como um perfil de troca de tokens. Faça o seguinte:

   1. Crie um arquivo que contenha o documento de política de confiança exigido pelo perfil de troca de token.

      <a name="nano-command-intro"></a>Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o arquivo.

      ```
      nano device-role-trust-policy.json
      ```

      Copie o seguinte JSON no arquivo.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "credentials.iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

   1. Crie o perfil de troca de token com o documento de política de confiança.
      + *GreengrassV2TokenExchangeRole*Substitua pelo nome da função do IAM a ser criada.

      ```
      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json
      ```

      Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

      ```
      {
        "Role": {
          "Path": "/",
          "RoleName": "GreengrassV2TokenExchangeRole",
          "RoleId": "AROAZ2YMUHYHK5OKM77FB",
          "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
          "CreateDate": "2021-02-06T00:13:29+00:00",
          "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Principal": {
                  "Service": "credentials.iot.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
              }
            ]
          }
        }
      ```

   1. Crie um arquivo que contenha o documento de política de acesso exigido pelo perfil de troca de token.

      <a name="nano-command-intro"></a>Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o arquivo.

      ```
      nano device-role-access-policy.json
      ```

      Copie o seguinte JSON no arquivo.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "logs:CreateLogGroup",
              "logs:CreateLogStream",
              "logs:PutLogEvents",
              "logs:DescribeLogStreams",
              "s3:GetBucketLocation"
            ],
            "Resource": "*"
          }
        ]
      }
      ```
**nota**  
Essa política de acesso não permite acesso a artefatos de componentes nos buckets do S3. Para implantar componentes personalizados que definem artefatos no Amazon S3, é preciso adicionar permissões ao perfil para permitir que seu dispositivo principal recupere artefatos de componentes. Para obter mais informações, consulte [Permitir acesso aos buckets do S3 para artefatos de componentes](device-service-role.md#device-service-role-access-s3-bucket).  
Se você ainda não tem um bucket do S3 para artefatos de componentes, é possível adicionar essas permissões depois de criar um bucket.

   1. Crie uma política do IAM a partir do documento de política.
      + *GreengrassV2TokenExchangeRoleAccess*Substitua pelo nome da política do IAM a ser criada.

      ```
      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json
      ```

      Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

      ```
      {
        "Policy": {
          "PolicyName": "GreengrassV2TokenExchangeRoleAccess",
          "PolicyId": "ANPAZ2YMUHYHACI7C5Z66",
          "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
          "Path": "/",
          "DefaultVersionId": "v1",
          "AttachmentCount": 0,
          "PermissionsBoundaryUsageCount": 0,
          "IsAttachable": true,
          "CreateDate": "2021-02-06T00:37:17+00:00",
          "UpdateDate": "2021-02-06T00:37:17+00:00"
        }
      }
      ```

   1. Anexe a política do IAM ao perfil de troca de token.
      + Substitua *GreengrassV2TokenExchangeRole* pelo nome da perfil do IAM.
      + Substitua o ARN da política pelo ARN da política do IAM que você criou na etapa anterior.

      ```
      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
      ```

      O comando não terá nenhuma saída se a solicitação for bem-sucedida.

1. <a name="create-token-exchange-role-create-iot-role-alias"></a>Crie um alias de AWS IoT função que aponte para a função de troca de tokens.
   + *GreengrassCoreTokenExchangeRoleAlias*Substitua pelo nome do alias de função a ser criado.
   + Substitua o ARN do perfil pelo ARN do perfil do IAM que você criou na etapa anterior.

   ```
   aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole
   ```

   Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

   ```
   {
     "roleAlias": "GreengrassCoreTokenExchangeRoleAlias",
     "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
   }
   ```
**nota**  
Para criar um alias do perfil, é preciso ter permissão para passar o perfil do IAM de troca de token para a AWS IoT. Se você receber uma mensagem de erro ao tentar criar um alias de função, verifique se o AWS usuário tem essa permissão. Para obter mais informações, consulte [Conceder permissões a um usuário para passar uma função para um AWS serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) no *Guia do AWS Identity and Access Management usuário*.

1. Crie e anexe uma AWS IoT política que permita que seu dispositivo principal do Greengrass use o alias de função para assumir a função de troca de tokens. Se você já configurou um dispositivo principal do Greengrass, pode anexar sua AWS IoT política de alias de função em vez de criar uma nova. Faça o seguinte:

   1. (Opcional) Crie um arquivo que contenha o documento AWS IoT de política exigido pelo alias da função.

      <a name="nano-command-intro"></a>Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o arquivo.

      ```
      nano greengrass-v2-iot-role-alias-policy.json
      ```

      Copie o JSON a seguir no arquivo.
      + Substitua o ARN do recurso pelo ARN do alias da do perfil.

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "iot:AssumeRoleWithCertificate",
            "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
          }
        ]
      }
      ```

   1. Crie uma AWS IoT política a partir do documento de política.
      + *GreengrassCoreTokenExchangeRoleAliasPolicy*Substitua pelo nome da AWS IoT política a ser criada.

      ```
      aws iot create-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --policy-document file://greengrass-v2-iot-role-alias-policy.json
      ```

      Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

      ```
      {
        "policyName": "GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyDocument": "{
          \\"Version\\":\\"2012-10-17		 	 	 \\",
          \\"Statement\\": [
            {
              \\"Effect\\": \\"Allow\\",
              \\"Action\\": \\"iot:AssumeRoleWithCertificate\\",
              \\"Resource\\": \\"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\\"
            }
          ]
        }",
        "policyVersionId": "1"
      }
      ```

   1. Anexe a AWS IoT política ao certificado da AWS IoT coisa.
      + *GreengrassCoreTokenExchangeRoleAliasPolicy*Substitua pelo nome da AWS IoT política de alias de função.
      + Substitua o ARN de destino pelo ARN do certificado do objeto da AWS IoT .

      ```
      aws iot attach-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
      ```

      O comando não terá nenhuma saída se a solicitação for bem-sucedida.

### Baixar certificados para o dispositivo
<a name="download-thing-certificates"></a>

Anteriormente, você baixou o certificado do dispositivo para o computador de desenvolvimento. Nesta seção, você copia o certificado para o seu dispositivo principal para configurar o dispositivo com os certificados que ele usa para se conectar à AWS IoT. Você também pode baixar o certificado da autoridade de certificação raiz (CA) da Amazon. Se você usa um HSM, também importa o arquivo de certificado para o HSM nesta seção.
+ Se você criou o certificado e a chave privada do item no AWS IoT serviço anteriormente, siga as etapas para baixar os certificados com a chave privada e os arquivos de certificado.
+ Se você criou o certificado do objeto a partir de uma chave privada em um módulo de segurança de hardware (HSM) anteriormente, siga as etapas para baixar os certificados com a chave privada e o certificado em um HSM.

#### Baixar certificados com a chave privada e arquivos de certificado
<a name="download-thing-certificates-without-hardware-security"></a>

**Para baixar certificados para o dispositivo**

1. <a name="installation-copy-thing-certificate-to-device"></a>Copie o AWS IoT certificado do item do seu computador de desenvolvimento para o dispositivo. Se o SSH e o SCP estiverem habilitados no computador de desenvolvimento e no dispositivo, será possível usar o comando `scp` no computador de desenvolvimento para transferir o certificado. *device-ip-address*Substitua pelo endereço IP do seu dispositivo.

   ```
   scp -r greengrass-v2-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Crie a pasta raiz do Greengrass no dispositivo. Posteriormente, você instalará o software AWS IoT Greengrass Core nessa pasta.
**nota**  
O Windows tem uma limitação de comprimento de caminho de 260 caracteres. Se você estiver usando o Windows, use uma pasta raiz como `C:\greengrass\v2` ou `D:\greengrass\v2` para manter os caminhos dos componentes do Greengrass abaixo do limite de 260 caracteres.

------
#### [ Linux or Unix ]
   + Substitua `/greengrass/v2` pela pasta a ser usada.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Substitua *C:\$1greengrass\$1v2* pela pasta a ser usada.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + Substitua *C:\$1greengrass\$1v2* pela pasta a ser usada.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Somente Linux) Defina as permissões do pai da pasta raiz do Greengrass.
   + */greengrass*Substitua pelo pai da pasta raiz.

   ```
   sudo chmod 755 /greengrass
   ```

1. Copie os certificados do AWS IoT item para a pasta raiz do Greengrass.

------
#### [ Linux or Unix ]
   + Substitua `/greengrass/v2` pela pasta raiz do Greengrass.

   ```
   sudo cp -R ~/greengrass-v2-certs/* /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Substitua *C:\$1greengrass\$1v2* pela pasta a ser usada.

   ```
   robocopy %USERPROFILE%\greengrass-v2-certs C:\greengrass\v2 /E
   ```

------
#### [ PowerShell ]
   + Substitua *C:\$1greengrass\$1v2* pela pasta a ser usada.

   ```
   cp -Path ~\greengrass-v2-certs\* -Destination C:\greengrass\v2
   ```

------

1. Faça download do certificado da autoridade de certificação (CA) raiz da Amazon. Os certificados da AWS IoT são associados ao certificado CA raiz da Amazon por padrão. Baixe o CA1 certificado e o [CA3certificado](https://www.amazontrust.com/repository/).

------
#### [ Linux or Unix ]
   + Substitua `/greengrass/v2` ou *C:\$1greengrass\$1v2* pela pasta raiz do Greengrass.

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

#### Baixar certificados com a chave privada e o certificado em um HSM
<a name="download-thing-certificates-with-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. 

**Para baixar certificados para o dispositivo**

1. <a name="installation-copy-thing-certificate-to-device"></a>Copie o AWS IoT certificado do item do seu computador de desenvolvimento para o dispositivo. Se o SSH e o SCP estiverem habilitados no computador de desenvolvimento e no dispositivo, será possível usar o comando `scp` no computador de desenvolvimento para transferir o certificado. *device-ip-address*Substitua pelo endereço IP do seu dispositivo.

   ```
   scp -r greengrass-v2-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Crie a pasta raiz do Greengrass no dispositivo. Posteriormente, você instalará o software AWS IoT Greengrass Core nessa pasta.
**nota**  
O Windows tem uma limitação de comprimento de caminho de 260 caracteres. Se você estiver usando o Windows, use uma pasta raiz como `C:\greengrass\v2` ou `D:\greengrass\v2` para manter os caminhos dos componentes do Greengrass abaixo do limite de 260 caracteres.

------
#### [ Linux or Unix ]
   + Substitua `/greengrass/v2` pela pasta a ser usada.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Substitua *C:\$1greengrass\$1v2* pela pasta a ser usada.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + Substitua *C:\$1greengrass\$1v2* pela pasta a ser usada.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Somente Linux) Defina as permissões do pai da pasta raiz do Greengrass.
   + */greengrass*Substitua pelo pai da pasta raiz.

   ```
   sudo chmod 755 /greengrass
   ```

1. Importe o arquivo de certificado do objeto, `~/greengrass-v2-certs/device.pem.crt`, para o HSM. Consulte a documentação do HSM para saber como importar certificados para ele. Importe o certificado usando o mesmo token, ID do slot, PIN do usuário, rótulo do objeto e ID do objeto (se o HSM usar um) em que você gerou a chave privada no HSM anteriormente.
**nota**  
Se você gerou a chave privada anteriormente sem uma ID de objeto e o certificado tiver uma ID de objeto, defina a ID do objeto da chave privada com o mesmo valor do certificado. Consulte a documentação do HSM para saber como definir o ID do objeto de chave privada.

1. (Opcional) Exclua o arquivo de certificado do item, para que ele exista somente no HSM.

   ```
   rm ~/greengrass-v2-certs/device.pem.crt
   ```

1. Faça download do certificado da autoridade de certificação (CA) raiz da Amazon. Os certificados da AWS IoT são associados ao certificado CA raiz da Amazon por padrão. Faça o download do certificado CA1 e do [CA3certificado](https://www.amazontrust.com/repository/).

------
#### [ Linux or Unix ]
   + Substitua `/greengrass/v2` ou *C:\$1greengrass\$1v2* pela pasta raiz do Greengrass.

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

### Configurar o ambiente do dispositivo
<a name="set-up-device-environment"></a>

Siga as etapas nesta seção para configurar um dispositivo Linux ou Windows para usar como dispositivo principal do AWS IoT Greengrass .

#### Configurar um dispositivo Linux
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Para configurar um dispositivo Linux para AWS IoT Greengrass V2**

1. Instale o Java Runtime, que o software AWS IoT Greengrass Core exige para ser executado. Recomendamos que você use as versões de suporte de longo prazo do [Amazon Corretto](https://aws.amazon.com/corretto/) ou do [OpenJDK](https://openjdk.java.net/). A versão 8 ou superior é obrigatória. Os seguintes comandos mostram como instalar o OpenJDK no dispositivo.
   + Para distribuições com base em Debian ou em Ubuntu:

     ```
     sudo apt install default-jdk
     ```
   + Para distribuições com base em Red Hat:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Para Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Para Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Quando a instalação for concluída, execute o seguinte comando para verificar se o Java é executado no dispositivo Linux.

   ```
   java -version
   ```

   O comando imprime a versão do Java que é executada no dispositivo. Por exemplo, em uma distribuição baseada em Debian, o resultado pode ser semelhante ao seguinte exemplo.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Opcional) Crie o usuário e o grupo padrão do sistema que executa componentes no dispositivo. Você também pode optar por permitir que o instalador do software AWS IoT Greengrass Core crie esse usuário e grupo durante a instalação com o argumento do `--component-default-user` instalador. Para obter mais informações, consulte [Argumentos de instalação](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Verifique se o usuário que executa o software AWS IoT Greengrass Core (normalmente`root`) tem permissão para executar `sudo` com qualquer usuário e qualquer grupo.

   1. Execute o seguinte comando para abrir o arquivo `/etc/sudoers`.

      ```
      sudo visudo
      ```

   1. Verifique se a permissão do usuário se parece com o seguinte exemplo.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. (Opcional) Para [executar funções do Lambda em contêineres](run-lambda-functions.md), habilite [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1 e habilite e monte os cgroups de *memória* e *dispositivos*. Se você não planeja executar funções do Lambda em contêineres, ignore esta etapa.

   Para habilitar essas opções de cgroups, inicialize o dispositivo com os seguintes parâmetros do kernel do Linux.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Para mais informações sobre como visualizar e definir parâmetros do kernel para o dispositivo, consulte a documentação do sistema operacional e do carregador de inicialização. Siga as instruções para definir permanentemente os parâmetros do kernel.

1. Instale todas as outras dependências necessárias no dispositivo, conforme indicado na lista de requisitos em [Requisitos do dispositivo](greengrass-nucleus-component.md#greengrass-v2-requirements).

#### Configurar um dispositivo Windows
<a name="set-up-windows-device-environment"></a>

**nota**  
Esse recurso está disponível para a versão 2.5.0 e posterior do [componente de Greengrass nucleus](greengrass-nucleus-component.md).<a name="set-up-windows-device-environment-procedure"></a>

**Para configurar um dispositivo Windows para AWS IoT Greengrass V2**

1. Instale o Java Runtime, que o software AWS IoT Greengrass Core exige para ser executado. Recomendamos que você use as versões de suporte de longo prazo do [Amazon Corretto](https://aws.amazon.com/corretto/) ou do [OpenJDK](https://openjdk.java.net/). A versão 8 ou superior é obrigatória.

1. Verifique se o Java está disponível na variável de sistema [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) e, caso contrário, adicione. A LocalSystem conta executa o software AWS IoT Greengrass Core, então você deve adicionar Java à variável de sistema PATH em vez da variável de usuário PATH para seu usuário. Faça o seguinte:

   1. Pressione a tecla Windows para abrir o menu Iniciar.

   1. Digite **environment variables** para pesquisar as opções do sistema no menu Iniciar.

   1. Nos resultados da pesquisa do menu Iniciar, escolha **Editar as variáveis de ambiente do sistema** para abrir a janela **Propriedades do sistema**.

   1. Escolha **Variáveis de ambiente...** para abrir a janela **Variáveis de ambiente**.

   1. Em **Variáveis de Sistema**, selecione a variável **Path** e em seguida **Editar**. Na janela **Editar variável de ambiente**, você visualiza cada caminho em uma linha separada.

   1. Verifique se o caminho para a pasta `bin` da instalação do Java está presente. O arquivo pode ser semelhante ao seguinte exemplo.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Se a pasta `bin` da instalação do Java estiver ausente do **Path**, selecione **Novo** para adicioná-la e, em seguida, selecione **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Abra o prompt de comando do Windows (`cmd.exe`) como um administrador.

1. <a name="set-up-windows-device-environment-create"></a>Crie o usuário padrão na LocalSystem conta no dispositivo Windows. *password*Substitua por uma senha segura.

   ```
   net user /add ggc_user password
   ```
**dica**  <a name="windows-password-expiration-tip"></a>
Dependendo da configuração do Windows, a senha do usuário pode ser definida para expirar em uma data futura. Para garantir que as aplicações Greengrass continuem operando, monitore quando a senha expira e atualize-a antes disso. Também é possível definir que a senha nunca expire.  
Para verificar quando um usuário e senha expiram, execute o comando a seguir.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Para definir que a senha de um usuário nunca expire, execute o seguinte comando.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Se você estiver usando o Windows 10 ou posterior, onde o [`wmic`comando está obsoleto](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), execute o comando a seguir. PowerShell   

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Baixe e instale o [PsExecutilitário](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) da Microsoft no dispositivo. 

1. <a name="set-up-windows-device-credentials"></a>Use o PsExec utilitário para armazenar o nome de usuário e a senha do usuário padrão na instância do Credential Manager da LocalSystem conta. *password*Substitua pela senha do usuário que você definiu anteriormente.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Se **PsExec License Agreement** abrir, selecione **Accept** para concordar com a licença e execute o comando.
**nota**  
Em dispositivos Windows, a LocalSystem conta executa o núcleo Greengrass, e você deve usar o PsExec utilitário para armazenar as informações padrão do usuário na conta. LocalSystem O uso do aplicativo Credential Manager armazena essas informações na conta do Windows do usuário atualmente conectado, em vez da LocalSystem conta.

### Baixe o software AWS IoT Greengrass Core
<a name="download-greengrass-core-v2"></a>

Você pode baixar a versão mais recente do software AWS IoT Greengrass Core no seguinte local:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**nota**  
Você pode baixar uma versão específica do software AWS IoT Greengrass Core no seguinte local. *version*Substitua pela versão a ser baixada.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Para baixar o software AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Em seu dispositivo principal, baixe o software AWS IoT Greengrass Core para um arquivo chamado`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Ao fazer download desse software, você concorda com o [Contrato de licença do software do Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Opcional) Para verificar a assinatura do software do Greengrass nucleus
**nota**  
Esse atributo está disponível com o Greengrass nucleus versão 2.9.5 e posterior.

   1. Use o comando a seguir para verificar a assinatura do artefato do Greengrass nucleus:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      O nome do arquivo pode parecer diferente dependendo da versão do JDK que você instala. Substitua *`jdk17.0.6_10`* pela versão do JDK que você instalou.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      O nome do arquivo pode parecer diferente dependendo da versão do JDK que você instala. Substitua *`jdk17.0.6_10`* pela versão do JDK que você instalou.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. A invocação `jarsigner` produz uma saída que indica os resultados da verificação.

      1. Se o arquivo zip do Greengrass nucleus estiver assinado, a saída conterá a seguinte declaração:

         ```
         jar verified.
         ```

      1. Se o arquivo zip do Greengrass nucleus não estiver assinado, a saída conterá a seguinte declaração:

         ```
         jar is unsigned.
         ```

   1. Se você forneceu a opção `-certs` do Jarsigner junto com as opções `-verify` e `-verbose`, a saída também incluirá informações detalhadas do certificado do assinante.

1. <a name="installation-unzip-ggc-software-step"></a>Descompacte o software AWS IoT Greengrass Core em uma pasta no seu dispositivo. *GreengrassInstaller*Substitua pela pasta que você deseja usar.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Opcional) Execute o comando a seguir para ver a versão do software AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**Importante**  <a name="installer-folder-2.4.0-warning"></a>
Se você instalar uma versão do núcleo do Greengrass anterior à v2.4.0, não remova essa pasta depois de instalar o software Core. AWS IoT Greengrass O software AWS IoT Greengrass Core usa os arquivos dessa pasta para ser executado.  
Se você baixou a versão mais recente do software, instale a versão 2.4.0 ou posterior e poderá remover essa pasta depois de instalar o software AWS IoT Greengrass Core.

### Instale o software AWS IoT Greengrass Core
<a name="run-greengrass-core-v2-installer-manual-fips"></a>

Execute o instalador com argumentos que especificam as seguintes ações:
+ Instale a partir de um arquivo de configuração parcial que especifica o uso dos recursos da AWS e certificados que você criou anteriormente. O software AWS IoT Greengrass Core usa um arquivo de configuração que especifica a configuração de cada componente do Greengrass no dispositivo. O instalador cria um arquivo de configuração completo a partir do arquivo de configuração parcial fornecido por você.
+ <a name="install-argument-component-default-user"></a>Especifique o uso do usuário do sistema `ggc_user` para executar componentes de software no dispositivo principal. Em dispositivos Linux, esse comando também especifica o uso do grupo do sistema `ggc_group` e o instalador cria o usuário e o grupo do sistema para você.
+ <a name="install-argument-system-service"></a>Configure o software AWS IoT Greengrass Core como um serviço do sistema que é executado na inicialização. Em dispositivos Linux, isso requer o sistema init [Systemd](https://en.wikipedia.org/wiki/Systemd).
**Importante**  <a name="windows-system-service-requirement-important-note"></a>
Nos dispositivos principais do Windows, você deve configurar o software AWS IoT Greengrass Core como um serviço do sistema.

Para mais informações sobre os argumentos que podem ser especificados, consulte [Argumentos de instalação](configure-installer.md).

**nota**  
<a name="jvm-tuning-note"></a>Se você estiver executando AWS IoT Greengrass em um dispositivo com memória limitada, poderá controlar a quantidade de memória que o software AWS IoT Greengrass Core usa. Para controlar a alocação de memória, é possível definir as opções de tamanho do heap do JVM no parâmetro de configuração `jvmOptions` no componente do núcleo. Para obter mais informações, consulte [Controlar a alocação de memória com opções de JVM](configure-greengrass-core-v2.md#jvm-tuning).
+ Se você criou o certificado e a chave privada do item no AWS IoT serviço anteriormente, siga as etapas para instalar o software AWS IoT Greengrass Core com a chave privada e os arquivos de certificado.
+ Se você criou o certificado do item a partir de uma chave privada em um módulo de segurança de hardware (HSM) anteriormente, siga as etapas para instalar o software AWS IoT Greengrass Core com a chave privada e o certificado em um HSM.

#### Instale o software AWS IoT Greengrass Core com arquivos de chave privada e certificado
<a name="FIPS-manual-installation-without-hardware-security"></a>

**Para instalar o software AWS IoT Greengrass Core**

1. <a name="installer-check-greengrass-core-software-version"></a>Verifique a versão do software AWS IoT Greengrass Core.
   + *GreengrassInstaller*Substitua pelo caminho para a pasta que contém o software.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Use um editor de texto para criar um arquivo de configuração chamado `config.yaml` para fornecer ao instalador.

   <a name="nano-command-intro"></a>Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o arquivo.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Copie o seguinte conteúdo YAML para o arquivo. Esse arquivo de configuração parcial especifica os parâmetros do sistema e os parâmetros do Greengrass nucleus.

   ```
   ---
   system:
     certificateFilePath: "/greengrass/v2/device.pem.crt"
     privateKeyPath: "/greengrass/v2/private.pem.key"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.16.1"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
   ```

   Faça o seguinte:
   + Substitua cada instância de `/greengrass/v2` pela pasta raiz do Greengrass.
   + *MyGreengrassCore*Substitua pelo nome da AWS IoT coisa.
   + *2.16.1*Substitua pela versão do software AWS IoT Greengrass Core.
   + *us-west-2*Substitua pelo Região da AWS local em que você criou os recursos.
   + *GreengrassCoreTokenExchangeRoleAlias*Substitua pelo nome do alias da função de troca de tokens.
   + Substitua o *iotDataEndpoint* por seu endpoint de AWS IoT dados.
   + Substitua o *iotCredEndpoint* pelo endpoint de suas AWS IoT credenciais.

1. Execute o instalador e especifique `--init-config` para fornecer o arquivo de configuração.
   + Substitua `/greengrass/v2` ou *C:\$1greengrass\$1v2* pela pasta raiz do Greengrass.
   + Substitua cada instância do *GreengrassInstaller* pela pasta em que você descompactou o instalador.

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --init-config ./GreengrassInstaller/config.yaml ^
     --component-default-user ggc_user ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --init-config ./GreengrassInstaller/config.yaml `
     --component-default-user ggc_user `
     --setup-system-service true
   ```

------
**Importante**  <a name="windows-system-service-installer-argument-important-note"></a>
Nos dispositivos principais do Windows, você deve especificar `--setup-system-service true` a configuração do software AWS IoT Greengrass Core como um serviço do sistema.

   <a name="installer-setup-system-service-output-message"></a>Se você especificar `--setup-system-service true`, o instalador imprimirá `Successfully set up Nucleus as a system service` se ele configurou e executou o software como um serviço do sistema. Caso contrário, o instalador não emitirá nenhuma mensagem se instalar o software com êxito.
**nota**  <a name="installer-deploy-dev-tools-without-provision"></a>
Não é possível usar o argumento `deploy-dev-tools` para implantar ferramentas de desenvolvimento local ao executar o instalador sem o argumento `--provision true`. Para informações sobre a implantação da CLI do Greengrass diretamente no dispositivo, consulte [Interface de linha de comando do Greengrass](gg-cli.md).

1. <a name="installer-verify-installation"></a>Verifique a instalação visualizando os arquivos na pasta raiz.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Se a instalação for bem-sucedida, a pasta raiz conterá várias pastas, como `config`, `packages` e `logs`.

#### Instale o software AWS IoT Greengrass Core com a chave privada e o certificado em um HSM
<a name="FIPS-manual-installation-with-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. 

**Para instalar o software AWS IoT Greengrass Core**

1. <a name="installer-check-greengrass-core-software-version"></a>Verifique a versão do software AWS IoT Greengrass Core.
   + *GreengrassInstaller*Substitua pelo caminho para a pasta que contém o software.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Para permitir que o software AWS IoT Greengrass Core use a chave privada e o certificado no HSM, instale o [componente do provedor PKCS \$111](pkcs11-provider-component.md) ao instalar o software AWS IoT Greengrass Core. O componente do provedor PKCS\$111 é um plug-in que você pode configurar durante a instalação. É possível baixar a versão mais recente do componente do provedor PKCS\$111 no seguinte local:
   + [https://d2s8p88vqu9w66.cloudfront. net/releases/Pkcs11Provider/aws.greengrass.crypto.pkcs11Provider-Latest.jar](https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar)

   Baixe o plug-in do provedor PKCS\$111 para um arquivo chamado `aws.greengrass.crypto.Pkcs11Provider.jar`. *GreengrassInstaller*Substitua pela pasta que você deseja usar.

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar > GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar
   ```

   <a name="core-software-license"></a>Ao fazer download desse software, você concorda com o [Contrato de licença do software do Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. Use um editor de texto para criar um arquivo de configuração chamado `config.yaml` para fornecer ao instalador.

   <a name="nano-command-intro"></a>Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o arquivo.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Copie o seguinte conteúdo YAML para o arquivo. Esse arquivo de configuração parcial especifica os parâmetros do sistema, os parâmetros do Greengrass nucleus e os parâmetros do provedor PKCS\$111.

   ```
   ---
   system:
     certificateFilePath: "/greengrass/v2/device.pem.crt"
     privateKeyPath: "/greengrass/v2/private.pem.key"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.16.1"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
   ```

   Faça o seguinte:
   + Substitua cada instância do PKCS \$111 URIs pelo rótulo do objeto *iotdevicekey* em que você criou a chave privada e importou o certificado.
   + Substitua cada instância de `/greengrass/v2` pela pasta raiz do Greengrass.
   + *MyGreengrassCore*Substitua pelo nome da AWS IoT coisa.
   + *2.16.1*Substitua pela versão do software AWS IoT Greengrass Core.
   + *us-west-2*Substitua pelo Região da AWS local em que você criou os recursos.
   + *GreengrassCoreTokenExchangeRoleAlias*Substitua pelo nome do alias da função de troca de tokens.
   + Substitua o `iotDataEndpoint` por seu endpoint de AWS IoT dados.
   + Substitua o `iotCredEndpoint` pelo seu endpoint de credenciais da AWS IoT .
   + Substitua os parâmetros de configuração do componente `aws.greengrass.crypto.Pkcs11Provider` pelos valores da configuração do HSM no dispositivo principal.

1. Execute o instalador e especifique `--init-config` para fornecer o arquivo de configuração.
   + Substitua `/greengrass/v2` pela pasta raiz do Greengrass.
   + Substitua cada instância do *GreengrassInstaller* pela pasta em que você descompactou o instalador.

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```
**Importante**  <a name="windows-system-service-installer-argument-important-note"></a>
Nos dispositivos principais do Windows, você deve especificar `--setup-system-service true` a configuração do software AWS IoT Greengrass Core como um serviço do sistema.

   <a name="installer-setup-system-service-output-message"></a>Se você especificar `--setup-system-service true`, o instalador imprimirá `Successfully set up Nucleus as a system service` se ele configurou e executou o software como um serviço do sistema. Caso contrário, o instalador não emitirá nenhuma mensagem se instalar o software com êxito.
**nota**  <a name="installer-deploy-dev-tools-without-provision"></a>
Não é possível usar o argumento `deploy-dev-tools` para implantar ferramentas de desenvolvimento local ao executar o instalador sem o argumento `--provision true`. Para informações sobre a implantação da CLI do Greengrass diretamente no dispositivo, consulte [Interface de linha de comando do Greengrass](gg-cli.md).

1. <a name="installer-verify-installation"></a>Verifique a instalação visualizando os arquivos na pasta raiz.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Se a instalação for bem-sucedida, a pasta raiz conterá várias pastas, como `config`, `packages` e `logs`.

<a name="install-greengrass-core-run-software"></a>Se você instalou o software AWS IoT Greengrass Core como um serviço do sistema, o instalador executa o software para você. Caso contrário, será preciso executar o software manualmente. Para obter mais informações, consulte [Execute o software AWS IoT Greengrass Core](run-greengrass-core-v2.md).

<a name="install-greengrass-core-next-steps-intro"></a>Para obter mais informações sobre como configurar e usar o software AWS IoT Greengrass, consulte o seguinte:<a name="install-greengrass-core-next-steps-links"></a>
+ [Configurar o software AWS IoT Greengrass principal](configure-greengrass-core-v2.md)
+ [Desenvolver componentes do AWS IoT Greengrass](develop-greengrass-components.md)
+ [Implemente AWS IoT Greengrass componentes em dispositivos](manage-deployments.md)
+ [Interface de linha de comando do Greengrass](gg-cli.md)

## Instalar endpoints do FIPS com provisionamento de frota
<a name="FIPS-fleet-provisioning"></a>

Esse recurso está disponível para a versão 2.4.0 e posterior do [componente de Greengrass nucleus](greengrass-nucleus-component.md).

Instale endpoints FIPS em seu software AWS IoT Greengrass Core com provisionamento de AWS IoT frota para seus dispositivos principais.

**nota**  
Atualmente, o plug-in de provisionamento de frota não oferece suporte ao armazenamento de arquivos de chave privada e certificado em um módulo de segurança de hardware (HSM). Para usar um HSM, [instale o software AWS IoT Greengrass Core com provisionamento manual](#FIPS-fleet-provisioning).

Para instalar o software AWS IoT Greengrass Core com provisionamento de AWS IoT frota, você deve configurar os recursos Conta da AWS que são AWS IoT usados para provisionar os dispositivos principais do Greengrass. Esses recursos incluem um modelo de provisionamento, certificados de reivindicação e um [perfil do IAM de troca de tokens](device-service-role.md). Depois de criar esses recursos, é possível reutilizá-los para provisionar vários dispositivos principais em uma frota. Para obter mais informações, consulte [Configure o provisionamento AWS IoT da frota para os principais dispositivos do Greengrass](fleet-provisioning-setup.md).

**Importante**  <a name="install-greengrass-core-requirements-note"></a>
Antes de baixar o software AWS IoT Greengrass Core, verifique se seu dispositivo principal atende aos [requisitos](greengrass-nucleus-component.md#greengrass-v2-requirements) para instalar e executar o software AWS IoT Greengrass Core v2.0.

**Topics**
+ [Pré-requisitos](#fleet-provisioning-prerequisites)
+ [Recupere endpoints AWS IoT](#retrieve-iot-endpoints)
+ [Baixar certificados para o dispositivo](#download-claim-certificates)
+ [Configurar o ambiente do dispositivo](#set-up-device-environment-fleet-provisioning)
+ [Baixe o software AWS IoT Greengrass Core](#download-greengrass-core-v2-fleet)
+ [Baixe o plug-in de aprovisionamento de AWS IoT frotas](#download-fleet-provisioning-plugin)
+ [Instale o software AWS IoT Greengrass Core](#run-greengrass-core-v2-installer-fleet-provisioning)

### Pré-requisitos
<a name="fleet-provisioning-prerequisites"></a>

Para instalar o software AWS IoT Greengrass Core com provisionamento de AWS IoT frota, você deve primeiro [configurar o provisionamento de AWS IoT frota para os dispositivos principais do Greengrass](fleet-provisioning-setup.md). Depois de concluir essas etapas uma vez, você pode usar o provisionamento de frota para instalar o software AWS IoT Greengrass Core em qualquer número de dispositivos.

### Recupere endpoints AWS IoT
<a name="retrieve-iot-endpoints"></a>

Obtenha os endpoints FIPS para você Conta da AWS e salve-os para usar mais tarde. Seu dispositivo usa esses endpoints para se conectar à AWS IoT. Faça o seguinte:

1. Obtenha o endpoint de dados do FIPS para sua região nos [endpoints do plano de dados do FIPS do AWS IoT Core .](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints) O endpoint de dados FIPS para você Conta da AWS deve ter a seguinte aparência: *data.iot-fips.us-west-2.amazonaws.com*

1. Obtenha o endpoint de credenciais do FIPS para sua região em [endpoints do plano de dados do FIPS do AWS IoT Core .](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-data-plane-endpoints) O endpoint de credenciais FIPS para você Conta da AWS deve ter a seguinte aparência: *data.credentials.iot-fips.us-west-2.amazonaws.com*

### Baixar certificados para o dispositivo
<a name="download-claim-certificates"></a>

O dispositivo usa um certificado de solicitação e uma chave privada para autenticar sua solicitação para provisionar AWS recursos e adquirir um certificado de dispositivo X.509. É possível incorporar o certificado de reivindicação e a chave privada no dispositivo durante a fabricação ou copiar o certificado e a chave para o dispositivo durante a instalação. Nesta seção, você copia o certificado de reivindicação e a chave privada para o dispositivo. Você também pode baixar o certificado da autoridade de certificação (CA) raiz da Amazon ao dispositivo.

**Importante**  <a name="installation-fleet-provisioning-secure-claim-private-keys"></a>
O provisionamento de chaves privadas de reivindicação deve ser protegido o tempo todo, inclusive em dispositivos principais do Greengrass. Recomendamos que você use CloudWatch métricas e registros da Amazon para monitorar indícios de uso indevido, como o uso não autorizado do certificado de solicitação para provisionar dispositivos. Se você detectar uso indevido, desative o certificado de reivindicação de provisionamento para que ele não possa ser usado para o provisionamento de dispositivos. Para obter mais informações, consulte [Monitorar AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) no *Guia do Desenvolvedor do AWS IoT Core *.  
Para ajudá-lo a gerenciar melhor o número de dispositivos e quais dispositivos se registram no seu Conta da AWS, você pode especificar um gancho de pré-provisionamento ao criar um modelo de aprovisionamento de frota. Um gancho de pré-provisionamento é uma AWS Lambda função que valida os parâmetros do modelo que os dispositivos fornecem durante o registro. Por exemplo, você pode criar um hook de pré-provisionamento que compara a ID do dispositivo a um banco de dados para verificar se ele tem permissão para provisionar. Para mais informações, consulte [Hooks de pré-provisionamento](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) no *Guia do desenvolvedor da AWS IoT Core *.

**Para baixar certificados de reivindicação para o dispositivo**

1. Copie o certificado de reivindicação e a chave privada para o dispositivo. Se o SSH e o SCP estiverem habilitados no computador de desenvolvimento e no dispositivo, será possível usar o comando `scp` no computador de desenvolvimento para transferir o certificado de reivindicação e a chave privada. O comando de exemplo a seguir transfere esses arquivos de uma pasta chamada `claim-certs` no computador de desenvolvimento para o dispositivo. *device-ip-address*Substitua pelo endereço IP do seu dispositivo.

   ```
   scp -r claim-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Crie a pasta raiz do Greengrass no dispositivo. Posteriormente, você instalará o software AWS IoT Greengrass Core nessa pasta.
**nota**  
O Windows tem uma limitação de comprimento de caminho de 260 caracteres. Se você estiver usando o Windows, use uma pasta raiz como `C:\greengrass\v2` ou `D:\greengrass\v2` para manter os caminhos dos componentes do Greengrass abaixo do limite de 260 caracteres.

------
#### [ Linux or Unix ]
   + Substitua `/greengrass/v2` pela pasta a ser usada.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Substitua *C:\$1greengrass\$1v2* pela pasta a ser usada.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + Substitua *C:\$1greengrass\$1v2* pela pasta a ser usada.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Somente Linux) Defina as permissões do pai da pasta raiz do Greengrass.
   + */greengrass*Substitua pelo pai da pasta raiz.

   ```
   sudo chmod 755 /greengrass
   ```

1. Mova os certificados de reivindicação para a pasta raiz do Greengrass.
   + Substitua `/greengrass/v2` ou *C:\$1greengrass\$1v2* pela pasta raiz do Greengrass.

------
#### [ Linux or Unix ]

   ```
   sudo mv ~/claim-certs /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   move %USERPROFILE%\claim-certs C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   mv -Path ~\claim-certs -Destination C:\greengrass\v2
   ```

------

1. Baixe o CA1 certificado e o [CA3certificado](https://www.amazontrust.com/repository/).

------
#### [ Linux or Unix ]

   ```
   sudo curl -o - https://www.amazontrust.com/repository/AmazonRootCA3.pem >> /greengrass/v2/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

### Configurar o ambiente do dispositivo
<a name="set-up-device-environment-fleet-provisioning"></a>

Siga as etapas nesta seção para configurar um dispositivo Linux ou Windows para ser usado como seu dispositivo AWS IoT Greengrass principal.

#### Configurar um dispositivo Linux
<a name="set-up-linux-device-environment-fleet-provisioning"></a><a name="set-up-linux-device-environment-procedure"></a>

**Para configurar um dispositivo Linux para AWS IoT Greengrass V2**

1. Instale o Java Runtime, que o software AWS IoT Greengrass Core exige para ser executado. Recomendamos que você use as versões de suporte de longo prazo do [Amazon Corretto](https://aws.amazon.com/corretto/) ou do [OpenJDK](https://openjdk.java.net/). A versão 8 ou superior é obrigatória. Os seguintes comandos mostram como instalar o OpenJDK no dispositivo.
   + Para distribuições com base em Debian ou em Ubuntu:

     ```
     sudo apt install default-jdk
     ```
   + Para distribuições com base em Red Hat:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Para Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Para Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Quando a instalação for concluída, execute o seguinte comando para verificar se o Java é executado no dispositivo Linux.

   ```
   java -version
   ```

   O comando imprime a versão do Java que é executada no dispositivo. Por exemplo, em uma distribuição baseada em Debian, o resultado pode ser semelhante ao seguinte exemplo.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Opcional) Crie o usuário e o grupo padrão do sistema que executa componentes no dispositivo. Você também pode optar por permitir que o instalador do software AWS IoT Greengrass Core crie esse usuário e grupo durante a instalação com o argumento do `--component-default-user` instalador. Para obter mais informações, consulte [Argumentos de instalação](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Verifique se o usuário que executa o software AWS IoT Greengrass Core (normalmente`root`) tem permissão para executar `sudo` com qualquer usuário e qualquer grupo.

   1. Execute o seguinte comando para abrir o arquivo `/etc/sudoers`.

      ```
      sudo visudo
      ```

   1. Verifique se a permissão do usuário se parece com o seguinte exemplo.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. (Opcional) Para [executar funções do Lambda em contêineres](run-lambda-functions.md), habilite [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1 e habilite e monte os cgroups de *memória* e *dispositivos*. Se você não planeja executar funções do Lambda em contêineres, ignore esta etapa.

   Para habilitar essas opções de cgroups, inicialize o dispositivo com os seguintes parâmetros do kernel do Linux.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Para mais informações sobre como visualizar e definir parâmetros do kernel para o dispositivo, consulte a documentação do sistema operacional e do carregador de inicialização. Siga as instruções para definir permanentemente os parâmetros do kernel.

1. Instale todas as outras dependências necessárias no dispositivo, conforme indicado na lista de requisitos em [Requisitos do dispositivo](greengrass-nucleus-component.md#greengrass-v2-requirements).

#### Configurar um dispositivo Windows
<a name="set-up-windows-device-environment-fleet-provisioning"></a>

**nota**  
Esse recurso está disponível para a versão 2.5.0 e posterior do [componente de Greengrass nucleus](greengrass-nucleus-component.md).<a name="set-up-windows-device-environment-procedure"></a>

**Para configurar um dispositivo Windows para AWS IoT Greengrass V2**

1. Instale o Java Runtime, que o software AWS IoT Greengrass Core exige para ser executado. Recomendamos que você use as versões de suporte de longo prazo do [Amazon Corretto](https://aws.amazon.com/corretto/) ou do [OpenJDK](https://openjdk.java.net/). A versão 8 ou superior é obrigatória.

1. Verifique se o Java está disponível na variável de sistema [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) e, caso contrário, adicione. A LocalSystem conta executa o software AWS IoT Greengrass Core, então você deve adicionar Java à variável de sistema PATH em vez da variável de usuário PATH para seu usuário. Faça o seguinte:

   1. Pressione a tecla Windows para abrir o menu Iniciar.

   1. Digite **environment variables** para pesquisar as opções do sistema no menu Iniciar.

   1. Nos resultados da pesquisa do menu Iniciar, escolha **Editar as variáveis de ambiente do sistema** para abrir a janela **Propriedades do sistema**.

   1. Escolha **Variáveis de ambiente...** para abrir a janela **Variáveis de ambiente**.

   1. Em **Variáveis de Sistema**, selecione a variável **Path** e em seguida **Editar**. Na janela **Editar variável de ambiente**, você visualiza cada caminho em uma linha separada.

   1. Verifique se o caminho para a pasta `bin` da instalação do Java está presente. O arquivo pode ser semelhante ao seguinte exemplo.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Se a pasta `bin` da instalação do Java estiver ausente do **Path**, selecione **Novo** para adicioná-la e, em seguida, selecione **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Abra o prompt de comando do Windows (`cmd.exe`) como um administrador.

1. <a name="set-up-windows-device-environment-create"></a>Crie o usuário padrão na LocalSystem conta no dispositivo Windows. *password*Substitua por uma senha segura.

   ```
   net user /add ggc_user password
   ```
**dica**  <a name="windows-password-expiration-tip"></a>
Dependendo da configuração do Windows, a senha do usuário pode ser definida para expirar em uma data futura. Para garantir que as aplicações Greengrass continuem operando, monitore quando a senha expira e atualize-a antes disso. Também é possível definir que a senha nunca expire.  
Para verificar quando um usuário e senha expiram, execute o comando a seguir.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Para definir que a senha de um usuário nunca expire, execute o seguinte comando.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Se você estiver usando o Windows 10 ou posterior, onde o [`wmic`comando está obsoleto](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), execute o comando a seguir. PowerShell   

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Baixe e instale o [PsExecutilitário](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) da Microsoft no dispositivo. 

1. <a name="set-up-windows-device-credentials"></a>Use o PsExec utilitário para armazenar o nome de usuário e a senha do usuário padrão na instância do Credential Manager da LocalSystem conta. *password*Substitua pela senha do usuário que você definiu anteriormente.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Se **PsExec License Agreement** abrir, selecione **Accept** para concordar com a licença e execute o comando.
**nota**  
Em dispositivos Windows, a LocalSystem conta executa o núcleo Greengrass, e você deve usar o PsExec utilitário para armazenar as informações padrão do usuário na conta. LocalSystem O uso do aplicativo Credential Manager armazena essas informações na conta do Windows do usuário atualmente conectado, em vez da LocalSystem conta.

### Baixe o software AWS IoT Greengrass Core
<a name="download-greengrass-core-v2-fleet"></a>

Você pode baixar a versão mais recente do software AWS IoT Greengrass Core no seguinte local:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**nota**  
Você pode baixar uma versão específica do software AWS IoT Greengrass Core no seguinte local. *version*Substitua pela versão a ser baixada.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Para baixar o software AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Em seu dispositivo principal, baixe o software AWS IoT Greengrass Core para um arquivo chamado`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Ao fazer download desse software, você concorda com o [Contrato de licença do software do Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Opcional) Para verificar a assinatura do software do Greengrass nucleus
**nota**  
Esse atributo está disponível com o Greengrass nucleus versão 2.9.5 e posterior.

   1. Use o comando a seguir para verificar a assinatura do artefato do Greengrass nucleus:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      O nome do arquivo pode parecer diferente dependendo da versão do JDK que você instala. Substitua *`jdk17.0.6_10`* pela versão do JDK que você instalou.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      O nome do arquivo pode parecer diferente dependendo da versão do JDK que você instala. Substitua *`jdk17.0.6_10`* pela versão do JDK que você instalou.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. A invocação `jarsigner` produz uma saída que indica os resultados da verificação.

      1. Se o arquivo zip do Greengrass nucleus estiver assinado, a saída conterá a seguinte declaração:

         ```
         jar verified.
         ```

      1. Se o arquivo zip do Greengrass nucleus não estiver assinado, a saída conterá a seguinte declaração:

         ```
         jar is unsigned.
         ```

   1. Se você forneceu a opção `-certs` do Jarsigner junto com as opções `-verify` e `-verbose`, a saída também incluirá informações detalhadas do certificado do assinante.

1. <a name="installation-unzip-ggc-software-step"></a>Descompacte o software AWS IoT Greengrass Core em uma pasta no seu dispositivo. *GreengrassInstaller*Substitua pela pasta que você deseja usar.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Opcional) Execute o comando a seguir para ver a versão do software AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**Importante**  <a name="installer-folder-2.4.0-warning"></a>
Se você instalar uma versão do núcleo do Greengrass anterior à v2.4.0, não remova essa pasta depois de instalar o software Core. AWS IoT Greengrass O software AWS IoT Greengrass Core usa os arquivos dessa pasta para ser executado.  
Se você baixou a versão mais recente do software, instale a versão 2.4.0 ou posterior e poderá remover essa pasta depois de instalar o software AWS IoT Greengrass Core.

### Baixe o plug-in de aprovisionamento de AWS IoT frotas
<a name="download-fleet-provisioning-plugin"></a>

Você pode baixar a versão mais recente do plug-in de aprovisionamento de AWS IoT frotas no seguinte local:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim](https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar)-latest.jar

**nota**  
Você pode baixar uma versão específica do plug-in de aprovisionamento de AWS IoT frotas no seguinte local. *version*Substitua pela versão a ser baixada. Para mais informações sobre cada versão do plug-in de provisionamento de frota, consulte [Changelog do plugin de aprovisionamento de frota da AWS IoT](fleet-provisioning-changelog.md).  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-version.jar
```

O plug-in de provisionamento de frota é de código aberto. Para ver seu código-fonte, consulte o [plug-in de provisionamento de AWS IoT frota](https://github.com/aws-greengrass/aws-greengrass-fleet-provisioning-by-claim) ativado. GitHub

**Para baixar o plug-in de aprovisionamento de AWS IoT frotas**
+ Em seu dispositivo, baixe o plug-in de aprovisionamento de AWS IoT frota em um arquivo chamado. `aws.greengrass.FleetProvisioningByClaim.jar` *GreengrassInstaller*Substitua pela pasta que você deseja usar.

------
#### [ Linux or Unix ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ Windows Command Prompt (CMD) ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ PowerShell ]

  ```
  iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar -OutFile GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------

  <a name="core-software-license"></a>Ao fazer download desse software, você concorda com o [Contrato de licença do software do Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

### Instale o software AWS IoT Greengrass Core
<a name="run-greengrass-core-v2-installer-fleet-provisioning"></a>

Execute o instalador com argumentos que especificam as seguintes ações:
+ Instale a partir de um arquivo de configuração parcial que especifica o uso do plug-in de provisionamento de frota para provisionar recursos. AWS O software AWS IoT Greengrass Core usa um arquivo de configuração que especifica a configuração de cada componente do Greengrass no dispositivo. O instalador cria um arquivo de configuração completo a partir do arquivo de configuração parcial que você fornece e dos AWS recursos que o plug-in de aprovisionamento de frota cria.
+ <a name="install-argument-component-default-user"></a>Especifique o uso do usuário do sistema `ggc_user` para executar componentes de software no dispositivo principal. Em dispositivos Linux, esse comando também especifica o uso do grupo do sistema `ggc_group` e o instalador cria o usuário e o grupo do sistema para você.
+ <a name="install-argument-system-service"></a>Configure o software AWS IoT Greengrass Core como um serviço do sistema que é executado na inicialização. Em dispositivos Linux, isso requer o sistema init [Systemd](https://en.wikipedia.org/wiki/Systemd).
**Importante**  <a name="windows-system-service-requirement-important-note"></a>
Nos dispositivos principais do Windows, você deve configurar o software AWS IoT Greengrass Core como um serviço do sistema.

Para mais informações sobre os argumentos que podem ser especificados, consulte [Argumentos de instalação](configure-installer.md).

**nota**  
<a name="jvm-tuning-note"></a>Se você estiver executando AWS IoT Greengrass em um dispositivo com memória limitada, poderá controlar a quantidade de memória que o software AWS IoT Greengrass Core usa. Para controlar a alocação de memória, é possível definir as opções de tamanho do heap do JVM no parâmetro de configuração `jvmOptions` no componente do núcleo. Para obter mais informações, consulte [Controlar a alocação de memória com opções de JVM](configure-greengrass-core-v2.md#jvm-tuning).

**Para instalar o software AWS IoT Greengrass Core**

1. <a name="installer-check-greengrass-core-software-version"></a>Verifique a versão do software AWS IoT Greengrass Core.
   + *GreengrassInstaller*Substitua pelo caminho para a pasta que contém o software.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Use um editor de texto para criar um arquivo de configuração chamado `config.yaml` para fornecer ao instalador.

   <a name="nano-command-intro"></a>Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o arquivo.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Copie o seguinte conteúdo YAML para o arquivo. Esse arquivo de configuração parcial especifica os parâmetros para o plug-in de provisionamento de frota. Para informações sobre as opções que você pode especificar, consulte [Configurar o plug-in de aprovisionamento de AWS IoT frotas](fleet-provisioning-configuration.md).

------
#### [ Linux or Unix ]

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
       configuration:
         fipsMode: "true"
         greengrassDataPlaneEndpoint: "iotData"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "/greengrass/v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "/greengrass/v2/claim-certs/claim.pem.crt"
         claimCertificatePrivateKeyPath: "/greengrass/v2/claim-certs/claim.private.pem.key"
         rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

------
#### [ Windows ]

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "C:\\greengrass\\v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "C:\\greengrass\\v2\\claim-certs\\claim.pem.crt"
         claimCertificatePrivateKeyPath: "C:\\greengrass\\v2\\claim-certs\\claim.private.pem.key"
         rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

------

   Faça o seguinte:
   + *2.16.1*Substitua pela versão do software AWS IoT Greengrass Core.
   + Substitua cada instância de `/greengrass/v2` ou *C:\$1greengrass\$1v2* pela pasta raiz do Greengrass.
**nota**  
Em dispositivos Windows, é preciso especificar os separadores de caminho com barras invertidas duplas (`\\`), como `C:\\greengrass\\v2`.
   + *us-west-2*Substitua pela AWS região em que você criou o modelo de provisionamento e outros recursos.
   + Substitua o `iotDataEndpoint` por seu endpoint de AWS IoT dados.
   + Substitua o `iotCredentialEndpoint` pelo seu endpoint de credenciais da AWS IoT .
   + *GreengrassCoreTokenExchangeRoleAlias*Substitua pelo nome do alias da função de troca de tokens.
   + *GreengrassFleetProvisioningTemplate*Substitua pelo nome do modelo de aprovisionamento da frota.
   + Substitua o `claimCertificatePath` pelo caminho para o certificado de reivindicação no dispositivo.
   + Substitua o `claimCertificatePrivateKeyPath` pelo caminho para a chave privada do certificado de reivindicação no dispositivo.
   + Substitua os parâmetros do modelo (`templateParameters`) pelos valores a serem usados para provisionar o dispositivo. Este exemplo se refere ao [modelo de exemplo](fleet-provisioning-setup.md#example-fleet-provisioning-template) que define os parâmetros `ThingName` e `ThingGroupName`.

1. Execute o instalador. Especifique `--trusted-plugin` para fornecer o plug-in de provisionamento de frota e especifique `--init-config` para fornecer o arquivo de configuração.
   + Substitua `/greengrass/v2` pela pasta raiz do Greengrass.
   + Substitua cada instância do *GreengrassInstaller* pela pasta em que você descompactou o instalador.

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar ^
     --init-config ./GreengrassInstaller/config.yaml ^
     --component-default-user ggc_user ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar `
     --init-config ./GreengrassInstaller/config.yaml `
     --component-default-user ggc_user `
     --setup-system-service true
   ```

------
**Importante**  <a name="windows-system-service-installer-argument-important-note"></a>
Nos dispositivos principais do Windows, você deve especificar `--setup-system-service true` a configuração do software AWS IoT Greengrass Core como um serviço do sistema.

   <a name="installer-setup-system-service-output-message"></a>Se você especificar `--setup-system-service true`, o instalador imprimirá `Successfully set up Nucleus as a system service` se ele configurou e executou o software como um serviço do sistema. Caso contrário, o instalador não emitirá nenhuma mensagem se instalar o software com êxito.
**nota**  <a name="installer-deploy-dev-tools-without-provision"></a>
Não é possível usar o argumento `deploy-dev-tools` para implantar ferramentas de desenvolvimento local ao executar o instalador sem o argumento `--provision true`. Para informações sobre a implantação da CLI do Greengrass diretamente no dispositivo, consulte [Interface de linha de comando do Greengrass](gg-cli.md).

1. <a name="installer-verify-installation"></a>Verifique a instalação visualizando os arquivos na pasta raiz.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Se a instalação for bem-sucedida, a pasta raiz conterá várias pastas, como `config`, `packages` e `logs`.

<a name="install-greengrass-core-run-software"></a>Se você instalou o software AWS IoT Greengrass Core como um serviço do sistema, o instalador executa o software para você. Caso contrário, será preciso executar o software manualmente. Para obter mais informações, consulte [Execute o software AWS IoT Greengrass Core](run-greengrass-core-v2.md).

<a name="install-greengrass-core-next-steps-intro"></a>Para obter mais informações sobre como configurar e usar o software AWS IoT Greengrass, consulte o seguinte:<a name="install-greengrass-core-next-steps-links"></a>
+ [Configurar o software AWS IoT Greengrass principal](configure-greengrass-core-v2.md)
+ [Desenvolver componentes do AWS IoT Greengrass](develop-greengrass-components.md)
+ [Implemente AWS IoT Greengrass componentes em dispositivos](manage-deployments.md)
+ [Interface de linha de comando do Greengrass](gg-cli.md)

## Instalar endpoints do FIPS com provisionamento automático de recursos
<a name="FIPS-auto-installation"></a>

O software AWS IoT Greengrass Core inclui um instalador que configura seu dispositivo como um dispositivo principal do Greengrass. Para configurar um dispositivo rapidamente, o instalador pode provisionar a AWS IoT AWS IoT coisa, o grupo de coisas, a função do IAM e o alias da AWS IoT função que o dispositivo principal precisa para operar. O instalador também pode implantar as ferramentas de desenvolvimento local no dispositivo principal, para que você possa usar o dispositivo para desenvolver e testar componentes de software personalizados. O instalador exige credenciais da AWS para provisionar esses recursos e criar a implantação.

Se você não puder fornecer AWS credenciais para o dispositivo, poderá provisionar os AWS recursos que o dispositivo principal precisa para operar. Também é possível implantar as ferramentas de desenvolvimento em um dispositivo principal para usar como dispositivo de desenvolvimento. Isso faz com que você forneça menos permissões ao dispositivo ao executar o instalador. Para obter mais informações, consulte [Instale o software AWS IoT Greengrass principal com provisionamento manual de recursos](manual-installation.md).

**Importante**  <a name="install-greengrass-core-requirements-note"></a>
Antes de baixar o software AWS IoT Greengrass Core, verifique se seu dispositivo principal atende aos [requisitos](greengrass-nucleus-component.md#greengrass-v2-requirements) para instalar e executar o software AWS IoT Greengrass Core v2.0.

**Topics**
+ [Configurar o ambiente do dispositivo](#set-up-device-environment)
+ [Forneça AWS credenciais para o dispositivo](#provide-installer-aws-credentials-auto)
+ [Baixe o software AWS IoT Greengrass Core](#download-greengrass-core-v2-auto)
+ [Instale o software AWS IoT Greengrass Core](#run-greengrass-core-v2-installer-auto)

### Configurar o ambiente do dispositivo
<a name="set-up-device-environment"></a>

Siga as etapas nesta seção para configurar um dispositivo Linux ou Windows para usar como dispositivo principal do AWS IoT Greengrass .

#### Configurar um dispositivo Linux
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Para configurar um dispositivo Linux para AWS IoT Greengrass V2**

1. Instale o Java Runtime, que o software AWS IoT Greengrass Core exige para ser executado. Recomendamos que você use as versões de suporte de longo prazo do [Amazon Corretto](https://aws.amazon.com/corretto/) ou do [OpenJDK](https://openjdk.java.net/). A versão 8 ou superior é obrigatória. Os seguintes comandos mostram como instalar o OpenJDK no dispositivo.
   + Para distribuições com base em Debian ou em Ubuntu:

     ```
     sudo apt install default-jdk
     ```
   + Para distribuições com base em Red Hat:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Para Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Para Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Quando a instalação for concluída, execute o seguinte comando para verificar se o Java é executado no dispositivo Linux.

   ```
   java -version
   ```

   O comando imprime a versão do Java que é executada no dispositivo. Por exemplo, em uma distribuição baseada em Debian, o resultado pode ser semelhante ao seguinte exemplo.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Opcional) Crie o usuário e o grupo padrão do sistema que executa componentes no dispositivo. Você também pode optar por permitir que o instalador do software AWS IoT Greengrass Core crie esse usuário e grupo durante a instalação com o argumento do `--component-default-user` instalador. Para obter mais informações, consulte [Argumentos de instalação](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Verifique se o usuário que executa o software AWS IoT Greengrass Core (normalmente`root`) tem permissão para executar `sudo` com qualquer usuário e qualquer grupo.

   1. Execute o seguinte comando para abrir o arquivo `/etc/sudoers`.

      ```
      sudo visudo
      ```

   1. Verifique se a permissão do usuário se parece com o seguinte exemplo.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. (Opcional) Para [executar funções do Lambda em contêineres](run-lambda-functions.md), habilite [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1 e habilite e monte os cgroups de *memória* e *dispositivos*. Se você não planeja executar funções do Lambda em contêineres, ignore esta etapa.

   Para habilitar essas opções de cgroups, inicialize o dispositivo com os seguintes parâmetros do kernel do Linux.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Para mais informações sobre como visualizar e definir parâmetros do kernel para o dispositivo, consulte a documentação do sistema operacional e do carregador de inicialização. Siga as instruções para definir permanentemente os parâmetros do kernel.

1. Instale todas as outras dependências necessárias no dispositivo, conforme indicado na lista de requisitos em [Requisitos do dispositivo](greengrass-nucleus-component.md#greengrass-v2-requirements).

#### Configurar um dispositivo Windows
<a name="set-up-windows-device-environment"></a>

**nota**  
Esse recurso está disponível para a versão 2.5.0 e posterior do [componente de Greengrass nucleus](greengrass-nucleus-component.md).<a name="set-up-windows-device-environment-procedure"></a>

**Para configurar um dispositivo Windows para AWS IoT Greengrass V2**

1. Instale o Java Runtime, que o software AWS IoT Greengrass Core exige para ser executado. Recomendamos que você use as versões de suporte de longo prazo do [Amazon Corretto](https://aws.amazon.com/corretto/) ou do [OpenJDK](https://openjdk.java.net/). A versão 8 ou superior é obrigatória.

1. Verifique se o Java está disponível na variável de sistema [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) e, caso contrário, adicione. A LocalSystem conta executa o software AWS IoT Greengrass Core, então você deve adicionar Java à variável de sistema PATH em vez da variável de usuário PATH para seu usuário. Faça o seguinte:

   1. Pressione a tecla Windows para abrir o menu Iniciar.

   1. Digite **environment variables** para pesquisar as opções do sistema no menu Iniciar.

   1. Nos resultados da pesquisa do menu Iniciar, escolha **Editar as variáveis de ambiente do sistema** para abrir a janela **Propriedades do sistema**.

   1. Escolha **Variáveis de ambiente...** para abrir a janela **Variáveis de ambiente**.

   1. Em **Variáveis de Sistema**, selecione a variável **Path** e em seguida **Editar**. Na janela **Editar variável de ambiente**, você visualiza cada caminho em uma linha separada.

   1. Verifique se o caminho para a pasta `bin` da instalação do Java está presente. O arquivo pode ser semelhante ao seguinte exemplo.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Se a pasta `bin` da instalação do Java estiver ausente do **Path**, selecione **Novo** para adicioná-la e, em seguida, selecione **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Abra o prompt de comando do Windows (`cmd.exe`) como um administrador.

1. <a name="set-up-windows-device-environment-create"></a>Crie o usuário padrão na LocalSystem conta no dispositivo Windows. *password*Substitua por uma senha segura.

   ```
   net user /add ggc_user password
   ```
**dica**  <a name="windows-password-expiration-tip"></a>
Dependendo da configuração do Windows, a senha do usuário pode ser definida para expirar em uma data futura. Para garantir que as aplicações Greengrass continuem operando, monitore quando a senha expira e atualize-a antes disso. Também é possível definir que a senha nunca expire.  
Para verificar quando um usuário e senha expiram, execute o comando a seguir.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Para definir que a senha de um usuário nunca expire, execute o seguinte comando.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Se você estiver usando o Windows 10 ou posterior, onde o [`wmic`comando está obsoleto](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), execute o comando a seguir. PowerShell   

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Baixe e instale o [PsExecutilitário](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) da Microsoft no dispositivo. 

1. <a name="set-up-windows-device-credentials"></a>Use o PsExec utilitário para armazenar o nome de usuário e a senha do usuário padrão na instância do Credential Manager da LocalSystem conta. *password*Substitua pela senha do usuário que você definiu anteriormente.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Se **PsExec License Agreement** abrir, selecione **Accept** para concordar com a licença e execute o comando.
**nota**  
Em dispositivos Windows, a LocalSystem conta executa o núcleo Greengrass, e você deve usar o PsExec utilitário para armazenar as informações padrão do usuário na conta. LocalSystem O uso do aplicativo Credential Manager armazena essas informações na conta do Windows do usuário atualmente conectado, em vez da LocalSystem conta.

### Forneça AWS credenciais para o dispositivo
<a name="provide-installer-aws-credentials-auto"></a>

Forneça suas AWS credenciais ao seu dispositivo para que o instalador possa provisionar os AWS recursos necessários. Para mais informações sobre as permissões necessárias, consulte [Política mínima de IAM para o instalador provisionar recursos](provision-minimal-iam-policy.md).

**Para fornecer AWS credenciais ao dispositivo**
+ <a name="installer-export-aws-credentials"></a>Forneça suas AWS credenciais ao dispositivo para que o instalador possa provisionar os recursos do IAM AWS IoT e do IAM para seu dispositivo principal. Para aumentar a segurança, recomendamos que você obtenha credenciais temporárias para um perfil do IAM que habilite somente as permissões mínimas necessárias para provisionar. Para obter mais informações, consulte [Política mínima de IAM para o instalador provisionar recursos](provision-minimal-iam-policy.md).
**nota**  
O instalador não salva nem armazena suas credenciais.

  No seu dispositivo, faça o seguinte para recuperar as credenciais e disponibilizá-las para o AWS IoT Greengrass instalador do software Core:
  + (Recomendado) Use credenciais temporárias de Centro de Identidade do AWS IAM

    1. Forneça o ID da chave de acesso, a chave de acesso secreta e o token de sessão do IAM Identity Center. Para obter mais informações, consulte **Atualização manual de credenciais** em [Como conseguir e atualizar credenciais temporárias](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials) no *Guia do usuário do Centro de Identidade do IAM*.

    1. Execute os comandos a seguir para fornecer as credenciais para o software AWS IoT Greengrass principal.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       set AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       $env:AWS_SESSION_TOKEN="AQoDYXdzEJr1K...o5OytwEXAMPLE="
       ```

------
  + Use credenciais de segurança temporárias de um perfil do IAM:

    1. Forneça o ID da chave de acesso, a chave de acesso secreta e o token de sessão do perfil do IAM que você assume. Para obter mais informações sobre como recuperar essas credenciais, consulte [Solicitação de credenciais de segurança temporárias](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) no *Guia do usuário do IAM*.

    1. Execute os comandos a seguir para fornecer as credenciais para o software AWS IoT Greengrass principal.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       set AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       $env:AWS_SESSION_TOKEN="AQoDYXdzEJr1K...o5OytwEXAMPLE="
       ```

------
  + Use credenciais de segurança de longo prazo de um usuário do IAM:

    1. Forneça o ID da chave de acesso e a chave de acesso secreta para seu usuário do IAM. É possível criar um usuário do IAM para provisionamento que será excluído posteriormente. Para ver a política do IAM a ser fornecida ao usuário, consulte [Política mínima de IAM para o instalador provisionar recursos](provision-minimal-iam-policy.md). Para obter mais informações sobre como recuperar credenciais de longo prazo, consulte [Como gerenciar chaves de acesso para usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) no *Guia do usuário do IAM*.

    1. Execute os comandos a seguir para fornecer as credenciais para o software AWS IoT Greengrass principal.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       ```

------

    1. (Opcional) Se você criou um usuário do IAM para provisionar seu dispositivo Greengrass, exclua o usuário.

    1. (Opcional) Se você usou o ID da chave de acesso e a chave de acesso secreta de um usuário do IAM existente, atualize as chaves do usuário para que elas não sejam mais válidas. Para obter mais informações, consulte [Atualização de chaves de acesso](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) no *Guia de usuário do AWS Identity and Access Management *.

### Baixe o software AWS IoT Greengrass Core
<a name="download-greengrass-core-v2-auto"></a>

Você pode baixar a versão mais recente do software AWS IoT Greengrass Core no seguinte local:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**nota**  
Você pode baixar uma versão específica do software AWS IoT Greengrass Core no seguinte local. *version*Substitua pela versão a ser baixada.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Para baixar o software AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Em seu dispositivo principal, baixe o software AWS IoT Greengrass Core para um arquivo chamado`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Ao fazer download desse software, você concorda com o [Contrato de licença do software do Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Opcional) Para verificar a assinatura do software do Greengrass nucleus
**nota**  
Esse atributo está disponível com o Greengrass nucleus versão 2.9.5 e posterior.

   1. Use o comando a seguir para verificar a assinatura do artefato do Greengrass nucleus:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      O nome do arquivo pode parecer diferente dependendo da versão do JDK que você instala. Substitua *`jdk17.0.6_10`* pela versão do JDK que você instalou.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      O nome do arquivo pode parecer diferente dependendo da versão do JDK que você instala. Substitua *`jdk17.0.6_10`* pela versão do JDK que você instalou.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. A invocação `jarsigner` produz uma saída que indica os resultados da verificação.

      1. Se o arquivo zip do Greengrass nucleus estiver assinado, a saída conterá a seguinte declaração:

         ```
         jar verified.
         ```

      1. Se o arquivo zip do Greengrass nucleus não estiver assinado, a saída conterá a seguinte declaração:

         ```
         jar is unsigned.
         ```

   1. Se você forneceu a opção `-certs` do Jarsigner junto com as opções `-verify` e `-verbose`, a saída também incluirá informações detalhadas do certificado do assinante.

1. <a name="installation-unzip-ggc-software-step"></a>Descompacte o software AWS IoT Greengrass Core em uma pasta no seu dispositivo. *GreengrassInstaller*Substitua pela pasta que você deseja usar.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Opcional) Execute o comando a seguir para ver a versão do software AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**Importante**  <a name="installer-folder-2.4.0-warning"></a>
Se você instalar uma versão do núcleo do Greengrass anterior à v2.4.0, não remova essa pasta depois de instalar o software Core. AWS IoT Greengrass O software AWS IoT Greengrass Core usa os arquivos dessa pasta para ser executado.  
Se você baixou a versão mais recente do software, instale a versão 2.4.0 ou posterior e poderá remover essa pasta depois de instalar o software AWS IoT Greengrass Core.

### Instale o software AWS IoT Greengrass Core
<a name="run-greengrass-core-v2-installer-auto"></a>

Execute o instalador com argumentos que especificam o seguinte:
+ <a name="install-argument-aws-resources"></a>Crie os AWS recursos que o dispositivo principal precisa para operar.
+ <a name="install-argument-component-default-user"></a>Especifique o uso do usuário do sistema `ggc_user` para executar componentes de software no dispositivo principal. Em dispositivos Linux, esse comando também especifica o uso do grupo do sistema `ggc_group` e o instalador cria o usuário e o grupo do sistema para você.
+ <a name="install-argument-system-service"></a>Configure o software AWS IoT Greengrass Core como um serviço do sistema que é executado na inicialização. Em dispositivos Linux, isso requer o sistema init [Systemd](https://en.wikipedia.org/wiki/Systemd).
**Importante**  <a name="windows-system-service-requirement-important-note"></a>
Nos dispositivos principais do Windows, você deve configurar o software AWS IoT Greengrass Core como um serviço do sistema.

Para configurar um dispositivo de desenvolvimento com ferramentas de desenvolvimento local, especifique o argumento `--deploy-dev-tools true`. As ferramentas de desenvolvimento local podem levar até um minuto para serem implantadas após a conclusão da instalação. 

Para mais informações sobre os argumentos que podem ser especificados, consulte [Argumentos de instalação](configure-installer.md).

**nota**  
<a name="jvm-tuning-note"></a>Se você estiver executando AWS IoT Greengrass em um dispositivo com memória limitada, poderá controlar a quantidade de memória que o software AWS IoT Greengrass Core usa. Para controlar a alocação de memória, é possível definir as opções de tamanho do heap do JVM no parâmetro de configuração `jvmOptions` no componente do núcleo. Para obter mais informações, consulte [Controlar a alocação de memória com opções de JVM](configure-greengrass-core-v2.md#jvm-tuning).

**Para instalar o software AWS IoT Greengrass Core**

1. Use um editor de texto para criar um arquivo de configuração chamado `config.yaml` para fornecer ao instalador.

   <a name="nano-command-intro"></a>Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o arquivo.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Copie o seguinte conteúdo YAML para o arquivo. Esse arquivo de configuração parcial especifica os parâmetros do sistema e os parâmetros do Greengrass nucleus.

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       configuration:
         fipsMode: "true"
         iotDataEndpoint: "data.iot-fips.us-west-2.amazonaws.com"
         iotCredEndpoint: "data.credentials.iot-fips.us-west-2.amazonaws.com"
         greengrassDataPlaneEndpoint: "iotData"
   ```
   + *us-west-2*Substitua pelo Região da AWS local em que você criou os recursos.
   + Substitua o *iotDataEndpoint* pelo endpoint de dados da AWS IoT .
   + Substitua o *iotCredEndpoint* pelo seu endpoint de credenciais da AWS IoT .

1. Execute o instalador AWS IoT Greengrass Core. Substitua os valores dos argumentos no comando da seguinte maneira.
**nota**  
O Windows tem uma limitação de comprimento de caminho de 260 caracteres. Se você estiver usando o Windows, use uma pasta raiz como `C:\greengrass\v2` ou `D:\greengrass\v2` para manter os caminhos dos componentes do Greengrass abaixo do limite de 260 caracteres.<a name="installer-replace-arguments"></a>

   1. `/greengrass/v2`ou*C:\$1greengrass\$1v2*: O caminho para a pasta raiz a ser usada para instalar o software AWS IoT Greengrass Core.

   1. *GreengrassInstaller*. O caminho para a pasta em que você descompactou o instalador do software AWS IoT Greengrass Core.

   1. *region*. O Região da AWS no qual encontrar ou criar recursos.

   1. *MyGreengrassCore*. O nome da AWS IoT coisa para o seu dispositivo principal do Greengrass. Se o objeto não existir, o instalador o cria. O instalador baixa os certificados para autenticar a AWS IoT coisa. Para obter mais informações, consulte [Autenticação e autorização de dispositivos para AWS IoT Greengrass](device-auth.md).
**nota**  <a name="install-argument-thing-name-constraint"></a>
O nome do objeto não pode conter caracteres de dois pontos (`:`).

   1. *MyGreengrassCoreGroup*. O nome do grupo de AWS IoT coisas do seu dispositivo principal do Greengrass. Se o grupo de objetos não existir, o instalador o cria e adiciona o objeto a ele. Se o grupo de objetos existir e tiver uma implantação ativa, o dispositivo principal baixará e executará o software especificado pela implantação.
**nota**  <a name="install-argument-thing-group-name-constraint"></a>
O nome do grupo de objetos não pode conter caracteres de dois pontos (`:`).

   1. *GreengrassV2IoTThingPolicy*. O nome da AWS IoT política que permite que os dispositivos principais do Greengrass se comuniquem com e. AWS IoT AWS IoT Greengrass Se a AWS IoT política não existir, o instalador cria uma AWS IoT política permissiva com esse nome. É possível restringir as permissões dessa política para seu caso de uso. Para obter mais informações, consulte [AWS IoT Política mínima para dispositivos AWS IoT Greengrass V2 principais](device-auth.md#greengrass-core-minimal-iot-policy).

   1. *GreengrassV2TokenExchangeRole*. O nome da função do IAM que permite que o dispositivo principal do Greengrass obtenha credenciais temporárias AWS . Se a função não existir, o instalador a criará e criará e anexará uma política chamada `GreengrassV2TokenExchangeRoleAccess`. Para obter mais informações, consulte [Autorize os dispositivos principais a interagir com os serviços AWS](device-service-role.md).

   1. *GreengrassCoreTokenExchangeRoleAlias*. O alias para a função do IAM que permite que o dispositivo principal do Greengrass obtenha credenciais temporárias posteriormente. Se o alias do perfil não existir, o instalador o cria e o aponta para o perfil do IAM especificado por você. Para obter mais informações, consulte [Autorize os dispositivos principais a interagir com os serviços AWS](device-service-role.md).

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --aws-region region \
     --thing-name MyGreengrassCore \
     --thing-group-name MyGreengrassCoreGroup \
     --thing-policy-name GreengrassV2IoTThingPolicy \
     --tes-role-name GreengrassV2TokenExchangeRole \
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias \
     --component-default-user ggc_user:ggc_group \
     --provision true \
     --init-config ./GreengrassInstaller/config.yaml \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --aws-region region ^
     --thing-name MyGreengrassCore ^
     --thing-group-name MyGreengrassCoreGroup ^
     --thing-policy-name GreengrassV2IoTThingPolicy ^
     --tes-role-name GreengrassV2TokenExchangeRole ^
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias ^
     --component-default-user ggc_user ^
     --provision true ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --aws-region region `
     --thing-name MyGreengrassCore `
     --thing-group-name MyGreengrassCoreGroup `
     --thing-policy-name GreengrassV2IoTThingPolicy `
     --tes-role-name GreengrassV2TokenExchangeRole `
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias `
     --component-default-user ggc_user `
     --provision true `
     --setup-system-service true
   ```

------
**Importante**  <a name="windows-system-service-installer-argument-important-note"></a>
Nos dispositivos principais do Windows, você deve especificar `--setup-system-service true` a configuração do software AWS IoT Greengrass Core como um serviço do sistema.

   O instalador imprime as seguintes mensagens se for bem-sucedido:
   + Se você especificar `--provision`, o instalador imprimirá `Successfully configured Nucleus with provisioned resource details` se ele configurou os recursos com êxito.
   + Se você especificar `--deploy-dev-tools`, o instalador imprimirá `Configured Nucleus to deploy aws.greengrass.Cli component` se ele criou a implantação com êxito.
   + Se você especificar `--setup-system-service true`, o instalador imprimirá `Successfully set up Nucleus as a system service` se ele configurou e executou o software como um serviço.
   + Se você não especificar `--setup-system-service true`, o instalador imprimirá `Launched Nucleus successfully` se foi bem-sucedido e executou o software.

1. Ignore esta etapa se você instalou a versão 2.0.4 do [Greengrass nucleus](greengrass-nucleus-component.md) ou posterior. Se você baixou a versão mais recente do software, instalou a versão 2.0.4 ou posterior.

   Execute o comando a seguir para definir as permissões de arquivo necessárias para a pasta raiz do software AWS IoT Greengrass Core. `/greengrass/v2`Substitua pela pasta raiz especificada no comando de instalação e */greengrass* substitua pela pasta principal da pasta raiz.

   ```
   sudo chmod 755 /greengrass/v2 && sudo chmod 755 /greengrass
   ```

<a name="install-greengrass-core-run-software"></a>Se você instalou o software AWS IoT Greengrass Core como um serviço do sistema, o instalador executa o software para você. Caso contrário, será preciso executar o software manualmente. Para obter mais informações, consulte [Execute o software AWS IoT Greengrass Core](run-greengrass-core-v2.md).

**nota**  
Por padrão, o perfil do IAM criado pelo instalador não permite acesso aos artefatos dos componentes nos buckets do S3. Para implantar componentes personalizados que definem artefatos no Amazon S3, é preciso adicionar permissões ao perfil para permitir que seu dispositivo principal recupere artefatos de componentes. Para obter mais informações, consulte [Permitir acesso aos buckets do S3 para artefatos de componentes](device-service-role.md#device-service-role-access-s3-bucket).  
Se você ainda não tem um bucket do S3 para artefatos de componentes, é possível adicionar essas permissões depois de criar um bucket.

<a name="install-greengrass-core-next-steps-intro"></a>Para obter mais informações sobre como configurar e usar o software AWS IoT Greengrass, consulte o seguinte:<a name="install-greengrass-core-next-steps-links"></a>
+ [Configurar o software AWS IoT Greengrass principal](configure-greengrass-core-v2.md)
+ [Desenvolver componentes do AWS IoT Greengrass](develop-greengrass-components.md)
+ [Implemente AWS IoT Greengrass componentes em dispositivos](manage-deployments.md)
+ [Interface de linha de comando do Greengrass](gg-cli.md)

## Componentes primários de conformidade com o FIPS
<a name="FIPS-compliance"></a>


|  |  | 
| --- | --- | 
| aws.greengrass.Nucleus | data.iot-fips.us-east-1.amazonaws.com | 
|  | greengrass-fips.us-east-1.amazonaws.com | 
|  | data.credentials.iot-fips.us-east-1.amazonaws.com | 
| aws.greengrass.TokenExchangeService | data.credentials.iot-fips.us-east-1.amazonaws.com | 
| aws.greengrass.Cli |  | 
| aws.greengrass.StreamManager | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v2/developerguide/FIPS.html) O gerenciador de fluxo não oferece suporte ao AWS IoT Analytics endpoint FIPS  | 
| aws.greengrass.LogManager | dicas de registro. us-east-1.amazonaws.com | 
| aws.greengrass.crypto.Pkcs11Provider |  | 
| aws.greengrass.ShadowManager |  | 
| aws.greengrass.DockerApplicationManager | dicas de eco. us-east-1.amazonaws.com | 
| aws.greengrass.SecretManager | dicas do gerente de segredos. us-east-1.amazonaws.com | 
| aws.greengrass.telemetry.NucleusEmitter |  | 
| aws.greengrass.clientdevices.IPDetector |  | 
| aws.greengrass.DiskSpooler |  | 

# Resiliência no AWS IoT Greengrass
<a name="disaster-recovery-resiliency"></a>

A infraestrutura global do AWS é baseada em Regiões e Zonas de Disponibilidade da Amazon Web Services. Cada Região da AWS fornece várias zonas de disponibilidade separadas e isoladas fisicamente, que são conectadas com baixa latência, alto throughput e redes altamente redundantes. Com as zonas de disponibilidade, é possível projetar e operar aplicações e bancos de dados que automaticamente executam o failover entre as zonas sem interrupção. As zonas de disponibilidade são altamente disponíveis, tolerantes a falhas e escaláveis que uma ou várias infraestruturas de data center tradicionais. 

Para obter mais informações, consulte [Infraestrutura global da AWS](https://aws.amazon.com/about-aws/global-infrastructure/).

Além da infraestrutura global da AWS, o AWS IoT Greengrass oferece vários atributos para ajudar a oferecer suporte às suas necessidades de resiliência de dados e backup.
+ Você pode configurar um dispositivo principal do Greengrass para gravar logs no sistema de arquivos local e no CloudWatch Logs. Se o dispositivo principal perder a conectividade, ele poderá continuar a gravação de mensagens no sistema de arquivos. Quando ele se reconectar, grave as mensagens de log no CloudWatch Logs. Para obter mais informações, consulte [Monitore AWS IoT Greengrass logs](monitor-logs.md).
+ Se um dispositivo principal perder energia durante uma implantação, ele retomará a implantação depois que o software AWS IoT Greengrass Core for reiniciado.
+ Se um dispositivo principal perder a conectividade com a Internet, os dispositivos cliente do Greengrass poderão continuar a se comunicar pela rede local.
+ Você pode criar componentes do Greengrass que leem fluxos do [gerenciador de fluxos](manage-data-streams.md) e enviam os dados para destinos de armazenamento local

# Segurança da infraestrutura em AWS IoT Greengrass
<a name="infrastructure-security"></a>

Como serviço gerenciado, AWS IoT Greengrass é protegido pelos procedimentos AWS globais de segurança de rede descritos no whitepaper [Amazon Web Services: Visão geral dos processos de segurança](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf).

Você usa chamadas de API AWS publicadas para acessar AWS IoT Greengrass pela rede. Os clientes devem oferecer suporte a Transport Layer Security (TLS) 1.2 ou posterior. Recomendamos usar o TLS 1.3 ou posterior. Os clientes também devem oferecer suporte a pacotes de criptografia com Perfect Forward Secrecy (PFS – Sigilo de encaminhamento perfeito), como Ephemeral Diffie-Hellman (DHE) ou Ephemeral Elliptic Curve Diffie-Hellman (ECDHE). A maioria dos sistemas modernos, como Java 7 e versões posteriores, comporta esses modos.

As solicitações devem ser assinadas usando um ID da chave de acesso e uma chave de acesso secreta associada a uma entidade principal do IAM. Ou você pode usar o [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) para gerar credenciais de segurança temporárias para assinar solicitações.

Em um AWS IoT Greengrass ambiente, os dispositivos usam certificados X.509 e chaves criptográficas para se conectar e autenticar no. Nuvem AWS Para obter mais informações, consulte [Autenticação e autorização de dispositivos para AWS IoT Greengrass](device-auth.md).

# Análise de configuração e vulnerabilidade em AWS IoT Greengrass
<a name="vulnerability-analysis-and-management"></a>

Ambientes de IoT consistem em grandes quantidades de dispositivos com capacidades diversas, duradouros e geograficamente distribuídos. Essas características tornam a configuração do dispositivo complexa e propensa a erros. E como os dispositivos, quase sempre, têm restrições quanto à capacidade computacional e aos recursos de memória e armazenamento, isso limita o uso de criptografia e outras formas de segurança nos próprios dispositivos. Além disso, muitas vezes, os dispositivos usam software com vulnerabilidades conhecidas. Esses fatores tornam os dispositivos de IoT um alvo atrativo para hackers e tornam difícil protegê-los de forma contínua.

AWS IoT Device Defender aborda esses desafios fornecendo ferramentas para identificar problemas de segurança e desvios das melhores práticas. Você pode usar AWS IoT Device Defender para analisar, auditar e monitorar dispositivos conectados para detectar comportamentos anormais e mitigar riscos de segurança. AWS IoT Device Defender pode auditar dispositivos para garantir que eles sigam as melhores práticas de segurança e detectem comportamentos anormais nos dispositivos. Isso possibilita aplicar políticas de segurança consistentes em seus dispositivos e responder rapidamente quando os dispositivos são comprometidos. IForpara obter mais informações, consulte os tópicos a seguir:
+ O [componente Device Defender](device-defender-component.md)
+ [AWS IoT Device Defender](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender.html) no *Guia do desenvolvedor do AWS IoT Core *.

Em AWS IoT Greengrass ambientes, você deve estar ciente das seguintes considerações:
+ É sua responsabilidade proteger seus dispositivos físicos, o sistema de arquivos em seus dispositivos e a rede local.
+ AWS IoT Greengrass não impõe isolamento de rede para componentes do Greengrass definidos pelo usuário, independentemente de serem executados ou não em um contêiner do Greengrass. Portanto, é possível que os componentes do Greengrass se comuniquem com qualquer outro processo em execução no sistema ou fora dele por rede.

# Integridade do código em AWS IoT Greengrass V2
<a name="code-integrity"></a>

O AWS IoT Greengrass implanta componentes de software da Nuvem AWS para dispositivos que executam o software AWS IoT Greengrass Core. Esses componentes de software incluem [componentes fornecidos pela AWS](public-components.md) e [componentes personalizados](create-components.md) que você carrega na Conta da AWS. Cada componente é composto por uma fórmula. A fórmula define os metadados do componente e qualquer número de artefatos, que são binários de componentes, como código compilado e recursos estáticos. Artefatos de componentes são armazenados no Amazon S3.

Ao desenvolver e implantar componentes do Greengrass, você segue estas etapas básicas que funcionam com artefatos de componentes na Conta da AWS e em dispositivos:

1. Crie e faça upload de artefatos em buckets do S3.

1. Crie um componente a partir de uma fórmula e artefatos no serviço do AWS IoT Greengrass, que calcula um [hash criptográfico](https://en.wikipedia.org/wiki/Cryptographic_hash_function) de cada artefato.

1. Implante um componente nos dispositivos principais do Greengrass, que baixam e verificam a integridade de cada artefato.

A AWS é responsável por manter a integridade dos artefatos após o upload deles nos buckets do S3, inclusive quando você implanta componentes nos dispositivos principais do Greengrass. Você é responsável por proteger os artefatos de software antes de fazer o upload deles nos buckets do S3. Você também é responsável por garantir o acesso aos recursos na sua Conta da AWS, incluindo os buckets do S3 nos quais você carrega artefatos de componentes.

**nota**  
O Amazon S3 fornece um atributo chamado Bloqueio de Objetos do S3 que você pode usar para se proteger contra alterações nos artefatos de componentes nos buckets do S3 na Conta da AWS. Você pode usar o Bloqueio de Objetos do S3 para evitar que artefatos de componentes sejam excluídos ou substituídos. Para mais informações, consulte [Como usar o Bloqueio de Objetos do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) no *Guia do usuário do Amazon Simple Storage Service*.

Quando a AWS publica um componente público e quando você carrega um componente personalizado, o AWS IoT Greengrass calcula um resumo criptográfico para cada artefato do componente. O AWS IoT Greengrass atualiza a fórmula do componente para incluir o resumo de cada artefato e o algoritmo de hash usado para calcular esse resumo. Esse resumo garante a integridade do artefato, pois se o artefato mudar na Nuvem AWS ou durante o download, o resumo do arquivo não corresponderá ao resumo que o AWS IoT Greengrass armazena na fórmula do componente. Para obter mais informações, consulte [Artefatos na referência da fórmula do componente](component-recipe-reference.md#manifest-artifacts-definition).

Quando você implanta um componente em um dispositivo principal, o software AWS IoT Greengrass Core baixa a fórmula do componente e cada artefato do componente definido por ela. O software AWS IoT Greengrass Core calcula o resumo de cada arquivo de artefato baixado e o compara com o resumo desse artefato na fórmula. Se os resumos não corresponderem, a implantação falhará e o software AWS IoT Greengrass Core excluirá os artefatos baixados do sistema de arquivos do dispositivo. Para mais informações sobre como as conexões entre os dispositivos principais e o AWS IoT Greengrass são protegidas, consulte [Criptografia em trânsito](encryption-in-transit.md).

Você é responsável por proteger os arquivos de artefatos dos componentes nos sistemas de arquivos dos dispositivos principais. O software AWS IoT Greengrass Core salva os artefatos na pasta `packages`, na pasta raiz do Greengrass. Você pode usar o AWS IoT Device Defender para analisar, auditar e monitorar dispositivos principais. Para obter mais informações, consulte [Análise de configuração e vulnerabilidade em AWS IoT Greengrass](vulnerability-analysis-and-management.md).

# AWS IoT Greengrass e endpoints VPC de interface ()AWS PrivateLink
<a name="vpc-interface-endpoints"></a>

Você pode estabelecer uma conexão privada entre sua VPC e o plano de AWS IoT Greengrass controle criando uma interface *VPC* endpoint. Você pode usar esse endpoint para gerenciar componentes, implantações e dispositivos principais no AWS IoT Greengrass serviço. Os endpoints de interface são alimentados por [AWS PrivateLink](https://aws.amazon.com/privatelink)uma tecnologia que permite que você acesse de AWS IoT Greengrass APIs forma privada sem um gateway de internet, dispositivo NAT, conexão VPN ou conexão AWS Direct Connect. As instâncias em sua VPC não precisam de endereços IP públicos para se comunicar. AWS IoT Greengrass APIs O tráfego entre sua VPC e AWS IoT Greengrass não sai da rede Amazon.

Cada endpoint de interface é representado por uma ou mais [Interfaces de Rede Elástica](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) nas sub-redes. 

Para obter mais informações, consulte [Endpoints da VPC da interface (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) no *Manual do Usuário do Amazon VPC*.

**Topics**
+ [Considerações sobre AWS IoT Greengrass VPC endpoints](#vpc-endpoint-considerations)
+ [Crie uma interface VPC endpoint para AWS IoT Greengrass operações do plano de controle](#create-vpc-endpoint-control-plane)
+ [Criação de uma política de VPC endpoint para AWS IoT Greengrass](#vpc-endpoint-policy)
+ [Opere um dispositivo AWS IoT Greengrass principal na VPC](#vpc-operate-device-vpce)

## Considerações sobre AWS IoT Greengrass VPC endpoints
<a name="vpc-endpoint-considerations"></a>

Antes de configurar uma interface para o VPC endpoint AWS IoT Greengrass, revise as [propriedades e limitações do endpoint da interface no](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-interface-limitations) Guia do usuário do Amazon *VPC*. Além disso, esteja ciente das seguintes considerações:
+ AWS IoT Greengrass suporta fazer chamadas para todas as ações da API do plano de controle a partir de sua VPC. O plano de controle inclui operações como [CreateDeployment[ListEffectiveDeployments](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_ListEffectiveDeployments.html)](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateDeployment.html)e. O plano de controle *não* inclui operações como [ResolveComponentCandidates](device-auth.md#iot-policies)e [Discover](greengrass-discover-api.md), que são operações do plano de dados.
+ Atualmente, não AWS IoT Greengrass há suporte para VPC endpoints nas regiões da China AWS .

## Crie uma interface VPC endpoint para AWS IoT Greengrass operações do plano de controle
<a name="create-vpc-endpoint-control-plane"></a>

Você pode criar um VPC endpoint para o plano de AWS IoT Greengrass controle usando o console Amazon VPC ou o (). AWS Command Line Interface AWS CLI Para obter mais informações, consulte [Criar um endpoint de interface](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint) no *Guia do usuário da Amazon VPC*.

Crie um VPC endpoint para AWS IoT Greengrass usar o seguinte nome de serviço: 
+ com.amazonaws. *region*.erva verde

Se você habilitar o DNS privado para o endpoint, poderá fazer solicitações de API AWS IoT Greengrass usando seu nome DNS padrão para a região, por exemplo,. `greengrass.us-east-1.amazonaws.com` O DNS privado é habilitado por padrão.

Para mais informações, consulte [Acessar um serviço por um endpoint de interface](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#access-service-though-endpoint) no *Guia do usuário da Amazon VPC*.

## Criação de uma política de VPC endpoint para AWS IoT Greengrass
<a name="vpc-endpoint-policy"></a>

É possível anexar uma política de endpoint ao endpoint da VPC que controla o acesso às operações de ambiente de gerenciamento AWS IoT Greengrass . Essa política especifica as seguintes informações:
+ A entidade principal que pode realizar ações.
+ As ações que o principal pode executar.
+ Os recursos nos quais a entidade principal pode executar ações.

Para obter mais informações, consulte [Controlar o acesso a serviços com endpoint da VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) no *Guia do usuário da Amazon VPC*.

**Example Exemplo: política de VPC endpoint para ações AWS IoT Greengrass**  
Veja a seguir um exemplo de uma política de endpoint para AWS IoT Greengrass. Quando anexada a um endpoint, essa política concede acesso às AWS IoT Greengrass ações listadas para todos os diretores em todos os recursos.  

```
{
    "Statement": [
        {
            "Principal": "*",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "greengrass:ListEffectiveDeployments"
            ],
            "Resource": "*"
        }
    ]
}
```

## Opere um dispositivo AWS IoT Greengrass principal na VPC
<a name="vpc-operate-device-vpce"></a>

Você pode operar um dispositivo principal do Greengrass e fazer implantações na VPC sem acesso público à Internet. No mínimo, você deve configurar os endpoints da VPC abaixo com os aliases de DNS correspondentes. Para obter mais informações sobre como criar e usar endpoints da VPC, consulte [Criar um endpoint da VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) no *Guia do usuário da Amazon VPC*.

**nota**  
O recurso VPC para criar automaticamente um registro DNS está desativado para AWS IoT data e Credentials. AWS IoT Para conectar esses endpoints, é necessário criar manualmente um registro DNS privado. Para obter mais informações, consulte [DNS privado para endpoints de interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#vpce-private-dns). Para obter mais informações sobre as limitações da AWS IoT Core VPC, consulte Limitações dos [endpoints da VPC](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#VPC-limitations). 

### Pré-requisitos
<a name="vpc-endpoint-prerequisites"></a>
+ Você deve instalar o software AWS IoT Greengrass Core usando as etapas de provisionamento manual. Para obter mais informações, consulte [Instale o software AWS IoT Greengrass principal com provisionamento manual de recursos](manual-installation.md).

### Limitações
<a name="vpc-endpoint-limitaions"></a>
+ Não há suporte para operação de um dispositivo principal do Greengrass na VPC nas regiões da China e nas AWS GovCloud (US) Regions.
+ [Para obter mais informações sobre limitações AWS IoT data e fornecedores de AWS IoT credenciais VPC endpoints, consulte Limitações.](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#VPC-limitations)

### Configurar o dispositivo principal do Greengrass para operar na VPC
<a name="vpc-endpoint-operate-gg-core"></a>

****

1. Obtenha os AWS IoT endpoints para você Conta da AWS e salve-os para usar mais tarde. Seu dispositivo usa esses endpoints para se conectar à AWS IoT. Faça o seguinte:

   1. Obtenha o endpoint de AWS IoT dados para você Conta da AWS.

      ```
      aws iot describe-endpoint --endpoint-type iot:Data-ATS
      ```

      Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

      ```
      {
        "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
      }
      ```

   1. Obtenha o endpoint AWS IoT de credenciais para seu. Conta da AWS

      ```
      aws iot describe-endpoint --endpoint-type iot:CredentialProvider
      ```

      Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

      ```
      {
        "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
      }
      ```

1. Crie uma interface Amazon VPC para endpoints AWS IoT data e AWS IoT credencie:

   1. **Navegue até o console [VPC](https://console.aws.amazon.com/vpc/home#/endpoints) **Endpoints**, em **Nuvem privada virtual** no menu à esquerda, escolha **Endpoints** e, em seguida, Criar endpoint**.

   1. Na página **Criar endpoint**, especifique as seguintes informações.
      + Escolha **AWS service (Serviço da AWS)** para a **Categoria de serviço**.
      + Para **Nome do serviço**, pesquise inserindo a palavra-chave `iot`. Na lista de serviços do `iot` exibida, escolha o endpoint. 

        Se você criar um VPC endpoint para o plano de AWS IoT Core dados, escolha o endpoint da API do plano de AWS IoT Core dados para sua região. O endpoint será do formato `com.amazonaws.region.iot.data`. 

        Se você criar um VPC endpoint para o provedor de AWS IoT Core credenciais, escolha o endpoint do provedor de AWS IoT Core credenciais para sua região. O endpoint será do formato `com.amazonaws.region.iot.credentials`.
**nota**  
O nome do serviço para o plano de AWS IoT Core dados na região da China terá o formato`cn.com.amazonaws.region.iot.data`. A criação de VPC endpoints para provedores de AWS IoT Core credenciais não é suportada na região da China.
      + Para **VPC** e **sub-redes**, escolha a VPC em que você deseja criar o endpoint e as zonas de disponibilidade (AZs) nas quais você deseja criar a rede de endpoints.
      + Em **Ativar nome DNS**, certifique-se de que a opção **Ativar para este endpoint** não esteja selecionada. Nem o plano AWS IoT Core de dados nem o provedor de AWS IoT Core credenciais oferecem suporte a nomes DNS privados ainda.
      + Em **Grupo de segurança**, selecione os grupos de segurança a serem associados às interfaces de rede do endpoint.
      + Se quiser, adicione ou remova tags. As tags são pares de nome-valor usados para associar ao seu endpoint. 

   1. Para criar um endpoint da VPC, selecione **Criar endpoint**.

1. Depois de criar o AWS PrivateLink endpoint, na guia **Detalhes** do seu endpoint, você verá uma lista de nomes de DNS. Você pode usar um desses nomes DNS criados nesta seção para [configurar a zona hospedada privada](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html#connect-iot-core-create-phz-lns).

1. Crie um endpoint do Amazon S3. Para obter mais informações, consulte [Criar um endpoint da VPC para o Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#s3-creating-vpc).

1. Se você usa [componentes do Greengrass fornecidos pela AWS](https://docs.aws.amazon.com/greengrass/v2/developerguide/public-components.html), endpoints e configurações adicionais podem ser necessários. Para visualizar os requisitos de endpoints, selecione o componente na lista de componentes fornecidos pela AWS e consulte a seção Requisitos. Por exemplo, a recomendação dos [requisitos do componente Gerenciador de logs](log-manager-component.md#log-manager-component-requirements) é de que ele possa realizar solicitações de saída para o endpoint `logs.region.amazonaws.com`.

   Se você usa um componente próprio, talvez seja necessário revisar as dependências e realizar outros testes para determinar se há necessidade de endpoint adicional.

1. Na configuração do núcleo do Greengrass, `greengrassDataPlaneEndpoint` deve ser definido como **iotdata**. Para obter mais informações, consulte [Configuração do núcleo do Greengrass](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration).

1. Se você está na região `us-east-1`, defina o parâmetro de configuração `s3EndpointType` como **REGIONAL** na configuração do núcleo do Greengrass. Esse atributo está disponível para o núcleo do Greengrass versão 2.11.3 ou mais recente.

**Example Exemplo: configuração do componente**  

```
{
"aws.greengrass.Nucleus": {
   "configuration": {
      "awsRegion": "us-east-1",
      "iotCredEndpoint": "xxxxxx.credentials.iot.region.amazonaws.com",
      "iotDataEndpoint": "xxxxxx-ats.iot.region.amazonaws.com",
      "greengrassDataPlaneEndpoint": "iotdata",
      "s3EndpointType": "REGIONAL"
      ...
     }
   }
}
```

A tabela a seguir mostra informações sobre os aliases de DNS privado personalizados correspondentes.


| Serviço | Nome do serviço de endpoint da VPC | Tipo de endpoint da VPC | Alias de DNS privado personalizado | Observações | 
| --- | --- | --- | --- | --- | 
|  AWS IoT data  | `com.amazonaws.region.iot.data` | Interface |  `prefix-ats.iot.region.amazonaws.com`  |  O registro DNS privado deve corresponder ao AWS IoT data endpoint da sua conta:. `aws iot describe–endpoint ––endpoint–type iot:Data-ATS`  | 
| AWS IoT Credenciais | `com.amazonaws.region.iot.credentials` | Interface | `prefix.credentials.iot.region.amazonaws.com` | O registro DNS privado deve corresponder ao endpoint de AWS IoT credenciais da sua conta:. `aws iot describe–endpoint ––endpoint–type iot:CredentialProvider` | 
| Amazon S3 | `com.amazonaws.region.s3` | Interface |  | O registro DNS é criado automaticamente. | 

# Melhores práticas de segurança para AWS IoT Greengrass
<a name="security-best-practices"></a>

Este tópico contém as melhores práticas de segurança para AWS IoT Greengrass.

## Conceder o mínimo possível de permissões
<a name="least-privilege"></a>

Siga o princípio de privilégio mínimo para seus componentes executando-os como usuários sem privilégio. Os componentes não devem ser executados como raiz, a menos que seja absolutamente necessário.

Use o conjunto mínimo de permissões nos perfis do IAM. Limite o uso do caractere curinga `*` para as propriedades `Action` e `Resource` em suas políticas do IAM. Em vez disso, declare um conjunto finito de ações e recursos quando possível. Para obter mais informações sobre as melhores práticas de privilégio mínimo e outras de políticas, consulte [Práticas recomendadas de política](security_iam_id-based-policy-examples.md#security_iam_service-with-iam-policy-best-practices).

A melhor prática de privilégios mínimos também se aplica às AWS IoT políticas que você anexa ao seu núcleo do Greengrass.

## Não codificar credenciais em componentes do Greengrass
<a name="no-hardcoded-credentials"></a>

Não codifique credenciais em seus componentes do Greengrass definidos pelo usuário. Como proteger melhor suas credenciais:
+ Para interagir com AWS os serviços, defina permissões para ações e recursos específicos na função de [serviço do dispositivo principal do Greengrass](device-service-role.md).
+ Use o [componente Gerenciador de segredos](secret-manager-component.md) para armazenar as credenciais. Ou, se a função usar o AWS SDK, use as credenciais da cadeia de fornecedores de credenciais padrão.

## Não registrar em log informações confidenciais
<a name="protect-pii"></a>

Você deve impedir o registro de credenciais e outras informações de identificação pessoal (PII). Recomendamos que você implemente as seguintes proteções, mesmo que o acesso aos registros locais em um dispositivo principal exija privilégios de root e o acesso aos CloudWatch registros exija permissões do IAM.
+ Não use informações confidenciais em caminhos de tópico MQTT.
+ Não use informações confidenciais em nomes, tipos e atributos de dispositivo (coisa) no registro do AWS IoT Core .
+ Não registre informações confidenciais em componentes do Greengrass ou funções do Lambda definidos pelo usuário.
+ Não use informações confidenciais nos nomes e nos recursos IDs do Greengrass:
  + Dispositivos principais
  + Componentes
  + Implantações
  + Loggers

## Manter o relógio do dispositivo sincronizado
<a name="device-clock"></a>

É importante ter a hora exata no seu dispositivo. Os certificados X.509 têm data e hora de expiração. O relógio em seu dispositivo é usado para verificar se um certificado de servidor ainda é válido. Os relógios do dispositivo podem atrasar ao longo do tempo ou as baterias podem descarregar.

Para obter mais informações, consulte a melhor prática [Manter o relógio do dispositivo sincronizado](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html#device-clock) no *Guia do desenvolvedor do AWS IoT Core *.

## Recomendações de suíte de cifras
<a name="cipher-suites"></a>

O padrão do Greengrass é selecionar as suítes de cifras TLS mais recentes disponíveis no dispositivo. Considere desabilitar o uso de suítes de cifras antigas no dispositivo. Por exemplo, suítes de cifras CBC. 

Para obter mais informações, consulte a [configuração de criptografia do Java](https://www.java.com/configure_crypto.html).

## Consulte também
<a name="security-best-practices-see-also"></a>
+ [Melhores práticas de segurança para o AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html) no *Guia do desenvolvedor do AWS IoT *
+ [Dez regras de ouro de segurança para soluções de IoT industrial](https://aws.amazon.com/blogs/iot/ten-security-golden-rules-for-industrial-iot-solutions/) na *Internet das Coisas no blog oficial AWS *