

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

# Provisionamento de dispositivos com certificados de dispositivo


AWS IoT fornece três maneiras de provisionar dispositivos quando eles já têm um certificado de dispositivo (e uma chave privada associada):
+ Provisionamento de uma única coisa com um modelo de provisionamento. Essa é uma boa opção se você precisa provisionar somente um dispositivo por vez.
+ Just-in-time provisionamento (JITP) com um modelo que provisiona um dispositivo quando ele se conecta pela primeira vez a. AWS IoT Essa é uma boa opção se você precisa registrar uma grande quantidade de dispositivos, mas não tem informações sobre eles para montar uma lista de provisionamento em massa.
+ Registro em massa. Essa opção permite que você especifique uma lista de valores de um modelo de provisionamento de uma única coisa que são armazenados em um arquivo em um bucket do S3. Essa abordagem funciona bem se você tem uma grande quantidade de dispositivos conhecidos cujas características desejadas podem ser montadas por você em uma lista. 

**Topics**
+ [

# Provisionamento de uma única coisa
](single-thing-provisioning.md)
+ [

# Just-in-time provisionamento
](jit-provisioning.md)
+ [

# Registro em massa
](bulk-provisioning.md)

# Provisionamento de uma única coisa


Para provisionar algo, use a [RegisterThing](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterThing.html)API ou o comando `register-thing` CLI. O comando `register-thing` da CLI usa os seguintes argumentos:

--template-body  
O modelo provisionado.

--parameters  
Uma lista de pares de nome-valor para os parâmetros usados no modelo de provisionamento, no formato JSON (por exemplo, `{"ThingName" : "MyProvisionedThing", "CSR" : "csr-text"}`).

Consulte [Modelos de provisionamento](provision-template.md).

[RegisterThing](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterThing.html)ou `register-thing` retorna o ARNs para os recursos e o texto do certificado que ele criou:

```
{
    "certificatePem": "certificate-text",
    "resourceArns": {
    "PolicyLogicalName": "arn:aws:iot:us-west-2:123456789012:policy/2A6577675B7CD1823E271C7AAD8184F44630FFD7",
    "certificate": "arn:aws:iot:us-west-2:123456789012:cert/cd82bb924d4c6ccbb14986dcb4f40f30d892cc6b3ce7ad5008ed6542eea2b049",
    "thing": "arn:aws:iot:us-west-2:123456789012:thing/MyProvisionedThing"
    }
}
```

Se um parâmetro for omitido do dicionário, o valor padrão será usado. Se nenhum valor padrão estiver especificado, o parâmetro não será substituído por um valor.

# Just-in-time provisionamento


