本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将AWS IoT事物关联到 MQTT 客户端连接
独占事物关联是指您将 X.509 证书附加到单个 AWS IoT 事物。在这种情况下,该证书不能用于其他事物。通过确保证书仅由单个物联网事物使用,有助于防止安全漏洞。
在中AWS IoT,客户端 ID 是事物或设备连接到 AWS IoT Core MQTT 代理时的唯一标识符。如果您使用非独占关联,则多个事物可以附加到同一个证书。当存在非独占事物关联时,为保持清晰的关联并避免潜在冲突,您必须将客户端 ID 与事物名称匹配。
本主题内容
使用案例
将事物关联到连接提供以下功能。
注意
请注意,如果您的物联网事物和客户端连接具有非独占关联,您可以使用以下所有功能,但生命周期事件功能除外。要在生命周期事件消息中包含您的事物名称,您的物联网事物和客户端连接必须具有独占关联。
事物策略变量-您可以使用事物策略变量来授权设备访问 AWS IoT API 操作。这些变量允许您编写基于名称、类型和属性值等事物属性授予或拒绝权限的AWS IoT Core策略。通过使用事物策略变量,您可以应用相同的策略来控制多AWS IoT Core台设备。这使您可以简化策略管理并减少资源重复。有关更多信息,请参阅事物策略变量。
生命周期事件:您可以在生命周期事件(例如,连接、断开连接以及订阅和取消订阅)中接收事物名称。这允许处理消息中包含的事物名称,例如在规则中。有关更多信息,请参阅生命周期事件。
资源特定日志记录:您可以为事物组配置资源特定日志记录,并轻松为定义的事物组中的所有事物应用所需的日志记录配置。有关更多信息,请参阅 在 (AWS IoTCLI) 中配置特定于资源的替代。
成本分配:您可以使用自定义标签创建成本分配的计费组,并将事物添加到这些组中。有关更多信息,请参阅计费组。
如何将事物关联到连接
如果你的客户端 ID 与你在注册表中的事物名称相匹配,则在你将 X.509 证书附加到该物联网事物之后,AWS IoT Core会将客户端连接与该事物相关联。如果您的客户端 ID 与注册表中的事物名称不匹配,您可以独占地将 X.509 证书附加到该事物以建立此关联。具有此独占附件的事物称为独占事物。否则,它称为非独占事物。当证书与独占事物关联时,该证书只能与其他事物关联(如果您将其从独占事物分离)。在本节中,选择AWS 管理控制台或AWS CLI将事物与连接相关联。
使用 AWS 管理控制台 将证书独占附加到事物。
-
在AWS IoT控制台中打开AWS IoT主页
。在左侧导航栏中的安全性下,选择证书。 -
在“证书”页面上,选择要附加事物的证书。然后从页面右上角的“操作”中选择“附加到事物”。
或者,选择一个证书并导航到证书详细信息页面。选择“事物”选项卡,然后选择“附加到事物”。
-
在将证书附加到事物页面上,选中将事物关联到连接复选框。然后从事物下拉列表中选择一个事物以附加此证书。
-
选择“附加事物”。如果操作成功,您将看到一条横幅,显示“已成功将事物附加到您的证书”,并且该事物将被添加到“事物”选项卡。
使用 AWS 管理控制台 从独占事物分离证书
-
在AWS IoT控制台中打开AWS IoT主页
。在左侧导航栏中的安全性下,选择证书。 -
在证书页面上,选择一个证书并导航到证书详细信息页面。
-
在“证书详细信息”页面上,选择事物选项卡。然后选择要从中分离证书的事物。选择分离事物。
-
在分离事物窗口中,确认操作。选择分离。如果操作成功,您将看到一条横幅,显示“已成功从您的证书中分离事物”,并且该事物将不再出现在事物选项卡中。
-
要使用将证书附加到事物AWS 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"此命令不会生成任何输出。有关更多信息,请参阅 将主体附加到事物。
-
要列出与指定证书关联的事物以及附件类型,请运行
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-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 关联的主体。
-
要将证书与事物分离,请运行detach-thing-principal命令。
aws iot detach-thing-principal \ --principal "arn:aws:iot:us-east-1:123456789012:cert/2e1eb273792174ec2b9bf4e9b37e6c6c692345499506002a35159767055278e8" \ --thing-name "thing_1"此命令不会生成任何输出。有关更多信息,请参阅 将主体与事物分离。