将Amazon IoT事物关联到 MQTT 客户端连接 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将Amazon IoT事物关联到 MQTT 客户端连接

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

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

使用案例

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

注意

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

事物策略变量-您可以使用事物策略变量来授权设备访问 Amazon IoT API 操作。这些变量允许您编写基于名称、类型和属性值等事物属性授予或拒绝权限的Amazon IoT Core策略。通过使用事物策略变量,您可以应用相同的策略来控制多Amazon IoT Core台设备。这使您可以简化策略管理并减少资源重复。有关更多信息,请参阅事物策略变量

生命周期事件:您可以在生命周期事件(例如,连接、断开连接以及订阅和取消订阅)中接收事物名称。这允许处理消息中包含的事物名称,例如在规则中。有关更多信息,请参阅生命周期事件

资源特定日志记录:您可以为事物组配置资源特定日志记录,并轻松为定义的事物组中的所有事物应用所需的日志记录配置。有关更多信息,请参阅 在 (Amazon IoTCLI) 中配置特定于资源的替代

成本分配:您可以使用自定义标签创建成本分配的计费组,并将事物添加到这些组中。有关更多信息,请参阅计费组

如何将事物关联到连接

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

使用 Amazon Web Services 管理控制台 将证书独占附加到事物。
  1. 在Amazon IoT控制台中打开Amazon IoT主页。在左侧导航栏中的安全性下,选择证书

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

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

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

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

使用 Amazon Web Services 管理控制台 从独占事物分离证书
  1. 在Amazon IoT控制台中打开Amazon IoT主页。在左侧导航栏中的安全性下,选择证书

  2. 证书页面上,选择一个证书并导航到证书详细信息页面。

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

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

  1. 要使用将证书附加到事物Amazon CLI,请运行attach-thing-principal命令。要指定独占 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"

    此命令不会生成任何输出。有关更多信息,请参阅 将主体附加到事物

  2. 要列出与指定证书关联的事物以及附件类型,请运行 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 关联的事物

  3. 要列出与指定事物关联的主体以及附件类型,请运行 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 关联的主体

  4. 要将证书与事物分离,请运行detach-thing-principal命令。

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

    此命令不会生成任何输出。有关更多信息,请参阅 将主体与事物分离