Você pode usar o just-in-time provisionamento (JITP) para provisionar seus dispositivos quando eles tentarem se conectar pela primeira vez. AWS IoT Para provisionar o dispositivo, você deve habilitar o registro automático e associar um modelo de provisionamento ao certificado da CA usado para assinar o certificado do dispositivo. Os sucessos e erros de provisionamento são registrados como na Amazon. [Métricas de provisionamento de dispositivos](metrics_dimensions.md#provisioning-metrics) CloudWatch

**Topics**
+ [

## Visão geral de JITP
](#jit-provisioning-overview)
+ [

## Registrar CA usando o modelo de provisionamento
](#jit-provisioning-registerCA-template)
+ [

## Registrar CA usando o nome do modelo de provisionamento
](#jit-provisioning-registerCA-templateName)

## Visão geral de JITP


Quando um dispositivo tenta se conectar AWS IoT usando um certificado assinado por um certificado CA registrado, AWS IoT carrega o modelo do certificado CA e o usa para fazer a chamada [RegisterThing](fleet-provision-api.md#register-thing). O fluxo de trabalho de JITP registra primeiro um certificado com um valor de status de `PENDING_ACTIVATION`. Quando o fluxo de provisionamento do dispositivo for concluído, o status do certificado será alterado para `ACTIVE`.

AWS IoT define os seguintes parâmetros que você pode declarar e referenciar nos modelos de provisionamento:
+ `AWS::IoT::Certificate::Country`
+ `AWS::IoT::Certificate::Organization`
+ `AWS::IoT::Certificate::OrganizationalUnit`
+ `AWS::IoT::Certificate::DistinguishedNameQualifier`
+ `AWS::IoT::Certificate::StateName`
+ `AWS::IoT::Certificate::CommonName`
+ `AWS::IoT::Certificate::SerialNumber`
+ `AWS::IoT::Certificate::Id`

Os valores para esses parâmetros de modelo de provisionamento são limitados ao que o JITP pode extrair do campo de assunto do certificado do dispositivo que está sendo provisionado. O certificado deve conter valores para todos os parâmetros no corpo do modelo. O parâmetro `AWS::IoT::Certificate::Id` se refere a um ID gerado internamente, e não a um ID contido no certificado. Você pode obter o valor desse ID usando a `principal()` função dentro de uma AWS IoT regra. 

**nota**  
Você pode AWS IoT Core just-in-time provisionar dispositivos usando o recurso de provisionamento (JITP) sem precisar enviar toda a cadeia de confiança na primeira conexão de um dispositivo para o. 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 ao AWS IoT Core.

### Exemplo de corpo do modelo


O arquivo JSON a seguir é um exemplo de corpo do modelo de JITP completo. 

```
{
   "Parameters":{
      "AWS::IoT::Certificate::CommonName":{
         "Type":"String"
      },
      "AWS::IoT::Certificate::SerialNumber":{
         "Type":"String"
      },
      "AWS::IoT::Certificate::Country":{
         "Type":"String"
      },
      "AWS::IoT::Certificate::Id":{
         "Type":"String"
      }
   },
   "Resources":{
      "thing":{
         "Type":"AWS::IoT::Thing",
         "Properties":{
            "ThingName":{
               "Ref":"AWS::IoT::Certificate::CommonName"
            },
            "AttributePayload":{
               "version":"v1",
               "serialNumber":{
                  "Ref":"AWS::IoT::Certificate::SerialNumber"
               }
            },
            "ThingTypeName":"lightBulb-versionA",
            "ThingGroups":[
               "v1-lightbulbs",
               {
                  "Ref":"AWS::IoT::Certificate::Country"
               }
            ]
         },
         "OverrideSettings":{
            "AttributePayload":"MERGE",
            "ThingTypeName":"REPLACE",
            "ThingGroups":"DO_NOTHING"
         }
      },
      "certificate":{
         "Type":"AWS::IoT::Certificate",
         "Properties":{
            "CertificateId":{
               "Ref":"AWS::IoT::Certificate::Id"
            },
            "Status":"ACTIVE"
         }
      },
      "policy":{
         "Type":"AWS::IoT::Policy",
         "Properties":{
            "PolicyDocument":"{ \"Version\": \"2012-10-17\",		 	 	  \"Statement\": [{ \"Effect\": \"Allow\", \"Action\":[\"iot:Publish\"], \"Resource\": [\"arn:aws:iot:us-east-1:123456789012:topic/foo/bar\"] }] }"
         }
      }
   }
}
```

Este modelo de exemplo declara valores para os parâmetros de provisionamento `AWS::IoT::Certificate::CommonName`, `AWS::IoT::Certificate::SerialNumber`, `AWS::IoT::Certificate::Country` e `AWS::IoT::Certificate::Id` que são extraídos do certificado e usados na seção `Resources`. Em seguida, o fluxo de trabalho de JITP usa esse modelo para executar as seguintes ações:
+ Registrar um certificado e definir seu status como PENDING\$1ACTIVE.
+ Criar um recurso de coisa.
+ Criar um recurso de política.
+ Anexar a política ao certificado.
+ Anexe o certificado ao objeto da .
+ Atualizar o status do certificado como ACTIVE.

O provisionamento do dispositivo falhará se o certificado não tiver todas as propriedades mencionadas na seção `Parameters` do `templateBody`. Por exemplo, se `AWS::IoT::Certificate::Country` estiver incluído no modelo, mas o certificado não tiver uma propriedade `Country`, o provisionamento do dispositivo falhará.

Você também pode usar CloudTrail para solucionar problemas com seu modelo JITP. Para obter informações sobre as métricas registradas na Amazon CloudWatch, consulte[Métricas de provisionamento de dispositivos](metrics_dimensions.md#provisioning-metrics). Para obter mais informações sobre modelos de provisionamento, consulte [Modelos de provisionamento](provision-template.md).

**nota**  
Durante o processo de provisionamento, o just-in-time provisionamento (JITP) chama outras operações de API do plano de controle. AWS IoT Essas chamadas podem exceder as [Cotas de controle de utilização da AWS IoT](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#throttling-limits) definidas para a conta e resultar em chamadas limitadas. Entre em contato com o [Suporte ao cliente da AWS](https://console.aws.amazon.com/support/home) para aumentar as cotas do controle de utilização, se necessário.

## Registrar CA usando o modelo de provisionamento


Para registrar uma CA usando um modelo de provisionamento completo, siga estas etapas: 

1. Salve o modelo de provisionamento e as informações do ARN da função, como no exemplo a seguir, como um arquivo JSON:

   ```
   { 
        "templateBody" : "{\r\n    \"Parameters\" : {\r\n        \"AWS::IoT::Certificate::CommonName\": {\r\n            \"Type\": \"String\"\r\n        },\r\n        \"AWS::IoT::Certificate::SerialNumber\": {\r\n            \"Type\": \"String\"\r\n        },\r\n        \"AWS::IoT::Certificate::Country\": {\r\n            \"Type\": \"String\"\r\n        },\r\n        \"AWS::IoT::Certificate::Id\": {\r\n            \"Type\": \"String\"\r\n        }\r\n    },\r\n    \"Resources\": {\r\n        \"thing\": {\r\n            \"Type\": \"AWS::IoT::Thing\",\r\n            \"Properties\": {\r\n                \"ThingName\": {\r\n                    \"Ref\": \"AWS::IoT::Certificate::CommonName\"\r\n                },\r\n                \"AttributePayload\": {\r\n                    \"version\": \"v1\",\r\n                    \"serialNumber\": {\r\n                        \"Ref\": \"AWS::IoT::Certificate::SerialNumber\"\r\n                    }\r\n                },\r\n                \"ThingTypeName\": \"lightBulb-versionA\",\r\n                \"ThingGroups\": [\r\n                    \"v1-lightbulbs\",\r\n                    {\r\n                        \"Ref\": \"AWS::IoT::Certificate::Country\"\r\n                    }\r\n                ]\r\n            },\r\n            \"OverrideSettings\": {\r\n                \"AttributePayload\": \"MERGE\",\r\n                \"ThingTypeName\": \"REPLACE\",\r\n                \"ThingGroups\": \"DO_NOTHING\"\r\n            }\r\n        },\r\n        \"certificate\": {\r\n            \"Type\": \"AWS::IoT::Certificate\",\r\n            \"Properties\": {\r\n                \"CertificateId\": {\r\n                    \"Ref\": \"AWS::IoT::Certificate::Id\"\r\n                },\r\n                \"Status\": \"ACTIVE\"\r\n            },\r\n            \"OverrideSettings\": {\r\n                \"Status\": \"DO_NOTHING\"\r\n            }\r\n        },\r\n        \"policy\": {\r\n            \"Type\": \"AWS::IoT::Policy\",\r\n            \"Properties\": {\r\n                \"PolicyDocument\": \"{ \\\"Version\\\": \\\"2012-10-17		 	 	 \\\", \\\"Statement\\\": [{ \\\"Effect\\\": \\\"Allow\\\", \\\"Action\\\":[\\\"iot:Publish\\\"], \\\"Resource\\\": [\\\"arn:aws:iot:us-east-1:123456789012:topic\/foo\/bar\\\"] }] }\"\r\n            }\r\n        }\r\n    }\r\n}",
        "roleArn" : "arn:aws:iam::123456789012:role/JITPRole"
   }
   ```

   Neste exemplo, o valor do campo `templateBody` deve ser um objeto JSON especificado como uma string de escape e pode usar somente os valores da [lista anterior](#jit-provisioning-overview). É possível usar uma variedade de ferramentas para criar a saída JSON necessária, como `json.dumps` (Python) ou `JSON.stringify` (Node). O valor do campo `roleARN` deve ser o ARN de uma função que tenha a `AWSIoTThingsRegistration` anexada a ele. Além disso, o modelo pode usar um `PolicyName` existente em vez da `PolicyDocument` em linha no exemplo. 

1. Registre um certificado CA com a operação [Register CACertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterCACertificate.html) API ou o [https://docs.aws.amazon.com//cli/latest/reference/iot/register-ca-certificate.html](https://docs.aws.amazon.com//cli/latest/reference/iot/register-ca-certificate.html)comando CLI. Você precisa especificar o diretório do modelo de provisionamento e as informações do ARN da função que você salvou na etapa anterior:

   O seguinte exemplo mostra como registrar um certificado CA no modo `DEFAULT` usando a AWS CLI:

   ```
   aws iot register-ca-certificate --ca-certificate file://your-ca-cert --verification-cert file://your-verification-cert 
                   --set-as-active --allow-auto-registration --registration-config file://your-template
   ```

   O seguinte exemplo mostra como registrar um certificado CA no modo `SNI_ONLY` usando a AWS CLI:

   ```
   aws iot register-ca-certificate --ca-certificate file://your-ca-cert --certificate-mode SNI_ONLY
                    --set-as-active --allow-auto-registration --registration-config file://your-template
   ```

   Para obter mais informações, consulte [Registrar certificados CA](https://docs.aws.amazon.com//iot/latest/developerguide/register-CA-cert.html).

1.  (Opcional) Atualize as configurações de um certificado CA usando a operação [Update CACertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateCACertificate.html) API ou o comando [https://docs.aws.amazon.com//cli/latest/reference/iot/update-ca-certificate.html](https://docs.aws.amazon.com//cli/latest/reference/iot/update-ca-certificate.html)CLI. 

   O seguinte exemplo mostra como atualizar um certificado CA usando a AWS CLI:

   ```
   aws iot update-ca-certificate --certificate-id caCertificateId
                   --new-auto-registration-status ENABLE --registration-config file://your-template
   ```

## Registrar CA usando o nome do modelo de provisionamento


Para registrar uma CA usando o nome de um modelo de provisionamento, siga estas etapas:

1. Salve o corpo do modelo de provisionamento como um arquivo JSON. Você pode encontrar um exemplo de um corpo de modelo no [corpo de modelo de exemplo](#jit-provisioning-example-templatebody).

1. Para criar um modelo de aprovisionamento, use a [CreateProvisioningTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningTemplate.html)API ou o comando CLI: [https://docs.aws.amazon.com//cli/latest/reference/iot/create-provisioning-template.html](https://docs.aws.amazon.com//cli/latest/reference/iot/create-provisioning-template.html)

   ```
   aws iot create-provisioning-template --template-name your-template-name \
           --template-body file://your-template-body.json --type JITP \
           --provisioning-role-arn arn:aws:iam::123456789012:role/test
   ```
**nota**  
Para just-in-time provisionamento (JITP), você deve especificar o tipo de modelo a ser `JITP` ao criar o modelo de provisionamento. Para obter mais informações sobre o tipo de modelo, consulte [CreateProvisioningTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningTemplate.html)a *Referência AWS da API*.

1. Para registrar a CA com o nome do modelo, use a CACertificate API de [registro](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterCACertificate.html) ou o comando da [https://docs.aws.amazon.com//cli/latest/reference/iot/register-ca-certificate.html](https://docs.aws.amazon.com//cli/latest/reference/iot/register-ca-certificate.html)CLI:

   ```
   aws iot register-ca-certificate --ca-certificate file://your-ca-cert --verification-cert file://your-verification-cert \
           --set-as-active --allow-auto-registration --registration-config templateName=your-template-name
   ```

# Registro em massa


É possível usar o comando [https://docs.aws.amazon.com/iot/latest/apireference/API_StartThingRegistrationTask.html](https://docs.aws.amazon.com/iot/latest/apireference/API_StartThingRegistrationTask.html) para registrar coisas em massa. Esse comando usa um modelo de provisionamento, um nome de bucket do S3, um nome de chave, e o ARN de uma função que permite acesso ao arquivo no bucket do S3. O arquivo no bucket do S3 contém os valores usados para substituir os parâmetros no modelo. O arquivo deve ser um JSON delimitado por nova linha. Cada linha contém todos os valores dos parâmetros para o registro de um único dispositivo. Por exemplo:

```
{"ThingName": "foo", "SerialNumber": "123", "CSR": "csr1"}
{"ThingName": "bar", "SerialNumber": "456", "CSR": "csr2"}
```

As seguintes operações de APIs relacionadas ao registro em massa podem ser úteis:
+ [ListThingRegistrationTasks](https://docs.aws.amazon.com/iot/latest/apireference/API_ListThingRegistrationTasks.html): lista as tarefas atuais de provisionamento em massa. 
+ [ DescribeThingRegistrationTask](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeThingRegistrationTask.html): fornece informações sobre uma tarefa específica de registro de itens em massa.
+ [StopThingRegistrationTask](https://docs.aws.amazon.com/iot/latest/apireference/API_StopThingRegistrationTask.html): interrompe uma tarefa de registro em massa.
+ [ListThingRegistrationTaskReports](https://docs.aws.amazon.com/iot/latest/apireference/API_ListThingRegistrationTaskReports.html): usado para verificar os resultados e as falhas de uma tarefa de registro de itens em massa.

**nota**  
Somente uma tarefa de operação de registro de coisas em massa pode ser executada de cada vez (por conta).
As operações de registro em massa chamam outras operações de API do plano de AWS IoT controle. Essas chamadas podem exceder as [Cotas de controle de utilização da AWS IoT](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#throttling-limits) na conta e causar erros de limitação. Entre em contato com o [Suporte ao AWS Cliente](https://console.aws.amazon.com/support/home) para aumentar suas cotas AWS IoT de limitação, se necessário.