在 Amazon IoT Core 上创建事物

Creating things on Amazon IoT Core

我构建了几个用于家庭自动化的测试 IoT 硬件设备,我想用我也编写的 Android 应用程序来控制它们。 该应用程序将由多人使用。

我的计划是使用 Amazon IoT Core 让应用程序向 IoT 设备发送 MQTT 命令。

由于我的硬件设备不是很强大(ESP8266 架构),我将通过签名版本 4 (SigV4) 方案进行身份验证。当硬件设备的功能不足以通过标准 privatekey/certificate 方法进行身份验证时,此身份验证方案很有用;它需要将一对 key/secret IAM 凭据硬编码到设备固件中(而不是证书和私钥)。

然后我在 IoT Core 控制台中创建了一个测试“东西”,我可以成功地将命令从应用程序发送到设备(并从设备接收数据并将它们显示在应用程序上)。

我的问题是,我是否需要创建与 IoT 设备一样多的“东西”?由于每台设备都有自己的 IAM 凭据,我可以只为所有物联网设备使用一个共享的“东西”吗?

我在网上找不到任何最佳实践,甚至在官方文档中也找不到。

简短的回答是,不要去那里。 事物是 AWS 中的逻辑实体。 使用很多东西的原因是您可以:

  1. 将他们分组
  2. 为每个人创建一个证书(带有策略)
  3. 使用影子管理事物状态
  4. 搜索它们

虽然您可以按照您所说的去做,但使用 IAM 并不是 AWS 的初衷。 IAM 应该供人类使用。你可以使用强名称和密码,但你发现它很难管理,你很快就点击了 5000 policies limit。 您可以为您的所有设备提供相同的用户名和密码,但是您如何在需要时撤销一个用户名和密码。

我不是硬件专家,但如果你真的不能使用证书,那么你真的不需要东西,但一定要看看 AWS STS,它可以让你为你的设备创建临时凭证. 您必须以某种方式(不使用 AWS)管理登录过程,然后为每个设备生成访问密钥和秘密密钥。