

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

# 将 AWS IoT 事物关联到 MQTT 客户端连接
<a name="exclusive-thing"></a>

独占事物关联是指您将 X.509 证书附加到单个 AWS IoT 事物。在这种情况下，该证书不能用于其他事物。通过确保证书仅由单个物联网事物使用，有助于防止安全漏洞。

在中 AWS IoT，客户端 ID 是事物或设备连接到 AWS IoT Core MQTT 代理时的唯一标识符。如果您使用非独占关联，则多个事物可以附加到同一个证书。当存在非独占事物关联时，为保持清晰的关联并避免潜在冲突，您必须将客户端 ID 与事物名称匹配。

**Topics**
+ [使用案例](#exclusive-thing-benefits)
+ [如何将事物关联到连接](#exclusive-thing-how-to)

## 使用案例
<a name="exclusive-thing-benefits"></a>

将事物关联到连接提供以下功能。

**注意**  
请注意，如果您的物联网事物和客户端连接具有非独占关联，您可以使用以下所有功能，但生命周期事件功能除外。要在生命周期事件消息中包含您的事物名称，您的物联网事物和客户端连接必须具有独占关联。

**事物策略变量**-您可以使用事物策略变量来授权设备访问 AWS IoT API 操作。这些变量允许您编写基于名称、类型和属性值等事物属性授予或拒绝权限的 AWS IoT Core 策略。通过使用事物策略变量，您可以应用相同的策略来控制多 AWS IoT Core 台设备。这使您可以简化策略管理并减少资源重复。有关更多信息，请参阅[事物策略变量](https://docs.aws.amazon.com//iot/latest/developerguide/thing-policy-variables.html)。

**生命周期事件**：您可以在生命周期事件（例如，连接、断开连接以及订阅和取消订阅）中接收事物名称。这允许处理消息中包含的事物名称，例如在规则中。有关更多信息，请参阅[生命周期事件](https://docs.aws.amazon.com//iot/latest/developerguide/life-cycle-events.html)。

**资源特定日志记录**：您可以为事物组配置资源特定日志记录，并轻松为定义的事物组中的所有事物应用所需的日志记录配置。有关更多信息，请参阅 [在 ( AWS IoT CLI) 中配置特定于资源的替代](configure-logging.md#fine-logging-cli)。

**成本分配**：您可以使用自定义标签创建成本分配的计费组，并将事物添加到这些组中。有关更多信息，请参阅[计费组](https://docs.aws.amazon.com//iot/latest/developerguide/tagging-iot-billing-groups.html)。

## 如何将事物关联到连接
<a name="exclusive-thing-how-to"></a>

如果你的客户端 ID 与你在注册表中的事物名称相匹配，则在你将 X.509 证书附加到该物联网事物之后， AWS IoT Core 会将客户端连接与该事物相关联。如果您的客户端 ID 与注册表中的事物名称不匹配，您可以独占地将 X.509 证书附加到该事物以建立此关联。具有此独占附件的事物称为独占事物。否则，它称为非独占事物。当证书与独占事物关联时，该证书只能与其他事物关联（如果您将其从独占事物分离）。在本节中，选择 AWS 管理控制台 或 AWS CLI 将事物与连接相关联。

### AWS 管理控制台
<a name="attach-thing-principal-console"></a>

**使用 AWS 管理控制台将证书独占附加到事物。**

1. 在 AWS IoT 控制台中打开[AWS IoT 主页](https://console.aws.amazon.com//iot/home#/home)。在左侧导航栏中的**安全性**下，选择**证书**。

1. 在“**证书**”页面上，选择要附加事物的证书。然后从页面右上角的“**操作**”中选择“**附加到事物**”。

   或者，选择一个证书并导航到证书详细信息页面。选择“**事物**”选项卡，然后选择“**附加到事物**”。

1. 在**将证书附加到事物**页面上，选中**将事物关联到连接**复选框。然后从**事物**下拉列表中选择一个事物以附加此证书。

1. 选择“**附加事物**”。如果操作成功，您将看到一条横幅，显示“已成功将事物附加到您的证书”，并且该事物将被添加到“**事物**”选项卡。

**要将证书与专有事物分离，请使用 AWS 管理控制台**

1. 在 AWS IoT 控制台中打开[AWS IoT 主页](https://console.aws.amazon.com//iot/home#/home)。在左侧导航栏中的**安全性**下，选择**证书**。

1. 在**证书**页面上，选择一个证书并导航到证书详细信息页面。

1. 在“证书详细信息”页面上，选择**事物**选项卡。然后选择要从中分离证书的事物。选择**分离事物**。

1. 在**分离事物**窗口中，确认操作。选择**分离**。如果操作成功，您将看到一条横幅，显示“已成功从您的证书中分离事物”，并且该事物将不再出现在**事物**选项卡中。

### AWS CLI
<a name="attach-thing-principal-cli"></a>

1. 要使用将证书附加到事物 AWS CLI，请运行[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)命令。要指定独占 certificate-to-thing附件，必须在该`--thing-principal-type`字段`EXCLUSIVE_THING`中指定。示例命令如下。

   ```
   aws iot attach-thing-principal \
       --thing-name "thing_1" \
       --principal "arn:aws:iot:us-east-1:123456789012:cert/2e1eb273792174ec2b9bf4e9b37e6c6c692345499506002a35159767055278e8" \
       --thing-principal-type "EXCLUSIVE_THING"
   ```

   此命令不会生成任何输出。有关更多信息，请参阅 [将主体附加到事物](attach-thing-principal.md)。

1. 要列出与指定证书关联的事物以及附件类型，请运行 `list-principal-things-v2` 命令。附件类型指的是证书如何附加到事物。示例命令如下。

   ```
   $ aws iot list-principal-things-v2 \
       --principal "arn:aws:iot:us-east-1:123456789012:cert/2e1eb273792174ec2b9bf4e9b37e6c6c692345499506002a35159767055278e8"
   ```

   输出类似于以下内容：

   ```
   {
       "PrincipalThingObjects": [
           {
               "thingPrincipalType": "EXCLUSIVE_THING",
               "thing": "arn:aws:iot:us-east-1:123456789012:thing/thing_1"
           }
       ]
   }
   ```

   有关更多信息，请参阅 [列出与主体 V2 关联的事物](list-principal-things-v2.md)。

1. 要列出与指定事物关联的主体以及附件类型，请运行 `list-thing-principals-v2` 命令。附件类型指的是证书如何附加到事物。示例命令如下。

   ```
   $ aws iot list-thing-principals-v2 \
       --thing-name "thing_1"
   ```

   输出类似于以下内容：

   ```
   {
       "ThingPrincipalObjects": [
           {
               "thingPrincipalType": "EXCLUSIVE_THING",
               "principal": "arn:aws:iot:us-east-1:123456789012:cert/2e1eb273792174ec2b9bf4e9b37e6c6c692345499506002a35159767055278e8"
           }
       ]
   }
   ```

   有关更多信息，请参阅 [列出与事物 V2 关联的主体](list-thing-principals-v2.md)。

1. 要将证书与事物分离，请运行[detach-thing-principal](https://docs.aws.amazon.com/cli/latest/reference/iot/detach-thing-principal.html)命令。

   ```
   aws iot detach-thing-principal \
       --principal "arn:aws:iot:us-east-1:123456789012:cert/2e1eb273792174ec2b9bf4e9b37e6c6c692345499506002a35159767055278e8" \
       --thing-name "thing_1"
   ```

   此命令不会生成任何输出。有关更多信息，请参阅 [将主体与事物分离](detach-thing-principal.md)。