

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 设备预调配
<a name="iot-provision"></a>

AWS 提供了几种不同的方法来配置设备并在其上安装唯一的客户端证书。本部分介绍各种方式，以及如何选择适合您的物联网解决方案的最佳方法。这些选项在标题为[在 AWS IoT Core中使用 X.509 证书进行设备制造和预调配](https://docs.aws.amazon.com/whitepapers/latest/device-manufacturing-provisioning/device-manufacturing-provisioning.html)的白皮书中进行了详细介绍。

**选择最适合您情况的选项**
+ 

**您可以在物联网设备上安装证书，然后再予交付**  
如果能够在物联网设备交付给最终用户使用之前将其安全地安装在物联网设备上，则需要使用[*just-in-time*配置 (JITP)](jit-provisioning.md) 或[*just-in-time*注册 (JITR](auto-register-device-cert.md))。

  使用 JITP 和 JITR，用于签署设备证书的证书颁发机构 (CA) 在设备首次连接 AWS IoT 时注册 AWS IoT 并被识别。设备将在首次连接时使用其配置模板的详细信息进行配置。 AWS IoT 

  有关单件事物、JITP、JITR 和具有唯一证书的设备批量预调配的详细信息，请参阅 [预调配具有设备证书的设备](provision-w-cert.md)。
+ 

**终端用户或安装人员可以使用应用程序在其物联网设备上安装证书**  
如果您无法在物联网设备上安全地安装唯一的客户端证书以供终端用户使用，但终端用户或安装程序可以使用应用程序注册设备并安装唯一设备证书，则需要执行[通过信任用户预调配](provision-wo-cert.md#trusted-user)的过程。

  使用信任用户（如终端用户或具有已知账户的安装程序）可以简化设备制造过程。设备没有唯一的客户端证书，而是临时证书，仅允许设备连接 5 分钟。 AWS IoT 在这 5 分钟的窗口中，信任用户将获得具有更长寿命的唯一客户端证书，并将其安装在设备上。申请证书的寿命有限，因此能够最大限度地减少证书受损的风险。

  有关更多信息，请参阅 [由可信用户预调配](provision-wo-cert.md#trusted-user)。
+ 

**终端用户无法使用应用程序在其物联网设备上安装证书**  
如果上述两个选项都不适用于您的物联网解决方案，则可选择[通过申请预调配](provision-wo-cert.md#claim-based)流程。通过此流程，您的物联网设备将拥有由实例集中其它设备共享的申请证书。设备首次使用声明证书连接时，使用其配置模板 AWS IoT 注册该设备，并向设备颁发其唯一的客户端证书以供后续访问 AWS IoT。

   此选项允许在设备连接时自动配置设备 AWS IoT，但如果索赔证书泄露，则可能会带来更大的风险。如果申请证书受损，您可以停用该证书。停用申请证书可防止具有该申请证书的所有设备在将来不会被注册。但是，停用申请证书不会阻止已预调配的设备。

  有关更多信息，请参阅 [通过申请进行预调配](provision-wo-cert.md#claim-based)。

## 在中配置设备 AWS IoT
<a name="provisioning-in-iot"></a>

使用配置设备时 AWS IoT，必须创建资源，这样您的设备 AWS IoT 才能安全地通信。您可以创建其它资源来帮助管理设备实例集。在预调配过程中可以创建以下资源：
+ IoT 事物。

  物联网事物是 AWS IoT 设备注册表中的条目。每个事物都有一个唯一的名称和一组属性，并与物理设备相关联。事物可以使用事物类型来定义，或者分组为事物组。有关更多信息，请参阅 [使用管理设备 AWS IoT](iot-thing-management.md)。

   虽然创建事物并非必需，但这使您能够按事物类型、事物组和事物属性来搜索设备，以更有效地管理设备实例集。有关更多信息，请参阅 [机群索引](iot-indexing.md)。
**注意**  
要使对事物的连接状态数据编制索引，请预调配事物并对其进行配置，以便事物名称与连接请求中使用的客户端 ID 匹配。
+ X.509 证书。

  设备使用 X.509 证书与执行相互身份验证。 AWS IoT您可以注册现有证书，也可以为您 AWS IoT 生成和注册新证书。通过将证书附加到表示设备的事物，您可以将证书与设备关联。您还必须将证书和关联的私有密钥复制到设备上。设备在连接时会出示证书 AWS IoT。有关更多信息，请参阅 [身份验证](authentication.md)。
+ IoT 策略。

  IoT 策略确定设备可在 AWS IoT中执行的操作。IoT 策略附加到设备证书。当设备向其提供证书时 AWS IoT，它将被授予策略中指定的权限。有关更多信息，请参阅 [Authorization](iot-authorization.md)。每个设备都需要一个证书来与 AWS IoT通信。

AWS IoT 支持使用配置模板自动配置队列。配置模板描述了配置设备 AWS IoT 所需的资源。模板包含变量，使您能够使用一个模板来预调配多个设备。在您预调配设备时，您可以使用字典或*映射* 为设备特定的变量指定值。要预调配其它设备，请在字典中指定新值。

无论设备是否具有唯一的证书（及其关联的私有密钥），您都可以使用自动预调配。

## 舰队配置 APIs
<a name="provisioning-apis"></a>

舰队配置中 APIs 使用了以下几种类型：
+ 这些控制面板函数可创建和管理实例集预调配模板，并配置可信用户策略。
  + [CreateProvisioningTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningTemplate.html)
  + [ CreateProvisioningTemplateVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningTemplateVersion.html)
  + [DeleteProvisioningTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteProvisioningTemplate.html)
  + [DeleteProvisioningTemplateVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteProvisioningTemplateVersion.html)
  + [DescribeProvisioningTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeProvisioningTemplate.html)
  + [DescribeProvisioningTemplateVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeProvisioningTemplateVersion.html)
  + [ListProvisioningTemplates](https://docs.aws.amazon.com/iot/latest/apireference/API_ListProvisioningTemplates.html)
  + [ListProvisioningTemplateVersions](https://docs.aws.amazon.com/iot/latest/apireference/API_ListProvisioningTemplateVersions.html)
  + [UpdateProvisioningTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateProvisioningTemplate.html)
+ 可信用户可以使用此控制面板函数生成临时信息载入申请。此临时申请在 Wi-Fi 配置或类似方法期间传递给设备。
  + [CreateProvisioningClaim](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningClaim.html)
+ 预调配过程中设备使用的 MQTT API，其中包含嵌入设备中的预调配申请证书，或由可信用户传递到其中。
  + [CreateCertificateFromCsr](fleet-provision-api.md#create-cert-csr)
  + [CreateKeysAndCertificate](fleet-provision-api.md#create-keys-cert)
  + [RegisterThing](fleet-provision-api.md#register-thing)