

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

# Autenticação de cliente
<a name="client-authentication"></a>

AWS IoT oferece suporte a três tipos de princípios de identidade para autenticação de dispositivos ou clientes:
+ [Certificados do cliente X.509](x509-client-certs.md)
+ [Usuários, grupos e funções do IAM](iam-users-groups-roles.md)
+ [Identidades do Amazon Cognito](cognito-identities.md)

Essas identidades podem ser usadas com dispositivos, aplicativos móveis, web ou de desktop. Eles podem até mesmo ser usados por um usuário digitando AWS IoT comandos de interface de linha de comando (CLI). Normalmente, AWS IoT os dispositivos usam certificados X.509, enquanto os aplicativos móveis usam identidades do Amazon Cognito. Os aplicativos da Web e de desktop usam identidades federadas ou do IAM. Os comandos da AWS CLI usam o IAM. Para obter mais informações sobre identidades do IAM, consulte [Gerenciamento de identidade e acesso para AWS IoT](security-iam.md).

# Certificados do cliente X.509
<a name="x509-client-certs"></a>

Os certificados X.509 oferecem AWS IoT a capacidade de autenticar conexões de clientes e dispositivos. Os certificados do cliente devem ser registrados AWS IoT antes que o cliente possa se comunicar com AWS IoT. Um certificado de cliente pode ser registrado em vários Conta da AWS s no mesmo Região da AWS para facilitar a movimentação de dispositivos entre seus Conta da AWS s na mesma região. Consulte [Usando certificados de cliente X.509 em vários Conta da AWS s com registro de várias contas](#multiple-account-cert) para obter mais informações. 

Recomendamos que cada dispositivo ou cliente receba um certificado exclusivo para habilitar ações de gerenciamento de clientes refinadas, incluindo a revogação de certificados. Os dispositivos e os clientes também devem oferecer suporte à rotação e à substituição de certificados para ajudar a garantir uma operação contínua conforme os certificados expiram.

Para acessar informações sobre como usar certificados X.509 para comportar alguns dispositivos, consulte [Provisionamento de dispositivos](iot-provision.md) para conhecer as diferentes opções de gerenciamento e provisionamento de certificados compatíveis com AWS IoT .

**AWS IoT suporta esses tipos de certificados de cliente X.509:**
+  Certificados X.509 gerados por AWS IoT
+  Certificados X.509 assinados por uma CA registrada com. AWS IoT
+  Certificados X.509 assinados por uma CA que não está registrada no AWS IoT.

Esta seção descreve como gerenciar certificados X.509 no AWS IoT. Você pode usar o AWS IoT console ou AWS CLI realizar estas operações de certificado:
+ [Crie certificados de AWS IoT cliente](device-certs-create.md)
+ [Criar seus próprios certificados de cliente](device-certs-your-own.md)
+ [Registrar um certificado de cliente](register-device-cert.md)
+ [Ativar ou desativar um certificado de cliente](activate-or-deactivate-device-cert.md)
+ [Revogar um certificado de cliente](revoke-ca-cert.md)

Para obter mais informações sobre os AWS CLI comandos que executam essas operações, consulte a Referência da [AWS IoT CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/index.html).

## Usar certificados do cliente X.509
<a name="x509-client-cert-basics"></a>

Os certificados X.509 autenticam conexões de clientes e dispositivos a. AWS IoT Os certificados X.509 oferecem vários benefícios em relação a outros mecanismos de identificação e autenticação. Os certificados X.509 permitem que as chaves assimétricas sejam usadas com os dispositivos. Por exemplo, é possível gravar chaves privadas em um armazenamento seguro de um dispositivo para que o material criptográfico confidencial nunca saia do dispositivo. Os certificados X.509 fornecem opções mais fortes de autenticação de cliente em outros esquemas, como nome de usuário e senha ou tokens do portador, porque a chave privada nunca deixa o dispositivo.

AWS IoT autentica certificados de cliente usando o modo de autenticação de cliente do protocolo TLS. O suporte do TLS está disponível em muitas linguagens de programação e sistemas operacionais e é comumente usado para a criptografia de dados. Na autenticação de cliente TLS, AWS IoT solicita um certificado de cliente X.509 e valida o status do certificado em Conta da AWS relação a um registro de certificados. Em seguida, desafia o cliente a obter uma prova de propriedade da chave privada que corresponde à chave pública contida no certificado. AWS IoT exige que os clientes enviem a [extensão Server Name Indication (SNI)](https://tools.ietf.org/html/rfc3546#section-3.1) para o protocolo Transport Layer Security (TLS). Para obter mais informações sobre como configurar a extensão SNI, consulte [Segurança de transporte em AWS IoT Core](transport-security.md).

Para facilitar uma conexão segura e consistente do cliente com o AWS IoT núcleo, um certificado de cliente X.509 deve possuir o seguinte:
+ Registrado no AWS IoT Core. Para obter mais informações, consulte [Registrar um certificado de cliente](register-device-cert.md).
+ Um status de `ACTIVE`. Para obter mais informações, consulte [Ativar ou desativar um certificado de cliente](activate-or-deactivate-device-cert.md).
+ Ainda não atingiu a data de expiração do certificado.

Você pode criar certificados de cliente que usam a CA raiz da Amazon e usar seus próprios certificados de cliente assinados por outra autoridade de certificação (CA). Para obter mais informações sobre o uso do AWS IoT console para criar certificados que usam a Amazon Root CA, consulte[Crie certificados de AWS IoT cliente](device-certs-create.md). Para obter mais informações sobre como usar seus próprios certificados X.509, consulte [Criar seus próprios certificados de cliente](device-certs-your-own.md).

A data e a hora de quando os certificados assinados por um certificado CA expiram são definidas quando o certificado é criado. Os certificados X.509 gerados pela AWS IoT expiram à meia-noite UTC de 31 de dezembro de 2049 (2049-12-31T 23:59:59 Z).

AWS IoT Device Defender pode realizar auditorias em você Conta da AWS e em dispositivos que oferecem suporte às melhores práticas comuns de segurança de IoT. Isso inclui gerenciar as datas de expiração dos certificados X.509 assinados pela sua CA ou pela CA raiz da Amazon. Para obter mais informações sobre como gerenciar a data de expiração de um certificado, consulte [Certificado de dispositivo expirando](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/audit-chk-device-cert-approaching-expiration.html) e [Certificado CA expirando](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/audit-chk-ca-cert-approaching-expiration.html).

No AWS IoT blog oficial, um mergulho mais profundo no gerenciamento da rotação de certificados de dispositivos e nas melhores práticas de segurança é explorado em [Como gerenciar a rotação de certificados de dispositivos de IoT usando](https://aws.amazon.com/blogs/iot/how-to-manage-iot-device-certificate-rotation-using-aws-iot/). AWS IoT

## Usando certificados de cliente X.509 em vários Conta da AWS s com registro de várias contas
<a name="multiple-account-cert"></a>

O registro de várias contas possibilita a movimentação de dispositivos entre suas Conta da AWS na mesma região ou em regiões diferentes. Você pode registrar, testar e configurar um dispositivo em uma conta de pré-produção e, em seguida, registrar e usar o mesmo dispositivo e certificado de dispositivo em uma conta de produção. Você também pode registrar o certificado do cliente no dispositivo ou os certificados do dispositivo sem uma CA registrada com AWS IoT. Para obter mais informações, consulte [Registrar um certificado de cliente assinado por uma CA não registrada (CLI)](manual-cert-registration.md#manual-cert-registration-noca-cli).

**nota**  
Os certificados usados para registro de várias contas são compatíveis com os tipos de endpoint `iot:Data-ATS`, `iot:Data` (legado), `iot:Jobs` e `iot:CredentialProvider`. Para obter mais informações sobre endpoints de AWS IoT dispositivos, consulte[AWS IoT dados do dispositivo e endpoints de serviço](iot-connect-devices.md#iot-connect-device-endpoints).

Os dispositivos que usam o registro de várias contas devem enviar a [extensão Server Name Indication (SNI)](https://tools.ietf.org/html/rfc3546#section-3.1) para o protocolo Transport Layer Security (TLS) e fornecer o endereço completo do endpoint no `host_name` campo, quando se conectarem. AWS IoT AWS IoT usa o endereço do endpoint `host_name` para rotear a conexão para a AWS IoT conta correta. Os dispositivos existentes que não enviarem um endereço de endpoint válido em `host_name` continuarão a funcionar, mas não poderão usar os recursos que exigem essas informações. Para obter mais informações sobre a extensão SNI e para saber como identificar o endereço de endpoint para o campo `host_name`, consulte [Segurança de transporte em AWS IoT Core](transport-security.md). 

**Como usar o registro de várias contas**

1. Você pode registrar os certificados de dispositivo com uma CA. Você pode registrar a CA de assinatura em várias contas no modo `SNI_ONLY` e usar essa CA para registrar o mesmo certificado de cliente em várias contas. Para obter mais informações, consulte [Registrar um certificado da CA no modo SNI\$1ONLY (CLI) - Recomendado](manage-your-CA-certs.md#register-CA-cert-SNI-cli).

1. Você pode registrar os certificados de dispositivo sem uma CA. Consulte [Registrar um certificado de cliente assinado por uma CA não registrada (CLI)](manual-cert-registration.md#manual-cert-registration-noca-cli). O registro de uma CA é opcional. Você não precisa registrar a CA com a qual assinou os certificados do dispositivo AWS IoT.

## Algoritmos de assinatura de certificados suportados pelo AWS IoT
<a name="x509-cert-algorithms"></a>

AWS IoT suporta os seguintes algoritmos de assinatura de certificados:
+ SHA256COM A RSA
+ SHA384COM A RSA
+ SHA512COM A RSA
+ SHA256WITHRSAANDMGF1 (RSASSA-PSS)
+ SHA384WITHRSAANDMGF1 (RSASSA-PSS)
+ SHA512WITHRSAANDMGF1 (RSASSA-PSS)
+ DSA\$1COM\$1 SHA256
+ ECDSA-COM- SHA256
+ ECDSA-COM- SHA384
+ ECDSA-COM- SHA512

Para obter mais informações sobre autenticação e segurança de certificados, consulte [Qualidade da chave de certificado do dispositivo](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/audit-chk-device-cert-key-quality.html).

**nota**  
A solicitação de assinatura de certificado (CSR) deve incluir uma chave pública. A chave pode ser uma chave RSA com um comprimento de pelo menos 2.048 bits ou uma chave ECC das curvas do NIST P-256, NIST P-384 ou NIST P-521. Para obter mais informações, consulte [CreateCertificateFromCsr](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateCertificateFromCsr.html) no *AWS IoT API Reference Guide (Guia de referência da API do &CDSlong;)*.

## Algoritmos principais suportados por AWS IoT
<a name="x509-cert-key-algorithms"></a>

A tabela abaixo mostra o suporte para os principais algoritmos:


****  

| Algoritmo de chave | Algoritmo de assinatura de certificado | Versão do TLS | Compatível? Yes ou No | 
| --- | --- | --- | --- | 
| RSA com um tamanho de chave de pelo menos 2048 bits | Todos | TLS 1.2 TLS 1.3 | Sim | 
| ECC NIST P-256/P-384/P-521 | Todos | TLS 1.2 TLS 1.3 | Sim | 
| RSA-PSS com um tamanho de chave de pelo menos 2048 bits | Todos | TLS 1.2 | Não | 
| RSA-PSS com um tamanho de chave de pelo menos 2048 bits | Todos | TLS 1.3 | Sim | 

Para criar um certificado usando [CreateCertificateFromCSR](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateCertificateFromCsr.html), você pode usar um algoritmo de chave compatível para gerar uma chave pública para sua CSR. Para registrar seu próprio certificado usando [RegisterCertificate](https://docs.aws.amazon.com//iot/latest/apireference/API_RegisterCertificate.html)nossa [RegisterCertificateWithoutCA](https://docs.aws.amazon.com//iot/latest/apireference/API_RegisterCertificateWithoutCA.html), você pode usar um algoritmo de chave compatível para gerar uma chave pública para o certificado.

Para obter mais informações, consulte [Políticas de segurança](https://docs.aws.amazon.com//iot/latest/developerguide/transport-security.html#tls-policy-table).

# Crie certificados de AWS IoT cliente
<a name="device-certs-create"></a>

AWS IoT fornece certificados de cliente assinados pela autoridade de certificação (CA) raiz da Amazon.

Este tópico descreve como criar um certificado de cliente assinado pela autoridade de certificação raiz da Amazon e como fazer download dos arquivos do certificado. Depois de criar os arquivos do certificado de cliente, é necessário instalá-los no cliente.

**nota**  
Cada certificado de cliente X.509 fornecido pelo AWS IoT contém os atributos do emissor e do sujeito que você definiu no momento da criação do certificado. Os atributos do certificado ficam imutáveis somente após a criação do certificado.

Você pode usar o AWS IoT console ou o AWS CLI para criar um AWS IoT certificado assinado pela autoridade de certificação Amazon Root.

## Crie um AWS IoT certificado (console)
<a name="device-certs-create-console"></a>

**Para criar um AWS IoT certificado usando o AWS IoT console**

1. Faça login no Console de gerenciamento da AWS e abra o [AWS IoT console](https://console.aws.amazon.com/iot/home).

1. No painel de navegação, selecione **Segurança**, **Certificados** e, em seguida, **Criar**.

1. Selecione **Criação de certificado com um clique (recomendado)** – **Criar certificado**.

1. Na página **Certificado criado**, faça download dos arquivos do certificado de cliente do objeto, da chave pública e da chave privada para um local seguro. Esses certificados gerados por só AWS IoT estão disponíveis para uso com AWS IoT serviços.

   Se você também precisar do arquivo do certificado CA raiz da Amazon, essa página também tem o link da página de onde é possível fazer download dele.

1. Um certificado de cliente foi criado e registrado no AWS IoT. É necessário ativar o certificado antes de usá-lo em um cliente.

    Para ativar o certificado de cliente agora, selecione **Ativar**. Se você não quiser ativar o certificado agora, consulte [Ativar um certificado de cliente (console)](activate-or-deactivate-device-cert.md#activate-device-cert-console) para saber como ativar o certificado posteriormente.

   

1. Para anexar uma política ao certificado, selecione **Anexar uma política**.

   Se você não quiser anexar uma política agora, selecione **Concluído** para concluir. É possível anexar uma política posteriormente.

Depois de concluir o procedimento, instale os arquivos do certificado no cliente.

## Crie um AWS IoT certificado (CLI)
<a name="device-certs-create-cli"></a>

O AWS CLI fornece o **[create-keys-and-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/create-keys-and-certificate.html)** comando para criar certificados de cliente assinados pela autoridade de certificação Amazon Root. Esse comando, no entanto, não faz download do arquivo de certificado CA raiz da Amazon. É possível fazer download do arquivo de certificado CA raiz da Amazon em [Certificados CA para autenticação do servidor](server-authentication.md#server-authentication-certs). 

Esse comando cria arquivos de chave privada, chave pública e certificado X.509 e registra e ativa o certificado com. AWS IoT

```
aws iot create-keys-and-certificate \
    --set-as-active \
    --certificate-pem-outfile certificate_filename.pem \
    --public-key-outfile public_filename.key \
    --private-key-outfile private_filename.key
```

Se você não deseja ativar o certificado ao criá-lo e registrá-lo, esse comando cria os arquivos de chave privada, chave pública e certificado X.509 e registra o certificado, mas não o ativa. [Ativar um certificado de cliente (CLI)](activate-or-deactivate-device-cert.md#activate-device-cert-cli) descreve como ativar o certificado posteriormente.

```
aws iot create-keys-and-certificate \
    --no-set-as-active \
    --certificate-pem-outfile certificate_filename.pem \
    --public-key-outfile public_filename.key \
    --private-key-outfile private_filename.key
```



Instale os arquivos do certificado no cliente.

# Criar seus próprios certificados de cliente
<a name="device-certs-your-own"></a>

AWS IoT suporta certificados de cliente assinados por qualquer autoridade de certificação (CA) raiz ou intermediária. AWS IoT usa certificados CA para verificar a propriedade dos certificados. Para usar certificados de dispositivo assinados por uma CA que não seja a CA da Amazon, o certificado da CA deve ser registrado AWS IoT para que possamos verificar a propriedade do certificado do dispositivo.

AWS IoT suporta várias maneiras de trazer seus próprios certificados (BYOC): 
+ Primeiro, registre a CA usada para assinar os certificados do cliente e, em seguida, registre esses certificados individuais. Se você quiser registrar o dispositivo ou cliente em seu certificado de cliente quando ele se conectar pela primeira vez AWS IoT (também conhecido como [Just-in-Time Provisioning](https://docs.aws.amazon.com//iot/latest/developerguide/jit-provisioning.html)), você deve registrar a CA de assinatura e ativar o registro automático. AWS IoT 
+ Se você não conseguir registrar a CA de assinatura, poderá optar por registrar certificados de cliente sem CA. Para dispositivos registrados sem CA, será necessário apresentar a [Server Name Indication (SNI)](https://www.rfc-editor.org/rfc/rfc3546#section-3.1) ao conectá-los ao AWS IoT.

**nota**  
Para registrar certificados de cliente usando a CA, você deve registrar a CA assinante com AWS IoT, e não com qualquer outra CAs na hierarquia.

**nota**  
Um certificado da CA pode ser registrado no modo `DEFAULT` por apenas uma conta em uma região. Um certificado da CA pode ser registrado no modo `SNI_ONLY` por várias contas em uma região. 

Para acessar mais informações sobre como usar certificados X.509 para comportar alguns dispositivos, consulte [Provisionamento de dispositivos](iot-provision.md) para conhecer as diferentes opções de gerenciamento e provisionamento de certificados compatíveis com AWS IoT .

**Topics**
+ [Gerenciar os certificados CA](manage-your-CA-certs.md)
+ [Criar um certificado de cliente usando o certificado CA](create-device-cert.md)

# Gerenciar os certificados CA
<a name="manage-your-CA-certs"></a>

Esta seção descreve tarefas comuns para gerenciar seus próprios certificados de autoridade de certificação (CA).

Você pode registrar sua autoridade de certificação (CA) AWS IoT se estiver usando certificados de cliente assinados por uma CA que AWS IoT não reconhece.

Se você quiser que os clientes registrem automaticamente seus certificados de cliente AWS IoT quando se conectarem pela primeira vez, a CA que assinou os certificados de cliente deve estar registrada AWS IoT. Caso contrário, não é necessário registrar o certificado CA que assinou os certificados de cliente.

**nota**  
Um certificado da CA pode ser registrado no modo `DEFAULT` por apenas uma conta em uma região. Um certificado da CA pode ser registrado no modo `SNI_ONLY` por várias contas em uma região.

**Topics**
+ [Criar um certificado CA](#create-your-CA-cert)
+ [Registrar o certificado CA](#register-CA-cert)
+ [Desativar um certificado CA](#deactivate-ca-cert)

## Criar um certificado CA
<a name="create-your-CA-cert"></a>

Se você não tiver um certificado da CA, poderá usar as ferramentas do [OpenSSL v1.1.1i](https://www.openssl.org/) para criar um.

**nota**  
Você não pode realizar esse procedimento no AWS IoT console.

**Como criar um certificado da CA usando ferramentas do [OpenSSL v1.1.1i](https://www.openssl.org/)**

1. Gere um par de chaves.

   ```
   openssl genrsa -out root_CA_key_filename.key 2048
   ```

1. Use a chave privada do par de chaves para gerar um certificado CA.

   ```
   openssl req -x509 -new -nodes \
       -key root_CA_key_filename.key \
       -sha256 -days 1024 \
       -out root_CA_cert_filename.pem
   ```

## Registrar o certificado CA
<a name="register-CA-cert"></a>

Esses procedimentos descrevem como registrar um certificado de uma autoridade de certificação (CA) que não seja a CA da Amazon. AWS IoT Core usa certificados CA para verificar a propriedade dos certificados. Para usar certificados de dispositivo assinados por uma CA que não seja a CA da Amazon, você deve registrar o certificado da CA AWS IoT Core para que ela possa verificar a propriedade do certificado do dispositivo.

### Registrar um certificado CA (console)
<a name="register-CA-cert-console"></a>

**nota**  
Para registrar um certificado da CA no console, inicie no console em [Registrar certificado da CA](https://console.aws.amazon.com//iot/home#/create/cacertificate). Você pode registrar sua CA no modo de várias contas e sem a necessidade de fornecer um certificado de verificação ou acesso à chave privada. Uma CA pode ser registrada no modo de várias contas por várias Contas da AWS na mesma Região da AWS. Você pode registrar sua CA no modo de conta única fornecendo um certificado de verificação e comprovante de propriedade da chave privada da CA.

### Registrar um certificado CA (CLI)
<a name="register-CA-cert-cli"></a>

Você pode registrar um certificado da CA no modo `DEFAULT` ou `SNI_ONLY`. Uma CA pode ser registrada no `DEFAULT` modo um Conta da AWS em um Região da AWS. Uma CA pode ser registrada no `SNI_ONLY` modo por várias Contas da AWS na mesma Região da AWS. Para obter mais informações sobre o modo de certificado da CA, consulte [certificateMode](https://docs.aws.amazon.com//iot/latest/apireference/API_CACertificateDescription.html#iot-Type-CACertificateDescription-certificateMode).

**nota**  
Recomendamos que você registre uma CA no modo `SNI_ONLY`. Você não precisa fornecer um certificado de verificação ou acesso à chave privada e pode registrar a CA por várias vezes Contas da AWS na mesma Região da AWS.

#### Registrar um certificado da CA no modo SNI\$1ONLY (CLI) - Recomendado
<a name="register-CA-cert-SNI-cli"></a>

**Pré-requisitos**

Certifique-se de que você tenha o seguinte no seu computador antes de continuar:
+ O arquivo de certificado da CA raiz (referenciado no exemplo a seguir como `root_CA_cert_filename.pem`)
+ O [OpenSSL v1.1.1i](https://www.openssl.org/) ou mais recente

**Para registrar um certificado CA no `SNI_ONLY` modo usando o AWS CLI**

1. Registre o certificado CA com AWS IoT. Usando o comando **register-ca-certificate**, insira o nome do arquivo do certificado da CA. Para obter mais informações, consulte [register-ca-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-ca-certificate.html) na *Referência de comandos da AWS CLI *.

   ```
   aws iot register-ca-certificate \
       --ca-certificate file://root_CA_cert_filename.pem \
       --certificate-mode SNI_ONLY
   ```

   Se for bem-sucedido, esse comando retornará *certificateId* o.

1. Neste ponto, o certificado CA foi registrado, AWS IoT mas está inativo. O certificado da CA deve ser ativado antes do registro de qualquer certificado de cliente assinado por ele.

   Esta etapa ativa o certificado CA.

   Para ativar o certificado da CA, use o comando **update-certificate** da seguinte forma. Para obter mais informações, consulte [update-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html) na *Referência de comandos da AWS CLI *.

   ```
   aws iot update-ca-certificate \
       --certificate-id certificateId \
       --new-status ACTIVE
   ```

Para ver o status do certificado da CA, use o comando **describe-ca-certificate**. Para obter mais informações, consulte [describe-ca-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html) na *Referência de comandos da AWS CLI *.

#### Registrar um certificado da CA no modo `DEFAULT` (CLI)
<a name="register-CA-cert-default-cli"></a>

**Pré-requisitos**

Certifique-se de que você tenha o seguinte no seu computador antes de continuar:
+ O arquivo de certificado da CA raiz (referenciado no exemplo a seguir como `root_CA_cert_filename.pem`)
+ O arquivo de chave privada do certificado da CA raiz (referenciado no exemplo a seguir como `root_CA_key_filename.key`)
+ O [OpenSSL v1.1.1i](https://www.openssl.org/) ou mais recente

**Para registrar um certificado CA no `DEFAULT` modo usando o AWS CLI**

1. Para obter um código de registro de AWS IoT, use**get-registration-code**. Salve o `registrationCode` retornado para usar como o `Common Name` do certificado de verificação da chave privada. Para obter mais informações, consulte [get-registration-code](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/get-registration-code.html) na *Referência de comandos da AWS CLI *.

   ```
   aws iot get-registration-code
   ```

1. Gere um par de chaves para o certificado de verificação de chave privada:

   ```
   openssl genrsa -out verification_cert_key_filename.key 2048
   ```

1. Crie uma solicitação de assinatura de certificado (CSR) para o certificado de verificação da chave privada. Defina o campo `Common Name` do certificado como o `registrationCode` retornado por **get-registration-code**.

   ```
   openssl req -new \
       -key verification_cert_key_filename.key \
       -out verification_cert_csr_filename.csr
   ```

   Você será solicitado a fornecer algumas informações, incluindo o `Common Name` para o certificado.

   ```
   You are about to be asked to enter information that will be incorporated
   into your certificate request.
   What you are about to enter is what is called a Distinguished Name or a DN.
   There are quite a few fields but you can leave some blank
   For some fields there will be a default value,
   If you enter '.', the field will be left blank.
   -----
   Country Name (2 letter code) [AU]:
       State or Province Name (full name) []:
       Locality Name (for example, city) []:
       Organization Name (for example, company) []:
       Organizational Unit Name (for example, section) []:
       Common Name (e.g. server FQDN or YOUR name) []:your_registration_code
       Email Address []:
   
       Please enter the following 'extra' attributes
       to be sent with your certificate request
       A challenge password []:
       An optional company name []:
   ```

1. Use uma CSR para criar o certificado de verificação de chave privada.

   ```
   openssl x509 -req \
       -in verification_cert_csr_filename.csr \
       -CA root_CA_cert_filename.pem \
       -CAkey root_CA_key_filename.key \
       -CAcreateserial \
       -out verification_cert_filename.pem \
       -days 500 -sha256
   ```

1. Registre o certificado CA com AWS IoT. Transmita o nome do arquivo do certificado da CA e o nome do arquivo do certificado de verificação da chave privada para o comando **register-ca-certificate**, da seguinte maneira. Para obter mais informações, consulte [register-ca-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-ca-certificate.html) na *Referência de comandos da AWS CLI *.

   ```
   aws iot register-ca-certificate \
       --ca-certificate file://root_CA_cert_filename.pem \
       --verification-cert file://verification_cert_filename.pem
   ```

   Esse comando retorna o*certificateId*, se for bem-sucedido.

1. Neste momento, o certificado CA foi registrado AWS IoT , mas não está ativo. O certificado da CA deve ser ativado antes do registro de qualquer certificado de cliente assinado por ele.

   Esta etapa ativa o certificado CA.

   Para ativar o certificado da CA, use o comando **update-certificate** da seguinte forma. Para obter mais informações, consulte [update-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html) na *Referência de comandos da AWS CLI *.

   ```
   aws iot update-ca-certificate \
       --certificate-id certificateId \
       --new-status ACTIVE
   ```

Para ver o status do certificado da CA, use o comando **describe-ca-certificate**. Para obter mais informações, consulte [describe-ca-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html) na *Referência de comandos da AWS CLI *.

### Crie um certificado de verificação de CA para registrar o certificado da CA no console
<a name="create-CA-verification-cert"></a>

**nota**  
Esse procedimento só deve ser usado se você estiver registrando um certificado CA no AWS IoT console.  
Se você não chegou a esse procedimento a partir do AWS IoT console, inicie o processo de registro do certificado CA no console em [Registrar certificado CA](https://console.aws.amazon.com//iot/home#/create/cacertificate). 

Certifique-se de que você tenha o seguinte no mesmo computador antes de continuar:
+ O arquivo de certificado da CA raiz (referenciado no exemplo a seguir como `root_CA_cert_filename.pem`)
+ O arquivo de chave privada do certificado da CA raiz (referenciado no exemplo a seguir como `root_CA_key_filename.key`)
+ O [OpenSSL v1.1.1i](https://www.openssl.org/) ou mais recente

**Como usar a interface de linha de comando para criar um certificado de verificação de CA a fim de registrar seu certificado da CA no console**

1. Substitua `verification_cert_key_filename.key` pelo nome do arquivo da chave do certificado de verificação que você deseja criar (por exemplo, **verification\$1cert.key**). Em seguida, execute esse comando para gerar um par de chaves para o certificado de verificação de chave privada:

   ```
   openssl genrsa -out verification_cert_key_filename.key 2048
   ```

1. Substitua `verification_cert_key_filename.key` pelo nome do arquivo da chave criado na etapa 1.

   Substitua `verification_cert_csr_filename.csr` pelo nome do arquivo de solicitação de assinatura de certificado (CSR) que você deseja criar. Por exemplo, .**verification\$1cert.csr**

   Execute esse comando para criar o arquivo CRS.

   ```
   openssl req -new \
       -key verification_cert_key_filename.key \
       -out verification_cert_csr_filename.csr
   ```

   O comando solicita que você forneça informações adicionais que serão explicadas posteriormente.

1. No AWS IoT console, no contêiner do **certificado de verificação**, copie o código de registro.

1. As informações solicitadas pelo comando **openssl** são mostradas no exemplo a seguir. Com exceção do campo `Common Name`, você pode inserir seus próprios valores ou mantê-los em branco.

   No campo `Common Name`, cole o código de registro que você copiou na etapa anterior.

   ```
   You are about to be asked to enter information that will be incorporated
   into your certificate request.
   What you are about to enter is what is called a Distinguished Name or a DN.
   There are quite a few fields but you can leave some blank
   For some fields there will be a default value,
   If you enter '.', the field will be left blank.
   -----
   Country Name (2 letter code) [AU]:
       State or Province Name (full name) []:
       Locality Name (for example, city) []:
       Organization Name (for example, company) []:
       Organizational Unit Name (for example, section) []:
       Common Name (e.g. server FQDN or YOUR name) []:your_registration_code
       Email Address []:
   
       Please enter the following 'extra' attributes
       to be sent with your certificate request
       A challenge password []:
       An optional company name []:
   ```

   Depois de terminar, o comando cria o arquivo CSR.

1. Substitua o `verification_cert_csr_filename.csr` pelo `verification_cert_csr_filename.csr` que você usou na etapa anterior.

   Substitua `root_CA_cert_filename.pem` pelo nome do arquivo do certificado da CA que você deseja registrar.

   Substitua `root_CA_key_filename.key` pelo nome do arquivo da chave privada do certificado da CA.

   Substitua `verification_cert_filename.pem` pelo nome do arquivo do certificado de verificação que você deseja criar. Por exemplo, .**verification\$1cert.pem**

   ```
   openssl x509 -req \
       -in verification_cert_csr_filename.csr \
       -CA root_CA_cert_filename.pem \
       -CAkey root_CA_key_filename.key \
       -CAcreateserial \
       -out verification_cert_filename.pem \
       -days 500 -sha256
   ```

1. Depois que o comando OpenSSL for concluído, você deverá ter esses arquivos prontos para uso quando retornar ao console.
   + Seu arquivo de certificado da CA (`root_CA_cert_filename.pem` usado no comando anterior)
   + O certificado de verificação que você criou na etapa anterior (*verification\$1cert\$1filename.pem*usado no comando anterior)

## Desativar um certificado CA
<a name="deactivate-ca-cert"></a>

Quando um certificado de autoridade de certificação (CA) está habilitado para registro automático de certificados de clientes, AWS IoT verifica o certificado CA para garantir que a CA esteja`ACTIVE`. Se o certificado CA for`INACTIVE`, AWS IoT não permite que o certificado do cliente seja registrado.

Ao definir o certificado da CA como `INACTIVE`, você impede que os novos certificados de cliente emitidos pela CA sejam registrados automaticamente.

**nota**  
Qualquer certificado de cliente registrado que foi assinado pelo certificado CA comprometido continuará a funcionar até que você revogue explicitamente cada um deles.

### Desativar um certificado CA (console)
<a name="deactivate-ca-cert-console"></a>

**Para desativar um certificado CA usando o console AWS IoT**

1. Faça login no Console de gerenciamento da AWS e abra o [AWS IoT console](https://console.aws.amazon.com/iot/home).

1. No painel de navegação esquerdo, escolha **Seguro**, escolha **CAs**.

1. Na lista de autoridades de certificação, localize a que pretende desativar e selecione o ícone de reticências para abrir o menu de opções.

1. No menu de opções, selecione **Desativar**.

A autoridade de certificação deve aparecer como **Inativa** na lista.

**nota**  
O AWS IoT console não fornece uma maneira de listar os certificados que foram assinados pela CA que você desativou. Para obter uma opção da AWS CLI para listar esses certificados, consulte [Desativar um certificado CA (CLI)](#deactivate-ca-cert-cli).

### Desativar um certificado CA (CLI)
<a name="deactivate-ca-cert-cli"></a>

 AWS CLI Fornece o [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-ca-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-ca-certificate.html)comando para desativar um certificado CA.

```
aws iot update-ca-certificate \
    --certificate-id certificateId \
    --new-status INACTIVE
```

Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-certificates-by-ca.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-certificates-by-ca.html) para obter uma lista de todos os certificados de cliente registrados que foram assinados pela CA especificada. Para cada certificado de cliente assinado pelo certificado CA especificado, use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html) para revogar o certificado de cliente a fim de impedir que ele seja usado.

Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html) para ver o status do certificado CA.

# Criar um certificado de cliente usando o certificado CA
<a name="create-device-cert"></a>

É possível usar sua própria autoridade de certificação (CA) para criar certificados de cliente. O certificado do cliente deve ser registrado AWS IoT antes do uso. Para obter informações sobre as opções de registro para os certificados de cliente, consulte [Registrar um certificado de cliente](register-device-cert.md).

## Criar um certificado de cliente (CLI)
<a name="create-device-cert-cli"></a>

**nota**  
Você não pode realizar esse procedimento no AWS IoT console.

**Para criar um certificado de cliente usando o AWS CLI**

1. Gere um par de chaves.

   ```
   openssl genrsa -out device_cert_key_filename.key 2048
   ```

1. Crie uma CSR para o certificado de cliente.

   ```
   openssl req -new \
       -key device_cert_key_filename.key \
       -out device_cert_csr_filename.csr
   ```

   Você será solicitado a fornecer algumas informações, conforme mostrado aqui.

   ```
   You are about to be asked to enter information that will be incorporated
   into your certificate request.
   What you are about to enter is what is called a Distinguished Name or a DN.
   There are quite a few fields but you can leave some blank
   For some fields there will be a default value,
   If you enter '.', the field will be left blank.
   -----
   Country Name (2 letter code) [AU]:
       State or Province Name (full name) []:
       Locality Name (for example, city) []:
       Organization Name (for example, company) []:
       Organizational Unit Name (for example, section) []:
       Common Name (e.g. server FQDN or YOUR name) []:
       Email Address []:
   
       Please enter the following 'extra' attributes
       to be sent with your certificate request
       A challenge password []:
       An optional company name []:
   ```

1. Crie um certificado de cliente usando a CSR.

   ```
   openssl x509 -req \
       -in device_cert_csr_filename.csr \
       -CA root_CA_cert_filename.pem \
       -CAkey root_CA_key_filename.key \
       -CAcreateserial \
       -out device_cert_filename.pem \
       -days 500 -sha256
   ```

 Neste momento, o certificado do cliente foi criado, mas ainda não foi registrado no AWS IoT. Para obter informações sobre como e quando registrar o certificado de cliente, consulte [Registrar um certificado de cliente](register-device-cert.md). 

# Registrar um certificado de cliente
<a name="register-device-cert"></a>

Os certificados do cliente devem ser registrados AWS IoT para permitir a comunicação entre o cliente AWS IoT e. Você pode registrar cada certificado de cliente manualmente ou configurar os certificados de cliente para se registrarem automaticamente quando o cliente se conectar AWS IoT pela primeira vez.

 Se você quiser que os clientes e os dispositivos registrem seus certificados de cliente quando se conectarem pela primeira vez, deverá [Registrar o certificado CA](manage-your-CA-certs.md#register-CA-cert) usado para assinar o certificado de cliente no AWS IoT nas regiões nas quais deseja usá-lo. O Amazon Root CA é registrado automaticamente no AWS IoT. 

Os certificados do cliente podem ser Contas da AWS compartilhados por regiões. Os procedimentos desses tópicos devem ser executados em cada conta e região em que você deseja usar o certificado de cliente. O registro de um certificado de cliente em uma conta ou região não é automaticamente reconhecido por outra.

**nota**  
Os clientes que usam o protocolo Transport Layer Security (TLS) para se conectar ao AWS IoT devem oferecer suporte à [Server Name Indication (SNI) extension](https://tools.ietf.org/html/rfc3546#section-3.1) para o TLS. Para obter mais informações, consulte [Segurança de transporte em AWS IoT Core](transport-security.md).

**Topics**
+ [Registrar um certificado de cliente manualmente](manual-cert-registration.md)
+ [Registre um certificado de cliente quando o cliente se conecta ao AWS IoT just-in-time registro (JITR)](auto-register-device-cert.md)

# Registrar um certificado de cliente manualmente
<a name="manual-cert-registration"></a>

Você pode registrar um certificado de cliente manualmente usando o AWS IoT console AWS CLI e.

O procedimento de registro a ser usado depende se o certificado será compartilhado por Conta da AWS s e regiões. O registro de um certificado de cliente em uma conta ou região não é automaticamente reconhecido por outra.

Os procedimentos deste tópico devem ser executados em cada conta e região em que você deseja usar o certificado de cliente. Os certificados do cliente podem ser compartilhados por Conta da AWS s e regiões. 

## Registrar um certificado de cliente assinado por uma CA registrada (console)
<a name="manual-cert-registration-console"></a>

**nota**  
Antes de executar esse procedimento, verifique se você tem o arquivo.pem do certificado do cliente e se o certificado do cliente foi assinado por uma CA na qual você se [registrou](manage-your-CA-certs.md#register-CA-cert). AWS IoT

**Para registrar um certificado existente AWS IoT usando o console**

1. Faça login no AWS Management Console e abra o [AWS IoT console](https://console.aws.amazon.com/iot/home).

1. No painel de navegação, na seção **Gerenciar**, selecione **Segurança** e, em seguida, **Certificados**.

1. Na página **Certificados**, na caixa de diálogo **Certificados**, selecione **Adicionar certificado** e, em seguida, **Registrar certificados**.

1. Na página **Registrar certificado** na caixa de diálogo **Certificados a serem carregados**, faça o seguinte:
   + Escolha a **CA registrada no AWS IoT**.
   + Em **Escolher certificado de CA**, selecione sua **Autoridade de certificação**. 
     + Selecione **Registrar uma nova CA** para registrar uma nova **autoridade de certificação** que não esteja registrada no AWS IoT.
     + Deixe **Escolher certificado de CA** em branco se a **autoridade de certificação raiz da Amazon** for sua autoridade de certificação.
   + Selecione até 10 certificados para carregar e se registrar AWS IoT.
     + Use os arquivos de certificado que você criou em [Crie certificados de AWS IoT cliente](device-certs-create.md) e [Criar um certificado de cliente usando o certificado CA](create-device-cert.md).
   + Selecione **Ativar** ou **Desativar**. Se você selecionar **Desativar**, [Ativar ou desativar um certificado de cliente](activate-or-deactivate-device-cert.md) explica como ativar o certificado após o seu registro.
   + Escolha **Registrar**.

Na página **Certificados** na caixa de diálogo **Certificados**, seus certificados registrados agora serão exibidos.

## Registrar um certificado de cliente assinado por uma CA não registrada (console)
<a name="manual-cert-registration-console-noca"></a>

**nota**  
Antes de executar esse procedimento, verifique se você tem o arquivo .pem do certificado de cliente.

**Para registrar um certificado existente AWS IoT usando o console**

1. Faça login no AWS Management Console e abra o [AWS IoT console](https://console.aws.amazon.com/iot/home).

1. No painel de navegação à esquerda, selecione **Proteger**, **Certificados** e **Criar**.

1. Em **Criar um certificado**, localize a entrada **Usar meu certificado** e selecione **Começar**.

1. Em **Selecionar uma CA**, selecione **Próximo**.

1.  Em **Registrar certificados de dispositivos existentes**, escolha **Selecionar certificados** e escolha até 10 arquivos de certificado para registrar. 

1.  Depois de fechar a caixa de diálogo do arquivo, escolha se deseja ativar ou revogar os certificados de cliente ao registrá-los.

   Se você não ativar um certificado quando ele for registrado, [Ativar um certificado de cliente (console)](activate-or-deactivate-device-cert.md#activate-device-cert-console) descreve como ativá-lo posteriormente. 

   Se um certificado for revogado quando for registrado, ele não poderá ser ativado posteriormente.

   Depois de selecionar os arquivos de certificado a serem registrados e escolher as ações a serem executadas após o registro, selecione **Registrar certificados**.

Os certificados de cliente registrados com êxito aparecem na lista de certificados.

## Registrar um certificado de cliente assinado por uma CA registrada (CLI)
<a name="manual-cert-registration-cli"></a>

**nota**  
Antes de executar esse procedimento, verifique se você tem o arquivo .pem da autoridade de certificação (CA) e o arquivo .pem do certificado de cliente. O certificado do cliente deve ser assinado por uma autoridade de certificação (CA) na qual você tenha se [registrado AWS IoT](manage-your-CA-certs.md#register-CA-cert).

Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-certificate.html) para registrar, mas não ativar, um certificado de cliente.

```
aws iot register-certificate \
    --certificate-pem file://device_cert_filename.pem \
    --ca-certificate-pem file://ca_cert_filename.pem
```

O certificado do cliente está registrado com AWS IoT, mas ainda não está ativo. Consulte [Ativar um certificado de cliente (CLI)](activate-or-deactivate-device-cert.md#activate-device-cert-cli) para acessar informações sobre como ativá-lo posteriormente.

Também é possível ativar o certificado de cliente ao registrá-lo usando esse comando.

```
aws iot register-certificate \
    --set-as-active \
    --certificate-pem file://device_cert_filename.pem \
    --ca-certificate-pem file://ca_cert_filename.pem
```

Para obter mais informações sobre como ativar o certificado para que ele possa ser usado para se conectar AWS IoT, consulte [Ativar ou desativar um certificado de cliente](activate-or-deactivate-device-cert.md)

## Registrar um certificado de cliente assinado por uma CA não registrada (CLI)
<a name="manual-cert-registration-noca-cli"></a>

**nota**  
Antes de executar esse procedimento, verifique se você tem o arquivo .pem do certificado.

Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-certificate-without-ca.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-certificate-without-ca.html) para registrar, mas não ativar, um certificado de cliente.

```
aws iot register-certificate-without-ca \
    --certificate-pem file://device_cert_filename.pem
```

O certificado do cliente está registrado com AWS IoT, mas ainda não está ativo. Consulte [Ativar um certificado de cliente (CLI)](activate-or-deactivate-device-cert.md#activate-device-cert-cli) para acessar informações sobre como ativá-lo posteriormente.

Também é possível ativar o certificado de cliente ao registrá-lo usando esse comando.

```
aws iot register-certificate-without-ca \
    --status ACTIVE \
    --certificate-pem file://device_cert_filename.pem
```

Para obter mais informações sobre como ativar o certificado para que ele possa ser usado para se conectar AWS IoT, consulte[Ativar ou desativar um certificado de cliente](activate-or-deactivate-device-cert.md).

# Registre um certificado de cliente quando o cliente se conecta ao AWS IoT just-in-time registro (JITR)
<a name="auto-register-device-cert"></a>

Você pode configurar um certificado CA para permitir que os certificados do cliente que ele assinou sejam registrados AWS IoT automaticamente na primeira vez em que o cliente se conectar AWS IoT.

Para registrar certificados de cliente quando um cliente se conecta AWS IoT pela primeira vez, você deve habilitar o certificado CA para registro automático e configurar a primeira conexão do cliente para fornecer os certificados necessários.

## Configurar um certificado CA para oferecer suporte ao registro automático (console)
<a name="enable-auto-registration-console"></a>

**Para configurar um certificado CA para oferecer suporte ao registro automático de certificados de clientes usando o AWS IoT console**

1. Faça login no AWS Management Console e abra o [AWS IoT console](https://console.aws.amazon.com/iot/home).

1. No painel de navegação esquerdo, escolha **Seguro**, escolha **CAs**.

1. Na lista de autoridades de certificação, localize aquela para a qual deseja ativar o registro automático e abra o menu de opções usando o ícone de reticências.

1. No menu de opções, selecione **Habilitar o registro automático**.

**nota**  
O status do registro automático não é mostrado na lista de autoridades de certificação. Para ver o status do registro automático de uma autoridade de certificação, é necessário abrir a página **Detalhes** da autoridade de certificação.

## Configurar um certificado CA para oferecer suporte ao registro automático (CLI)
<a name="enable-auto-registration-cli"></a>

Se você já registrou seu certificado CA com AWS IoT, use o [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-ca-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-ca-certificate.html)comando para definir `autoRegistrationStatus` o certificado CA como`ENABLE`.

```
aws iot update-ca-certificate \
--certificate-id caCertificateId \
--new-auto-registration-status ENABLE
```

Se deseja habilitar `autoRegistrationStatus` quando registrar o certificado CA, use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-ca-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-ca-certificate.html).

```
aws iot register-ca-certificate \
--allow-auto-registration  \
--ca-certificate file://root_CA_cert_filename.pem \
--verification-cert file://verification_cert_filename.pem
```

Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html) para ver o status do certificado CA.

## Configurar a primeira conexão feita por um cliente para registro automático
<a name="configure-auto-reg-first-connect"></a>

Quando um cliente tenta se conectar AWS IoT pela primeira vez, o certificado do cliente assinado pelo seu certificado CA deve estar presente no cliente durante o handshake do Transport Layer Security (TLS).

Quando o cliente se conectar AWS IoT, use o certificado de cliente que você criou em [Criar certificados de AWS IoT cliente](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-create.html) ou [Criar seus próprios certificados de cliente](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html). AWS IoT reconhece o certificado CA como um certificado CA registrado, registra o certificado do cliente e define seu status como. `PENDING_ACTIVATION` Isso indica que o certificado de cliente foi registrado automaticamente e está aguardando ativação. O estado do certificado de cliente deve ser `ACTIVE` para que ele possa ser usado para se conectar ao AWS IoT. Consulte [Ativar ou desativar um certificado de cliente](activate-or-deactivate-device-cert.md) para ver mais informações sobre como ativar um certificado de cliente.

**nota**  
Você pode provisionar dispositivos usando o recurso de AWS IoT Core just-in-time registro (JITR) sem precisar enviar toda a cadeia de confiança na primeira conexão dos dispositivos. AWS IoT Core A apresentação do certificado da CA é opcional, mas é necessário que o dispositivo envie a extensão [Server Name Indication (SNI)](https://datatracker.ietf.org/doc/html/rfc3546#section-3.1) ao se conectar.

Quando registra AWS IoT automaticamente um certificado ou quando um cliente apresenta um certificado no `PENDING_ACTIVATION` status, AWS IoT publica uma mensagem no seguinte tópico do MQTT:

`$aws/events/certificates/registered/caCertificateId`

Em que `caCertificateId` é o ID do certificado CA que emitiu o certificado de cliente.

A mensagem publicada para este tópico tem a seguinte estrutura:

```
{
        "certificateId": "certificateId",
        "caCertificateId": "caCertificateId",
        "timestamp": timestamp,
        "certificateStatus": "PENDING_ACTIVATION",
        "awsAccountId": "awsAccountId",
        "certificateRegistrationTimestamp": "certificateRegistrationTimestamp"
}
```

Você pode criar uma regra que ouça esse tópico e execute algumas ações. Recomendamos que você crie uma regra do Lambda que verifique se o certificado de cliente não está em uma lista de revogação de certificados (CRL), ative o certificado e crie e anexe uma política para o certificado. A política determina quais recursos o cliente pode acessar. Se a política que você está criando exigir o ID do cliente dos dispositivos conectados, você poderá usar a função clientid() da regra para recuperar o ID do cliente. Este é um exemplo de definição de regra:

```
SELECT *,
   clientid() as clientid
from $aws/events/certificates/registered/caCertificateId
```

Neste exemplo, a regra assina o tópico de JITR `$aws/events/certificates/registered/caCertificateID` e usa a função clientid() para recuperar o ID do cliente. Depois, a regra anexa o ID do cliente à carga útil de JITR. Para ter mais informações sobre a função clientid() da regra, consulte [clientid()](https://docs.aws.amazon.com//iot/latest/developerguide/iot-sql-functions.html#iot-sql-function-clientid).

Para obter mais informações sobre como criar uma regra Lambda que escuta o `$aws/events/certificates/registered/caCertificateID` tópico e executa essas ações, consulte [just-in-time registro de certificados de cliente](https://aws.amazon.com/blogs/iot/just-in-time-registration-of-device-certificates-on-aws-iot/) em. AWS IoT

Se ocorrer algum erro ou exceção durante o registro automático dos certificados do cliente, AWS IoT envia eventos ou mensagens para seus CloudWatch registros no Logs. Para obter mais informações sobre como configurar os registros da sua conta, consulte a [ CloudWatch documentação da Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/).

# Gerenciar certificados do cliente
<a name="manage-device-cert"></a>

AWS IoT fornece recursos para você gerenciar certificados de clientes.

**Topics**
+ [Ativar ou desativar um certificado de cliente](activate-or-deactivate-device-cert.md)
+ [Anexar um objeto ou política a um certificado de cliente](attach-to-cert.md)
+ [Revogar um certificado de cliente](revoke-ca-cert.md)
+ [Transferir um certificado para outra conta](transfer-cert.md)

# Ativar ou desativar um certificado de cliente
<a name="activate-or-deactivate-device-cert"></a>

AWS IoT verifica se um certificado de cliente está ativo ao autenticar uma conexão.

É possível criar e registrar certificados de cliente sem ativá-los, para que eles não possam ser usados até que você queira usá-los. Também é possível desativar certificados de cliente ativos para desabilitá-los temporariamente. Por fim, é possível revogar certificados de cliente para impedir qualquer uso futuro deles. 

## Ativar um certificado de cliente (console)
<a name="activate-device-cert-console"></a>

**Para ativar um certificado de cliente usando o AWS IoT console**

1. Faça login no AWS Management Console e abra o [AWS IoT console](https://console.aws.amazon.com/iot/home).

1. No painel de navegação à esquerda, selecione **Proteger** e **Certificados**.

1. Na lista de certificados, localize o certificado que você deseja ativar e abra o menu de opções usando o ícone de reticências.

1. No menu de opções, selecione **Ativar**.

O certificado deve ser exibido como **Ativo** na lista de certificados.

## Desativar um certificado de cliente (console)
<a name="deactivate-device-cert-console"></a>

**Para desativar um certificado de cliente usando o console AWS IoT**

1. Faça login no AWS Management Console e abra o [AWS IoT console](https://console.aws.amazon.com/iot/home).

1. No painel de navegação à esquerda, selecione **Proteger** e **Certificados**.

1. Na lista de certificados, localize o certificado que você deseja desativar e abra o menu de opções usando o ícone de reticências.

1. No menu de opções, selecione **Desativar**.

O certificado deve ser exibido como **Inativo** na lista de certificados.

## Ativar um certificado de cliente (CLI)
<a name="activate-device-cert-cli"></a>

O AWS CLI fornece o [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html)comando para ativar um certificado.

```
aws iot update-certificate \
    --certificate-id certificateId \
    --new-status ACTIVE
```

Se o comando tiver sido bem-sucedido, o status do certificado será `ACTIVE`. Execute [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-certificate.html) para ver o status do certificado.

```
aws iot describe-certificate \
    --certificate-id certificateId
```

## Desativar um certificado de cliente (CLI)
<a name="deactivate-device-cert-cli"></a>

O AWS CLI fornece o [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html)comando para desativar um certificado.

```
aws iot update-certificate \
    --certificate-id certificateId \
    --new-status INACTIVE
```

Se o comando tiver sido bem-sucedido, o status do certificado será `INACTIVE`. Execute [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-certificate.html) para ver o status do certificado.

```
aws iot describe-certificate \
    --certificate-id certificateId
```

# Anexar um objeto ou política a um certificado de cliente
<a name="attach-to-cert"></a>

Quando você cria e registra um certificado separado de AWS IoT algo, ele não terá nenhuma política que autorize nenhuma AWS IoT operação, nem será associado a nenhum AWS IoT objeto. Esta seção descreve como adicionar esses relacionamentos a um certificado registrado.

**Importante**  
Para concluir esses procedimentos, você já deve ter criado o objeto ou a política que quer anexar ao certificado.

O certificado autentica um dispositivo AWS IoT para que ele possa se conectar. Anexar o certificado a um recurso de objeto estabelece a relação entre o dispositivo (por meio do certificado) e o recurso de objeto. Para autorizar o dispositivo a realizar AWS IoT ações, como permitir que o dispositivo se conecte e publique mensagens, uma política apropriada deve ser anexada ao certificado do dispositivo. 

## Anexar um objeto a um certificado de cliente (console)
<a name="attach-to-cert-thing-console"></a>

Será necessário o nome do objeto para concluir este procedimento.

**Como anexar um objeto a um certificado registrado**

1. Faça login no AWS Management Console e abra o [AWS IoT console](https://console.aws.amazon.com/iot/home).

1. No painel de navegação à esquerda, selecione **Proteger** e **Certificados**.

1. Na lista de certificados, localize o certificado ao qual você deseja anexar uma política, abra o menu de opções do certificado escolhendo o ícone de reticências e escolha **Anexar objeto**.

1. No menu pop-up, localize o nome do objeto que você deseja anexar ao certificado, marque sua caixa de seleção e escolha **Anexar**.

O objeto agora deve aparecer na lista de objetos na página de detalhes do certificado.

## Anexar uma política a um certificado de cliente (console)
<a name="attach-to-cert-policy-console"></a>

Será necessário o nome do objeto de política para concluir este procedimento.

**Como anexar um objeto de política a um certificado registrado**

1. Faça login no AWS Management Console e abra o [AWS IoT console](https://console.aws.amazon.com/iot/home).

1. No painel de navegação à esquerda, selecione **Proteger** e **Certificados**.

1. Na lista de certificados, localize o certificado ao qual você deseja anexar uma política, abra o menu de opções do certificado escolhendo o ícone de reticências e escolha **Anexar política**. 

1. No menu pop-up, localize o nome da política que você deseja anexar ao certificado, marque sua caixa de seleção e escolha **Anexar**.

O objeto de política agora deverá ser exibido na lista de políticas na página de detalhes do certificado.

## Anexar um objeto a um certificado de cliente (CLI)
<a name="attach-to-cert-thing-cli"></a>

O AWS CLI fornece o [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/attach-thing-principal.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/attach-thing-principal.html)comando para anexar um objeto a um certificado.

```
aws iot attach-thing-principal \
    --principal certificateArn \
    --thing-name thingName
```

## Anexar uma política a um certificado de cliente (CLI)
<a name="attach-to-cert-policy-cli"></a>

O AWS CLI fornece o [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/attach-policy.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/attach-policy.html)comando para anexar um objeto de política a um certificado.

```
aws iot attach-policy \
    --target certificateArn \
    --policy-name policyName
```

# Revogar um certificado de cliente
<a name="revoke-ca-cert"></a>

Se detectar atividade suspeita em um certificado de cliente registrado, você poderá revogá-lo para que ele não possa ser usado novamente.

**nota**  
Depois que um certificado é revogado, seu status não pode ser alterado. Ou seja, o status do certificado não pode ser alterado para `Active` nenhum outro status.

## Revogar um certificado de cliente (console)
<a name="revoke-device-cert-console"></a>

**Para revogar um certificado de cliente usando o console AWS IoT**

1. Faça login no AWS Management Console e abra o [AWS IoT console](https://console.aws.amazon.com/iot/home).

1. No painel de navegação à esquerda, selecione **Proteger** e **Certificados**.

1. Na lista de certificados, localize o certificado que você deseja revogar e abra o menu de opções usando o ícone de reticências.

1. No menu de opções, selecione **Revogar**.

Se o certificado tiver sido revogado com êxito, ele será exibido como **Revogado** na lista de certificados.

## Revogar um certificado de cliente (CLI)
<a name="revoke-device-cert-cli"></a>

O AWS CLI fornece o [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html)comando para revogar um certificado.

```
aws iot update-certificate \
    --certificate-id certificateId \
    --new-status REVOKED
```

Se o comando tiver sido bem-sucedido, o status do certificado será `REVOKED`. Execute [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-certificate.html) para ver o status do certificado.

```
aws iot describe-certificate \
    --certificate-id certificateId
```

# Transferir um certificado para outra conta
<a name="transfer-cert"></a>

Os certificados X.509 que pertencem a um Conta da AWS podem ser transferidos para outro. Conta da AWS

**Para transferir um certificado X.509 de um para outro Conta da AWS**

1. [Iniciar uma transferência de certificado](#transfer-cert-init)

   O certificado deve ser desativado e separado de todas as políticas e itens antes de a transferência ser iniciada.

1. [Aceitar ou rejeitar uma transferência de certificado](#transfer-cert-accept)

   A conta receptora deve aceitar ou rejeitar explicitamente o certificado transferido. Depois que a conta receptora aceitar o certificado, o certificado deverá ser ativado antes do uso.

1. [Cancelar uma transferência de certificado](#transfer-cert-cancel)

   A conta de origem poderá cancelar uma transferência, se o certificado não tiver sido aceito.

## Iniciar uma transferência de certificado
<a name="transfer-cert-init"></a>

Você pode começar a transferir um certificado para outro Conta da AWS usando o [AWS IoT console](https://console.aws.amazon.com/iot/home) ou AWS CLI o.

### Iniciar uma transferência de certificado (console)
<a name="transfer-cert-init-console"></a>

Para concluir esse procedimento, você precisará da ID do certificado que deseja transferir.

Execute esse procedimento na conta com o certificado a ser transferido.

**Para começar a transferir um certificado para outro Conta da AWS**

1. Faça login no AWS Management Console e abra o [AWS IoT console](https://console.aws.amazon.com/iot/home).

1. No painel de navegação à esquerda, selecione **Proteger** e **Certificados**.

   Escolha o certificado com status **Ativo** ou **Inativo** que você deseja transferir e abra sua página de detalhes.

1. Na página **Detalhes** do certificado, no menu **Ações**, se a opção **Desativar** estiver disponível, escolha a opção **Desativar** para desativar o certificado.

1. Na página **Detalhes** do certificado, no menu à esquerda, escolha **Políticas**.

1. Na página **Políticas** do certificado, se houver alguma política anexada ao certificado, separe cada uma abrindo o menu de opções da política e escolhendo **Desanexar**.

   O certificado não deve possuir políticas anexadas antes de prosseguir.

1. Na página **Políticas** do certificado, no menu à esquerda, escolha **Objetos**.

1. Na página **Objetos** do certificado, se houver algum objeto anexado ao certificado, separe cada uma abrindo o menu de opções do objeto e escolhendo **Desanexar**.

   O certificado não deve possuir objetos anexados antes de prosseguir.

1. Na página **Objetos** do certificado, no menu à esquerda, escolha **Detalhes**.

1. Na página **Detalhes** do certificado, no menu **Ações**, escolha **Iniciar transferência** para abrir a caixa de diálogo **Iniciar transferência**.

1. Na caixa de diálogo **Iniciar transferência**, insira o Conta da AWS número da conta para receber o certificado e uma mensagem curta opcional.

1. Escolha **Iniciar transferência** para transferir o certificado.

O console deve exibir uma mensagem que indica o êxito ou a falha da transferência. Se a transferência foi iniciada, o status do certificado será atualizado para **Transferido**.

### Iniciar uma transferência de certificado (CLI)
<a name="transfer-cert-init-cli"></a>

Para concluir esse procedimento, você precisará *certificateArn* do *certificateId* e do certificado que deseja transferir.

Execute esse procedimento na conta com o certificado a ser transferido.

**Para começar a transferir um certificado para outra AWS conta**

1. Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html) para desativar o certificado.

   ```
   aws iot update-certificate --certificate-id certificateId --new-status INACTIVE
   ```

1. Desanexe todas as políticas.

   1. Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-attached-policies.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-attached-policies.html) para listar as políticas anexadas ao certificado.

      ```
      aws iot list-attached-policies --target certificateArn
      ```

   1. Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/detach-policy.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/detach-policy.html) para desanexar cada política anexada.

      ```
      aws iot detach-policy --target certificateArn --policy-name policy-name
      ```

1. Desanexe todas as objetos.

   1. Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-principal-things.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-principal-things.html) para listar as objetos anexados ao certificado.

      ```
      aws iot list-principal-things --principal certificateArn
      ```

   1. Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/detach-thing-principal.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/detach-thing-principal.html) para desanexar cada objeto anexado.

      ```
      aws iot detach-thing-principal --principal certificateArn --thing-name thing-name
      ```

1. Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/transfer-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/transfer-certificate.html) para iniciar a transferência do certificado.

   ```
   aws iot transfer-certificate --certificate-id certificateId --target-aws-account account-id
   ```

## Aceitar ou rejeitar uma transferência de certificado
<a name="transfer-cert-accept"></a>

Você pode aceitar ou rejeitar um certificado transferido para você Conta da AWS de outra pessoa Conta da AWS usando o [AWS IoT console](https://console.aws.amazon.com/iot/home) ou AWS CLI o.

### Aceitar ou rejeitar uma transferência de certificado (console)
<a name="transfer-cert-accept-console"></a>

Para concluir esse procedimento, você precisará da ID do certificado que foi transferido para sua conta.

Execute esse procedimento na conta que recebeu o certificado transferido.

**Para aceitar ou rejeitar um certificado que foi transferido para o seu Conta da AWS**

1. Faça login no AWS Management Console e abra o [AWS IoT console](https://console.aws.amazon.com/iot/home).

1. No painel de navegação à esquerda, selecione **Proteger** e **Certificados**.

   Escolha o certificado com o status **Transferência pendente** que você deseja aceitar ou rejeitar e abra sua página de detalhes.

1. Na página **Detalhes** do certificado, no menu **Ações**,
   + Para aceitar o certificado, escolha **Aceitar transferência**.
   + Para não aceitar o certificado, escolha **Rejeitar transferência**.

### Aceitar ou rejeitar uma transferência de certificado (CLI)
<a name="transfer-cert-accept-cli"></a>

Para concluir esse procedimento, você precisará *certificateId* da transferência do certificado que deseja aceitar ou rejeitar.

Execute esse procedimento na conta que recebeu o certificado transferido.

**Para aceitar ou rejeitar um certificado que foi transferido para o seu Conta da AWS**

1. Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/accept-certificate-transfer.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/accept-certificate-transfer.html) para aceitar o certificado.

   ```
   aws iot accept-certificate-transfer --certificate-id certificateId
   ```

1. Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/reject-certificate-transfer.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/reject-certificate-transfer.html) para rejeitar o certificado.

   ```
   aws iot reject-certificate-transfer --certificate-id certificateId
   ```

## Cancelar uma transferência de certificado
<a name="transfer-cert-cancel"></a>

Você pode cancelar uma transferência de certificado antes que ela seja aceita usando o [console do AWS IoT](https://console.aws.amazon.com/iot/home) ou a AWS CLI.

### Cancelar uma transferência de certificado (console)
<a name="transfer-cert-cancel-console"></a>

Para concluir esse procedimento, você precisará da ID da transferência de certificado que deseja cancelar.

Execute esse procedimento na conta que iniciou a transferência de certificado.

**Para cancelar uma transferência de certificado**

1. Faça login no AWS Management Console e abra o [AWS IoT console](https://console.aws.amazon.com/iot/home).

1. No painel de navegação à esquerda, selecione **Proteger** e **Certificados**.

   Escolha o certificado com status **Transferido** cuja transferência você deseja cancelar e abra seu menu de opções.

1. No menu de opções do certificado, escolha a opção **Revogar transferência** para cancelar a transferência do certificado.
**Importante**  
Tome cuidado para não confundir a opção **Revogar transferência** com a opção **Revogar**.  
A opção **Revogar transferência** cancela a transferência do certificado, enquanto a opção **Revogar** torna o certificado irreversivelmente inutilizável pelo AWS IoT. 

### Cancelar uma transferência de certificado (CLI)
<a name="transfer-cert-cancel-cli"></a>

Para concluir esse procedimento, você precisará *certificateId* da transferência do certificado que deseja cancelar.

Execute esse procedimento na conta que iniciou a transferência de certificado.

Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/cancel-certificate-transfer.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/cancel-certificate-transfer.html) para cancelar a transferência do certificado.

```
aws iot cancel-certificate-transfer --certificate-id certificateId
```

# Validação personalizada de certificados de cliente
<a name="customize-client-auth"></a>

AWS IoT Core oferece suporte à validação personalizada de certificados de cliente para certificados de cliente X.509, o que aprimora o gerenciamento da autenticação do cliente. Esse método de validação de certificado também é conhecido como verificações de certificado de pré-autenticação, nas quais você avalia os certificados do cliente com base em seus próprios critérios (definidos em uma função do Lambda) e revoga os certificados do cliente ou o certificado da autoridade certificadora (CA) de assinatura dos certificados para impedir que os clientes se conectem ao AWS IoT Core. Por exemplo, você pode criar suas próprias verificações de revogação de certificados para validar o status dos certificados em relação às autoridades de validação que oferecem suporte a endpoints do [Protocolo de Status de Certificados Online (OCSP)](https://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol) ou de [Listas de Revogação de Certificados (CRL)](https://en.wikipedia.org/wiki/Certificate_revocation_list) e impedir conexões para clientes com certificados revogados. Os critérios usados para avaliar os certificados do cliente são definidos em uma função do Lambda (também conhecida como Lambda pré-autenticação). Você deve usar os endpoints definidos nas configurações de domínio e o [tipo de autenticação](protocols.md#connection-protocol-auth-mode) deve ser certificado X.509. Além disso, os clientes devem fornecer a extensão de [Indicação de Nome do Servidor (SNI)](https://www.rfc-editor.org/rfc/rfc3546#section-3.1) ao se conectarem a. AWS IoT Core

**nota**  
Esse recurso não é suportado nas AWS GovCloud (US) regiões.

**Topics**
+ [Etapa 1: registre seus certificados de cliente X.509 com AWS IoT Core](#client-auth-cert-verification)
+ [Etapa 2: Criar uma função do Lambda](#customize-client-auth-lambda)
+ [Etapa 3: Autorizar AWS IoT a invocação da função Lambda](#customize-client-configuration-grant-permission)
+ [Etapa 4: definir a configuração de autenticação para um domínio](#customize-client-configuration)

## Etapa 1: registre seus certificados de cliente X.509 com AWS IoT Core
<a name="client-auth-cert-verification"></a>

Se você ainda não fez isso, registre e ative seus [certificados de cliente X.509](https://docs.aws.amazon.com//iot/latest/developerguide/x509-client-certs.html) com. AWS IoT Core Caso contrário, vá para a próxima etapa.

Para registrar e ativar seus certificados de cliente com AWS IoT Core, siga as etapas:

1. Se você [criar certificados de cliente diretamente com AWS IoT](https://docs.aws.amazon.com//iot/latest/developerguide/device-certs-create.html). Esses certificados de cliente serão registrados automaticamente com AWS IoT Core.

1. Se você [criar seus próprios certificados de cliente](https://docs.aws.amazon.com//iot/latest/developerguide/device-certs-your-own.html), siga [estas instruções para registrá-los AWS IoT Core](https://docs.aws.amazon.com//iot/latest/developerguide/register-device-cert.html).

1. Para ativar seus certificados de cliente, siga [estas instruções](https://docs.aws.amazon.com//iot/latest/developerguide/activate-or-deactivate-device-cert.html).

## Etapa 2: Criar uma função do Lambda
<a name="customize-client-auth-lambda"></a>

Você precisa criar uma função do Lambda que realizará a verificação do certificado e será chamada para cada tentativa de conexão do cliente para o endpoint configurado. Ao criar essa função do Lambda, siga as orientações gerais para [Criar sua primeira função do Lambda](https://docs.aws.amazon.com//lambda/latest/dg/getting-started.html). Além disso, garanta que a função do Lambda cumpra os formatos de solicitação e resposta esperados da seguinte forma:

**Exemplo de evento da função do Lambda**

```
{
	"connectionMetadata": {
		"id": "string"
	},
	"principalId": "string",
	"serverName": "string",
	"clientCertificateChain": [
		"string",
		"string"
	]
}
```

`connectionMetadata`  
Metadados ou informações adicionais relacionadas à conexão do cliente com o AWS IoT Core.

`principalId`  
O identificador de entidade principal associado ao cliente na conexão TLS.

`serverName`  
A string de nome de host [Indicação de nome de servidor (SNI)](https://www.rfc-editor.org/rfc/rfc3546#section-3.1). O AWS IoT Core requer que os dispositivos enviem a [extensão SNI](https://www.rfc-editor.org/rfc/rfc3546#section-3.1) para o protocolo Transport Layer Security (TLS) e forneçam o endereço completo do endpoint no campo `host_name`.

`clientCertificateChain`  
A matriz de strings que representa a cadeia de certificados X.509 do cliente. 

**Exemplo de resposta da função do Lambda**

```
{
	"isAuthenticated": "boolean"
}
```

`isAuthenticated`  
Um valor booliano que indica se a solicitação foi autenticada.

**nota**  
Na resposta do Lambda, `isAuthenticated` precisa ser `true` para prosseguir com a autenticação e a autorização adicionais. Caso contrário, o certificado do cliente de IoT pode ser desativado e a autenticação personalizada com certificados de cliente X.509 pode ser bloqueada para autenticação e autorização adicionais.

## Etapa 3: Autorizar AWS IoT a invocação da função Lambda
<a name="customize-client-configuration-grant-permission"></a>

[Depois de criar a função Lambda, você deve conceder permissão AWS IoT para invocá-la usando o comando da CLI add-permission.](https://docs.aws.amazon.com//cli/latest/reference/lambda/add-permission.html) Observe que essa função do Lambda será invocada para cada tentativa de conexão ao seu endpoint configurado. Para obter mais informações, consulte [Autorização AWS IoT para invocar sua função Lambda](custom-auth-authorize.md).

## Etapa 4: definir a configuração de autenticação para um domínio
<a name="customize-client-configuration"></a>

A seção a seguir descreve como definir a configuração de autenticação para um domínio personalizado usando a AWS CLI.

### Definir a configuração do certificado do cliente para um domínio (CLI)
<a name="customize-client-auth-cli"></a>

Se você não tiver uma configuração de domínio, use o comando da CLI [https://docs.aws.amazon.com//cli/latest/reference/iot/create-domain-configuration.html](https://docs.aws.amazon.com//cli/latest/reference/iot/create-domain-configuration.html) para criar uma. Se você já tiver uma configuração de domínio, use o comando da CLI [https://docs.aws.amazon.com//cli/latest/reference/iot/update-domain-configuration.html](https://docs.aws.amazon.com//cli/latest/reference/iot/update-domain-configuration.html) para atualizar a configuração do certificado do cliente para um domínio. Você deve adicionar o ARN da função do Lambda que criou na etapa anterior.

```
aws iot create-domain-configuration \
    --domain-configuration-name domainConfigurationName \
    --authentication-type AWS_X509|CUSTOM_AUTH_X509 \
    --application-protocol SECURE_MQTT|HTTPS \
    --client-certificate-config 'clientCertificateCallbackArn":"arn:aws:lambda:us-east-2:123456789012:function:my-function:1"}'
```

```
aws iot update-domain-configuration \
    --domain-configuration-name domainConfigurationName \
    --authentication-type AWS_X509|CUSTOM_AUTH_X509 \
    --application-protocol SECURE_MQTT|HTTPS \
    --client-certificate-config '{"clientCertificateCallbackArn":"arn:aws:lambda:us-east-2:123456789012:function:my-function:1"}'
```

`domain-configuration-name`  
O nome da configuração do domínio.

`authentication-type`  
O tipo de autenticação da configuração do domínio. Para obter mais informações, consulte [Escolher um tipo de autenticação](protocols.md#connection-protocol-auth-mode).

`application-protocol`  
O protocolo de aplicativo que os dispositivos usam para se comunicar com o AWS IoT Core. Para obter mais informações, consulte [Escolhendo um protocolo de aplicativo](protocols.md#protocol-selection).

`client-certificate-config`  
Um objeto que especifica a configuração de autenticação do cliente para um domínio.

`clientCertificateCallbackArn`  
O Amazon Resource Name (ARN) da função Lambda que é AWS IoT invocada na camada TLS quando uma nova conexão está sendo estabelecida. Para personalizar a autenticação do cliente para realizar a validação personalizada de certificados de cliente, você deve adicionar o ARN da função do Lambda que criou na etapa anterior.

Para obter mais informações, consulte [CreateDomainConfiguration](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateDomainConfiguration.html)e a [UpdateDomainConfiguration](https://docs.aws.amazon.com//iot/latest/apireference/API_UpdateDomainConfiguration.html)partir da *Referência AWS IoT da API*. Para obter mais informações sobre configurações de domínio, consulte [Configurações de domínio](https://docs.aws.amazon.com//iot/latest/developerguide/iot-custom-endpoints-configurable.html).

# Usuários, grupos e funções do IAM
<a name="iam-users-groups-roles"></a>

Os usuários, grupos e perfis do IAM são os mecanismos padrão para o gerenciamento de identidades e de autenticações na AWS. Você pode usá-los para se conectar a interfaces AWS IoT HTTP usando o AWS SDK e. AWS CLI

As funções do IAM também AWS IoT permitem acessar outros AWS recursos em sua conta em seu nome. Por exemplo, se você quiser que um dispositivo publique seu estado em uma tabela do DynamoDB, as funções do IAM AWS IoT permitem interagir com o Amazon DynamoDB. Para obter mais informações, consulte [Perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html).

Para conexões de agente de mensagens via HTTP, AWS IoT autentica usuários, grupos e funções usando o processo de assinatura Signature versão 4. Para obter mais informações, consulte [Assinatura de solicitações de AWS API](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html).

Ao usar o AWS Signature Version 4 com AWS IoT, os clientes devem oferecer suporte ao seguinte em sua implementação de TLS:
+ TLS 1.2
+ Validação de assinatura do certificado SHA-256 RSA
+ Um dos pacotes de criptografia na seção de suporte a pacotes de criptografia do TLS

Para mais informações, consulte [Gerenciamento de identidade e acesso para AWS IoT](security-iam.md).

# Identidades do Amazon Cognito
<a name="cognito-identities"></a>

O Amazon Cognito Identity permite que você crie AWS credenciais temporárias com privilégios limitados para uso em aplicativos móveis e web. Ao usar a identidade do Amazon Cognito, são criados bancos de identidades que criam identidades exclusivas para seus usuários e os autentica com provedores de identidade como Login with Amazon, Facebook e Google. Também é possível usar identidades do Amazon Cognito com suas próprias identidades autenticadas pelo desenvolvedor. Para obter mais informações, consulte [Identidade do Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html).

Para usar a identidade do Amazon Cognito, você define um banco de identidades do Amazon Cognito associado a um perfil do IAM. A função do IAM está associada a uma política do IAM que concede às identidades do seu grupo de identidades permissão para acessar AWS recursos como AWS serviços de chamadas.

A identidade do Amazon Cognito cria identidades não autenticadas e autenticadas. As identidades não autenticadas são usadas para usuários convidados em um aplicativo móvel ou web que desejam usar o aplicativo sem fazer login. Os usuários não autenticados recebem somente as permissões especificadas na política do IAM associada ao banco de identidades.

Ao usar identidades autenticadas, além da política do IAM anexada ao grupo de identidades, você deve anexar uma AWS IoT política a uma identidade do Amazon Cognito. Para anexar uma AWS IoT política, use a [ AttachPolicy](https://docs.aws.amazon.com/iot/latest/apireference/API_AttachPolicy.html)API e conceda permissões a um usuário individual do seu AWS IoT aplicativo. Você pode usar a AWS IoT política para atribuir permissões refinadas para clientes específicos e seus dispositivos.

Usuários autenticados e não autenticados são tipos de identidade diferentes. Se você não anexar uma AWS IoT política à Identidade do Amazon Cognito, um usuário autenticado falhará na autorização AWS IoT e não terá acesso aos AWS IoT recursos e ações. Para obter mais informações sobre a criação de políticas para identidades do Amazon Cognito, consulte [Exemplos de política de publicação/inscrição](pub-sub-policy.md) e [Autorização com identidades do Amazon Cognito](cog-iot-policies.md).

![\[Aplicativo acessando um dispositivo com o Amazon Cognito Identity.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/device-cognito.png)
