【问题标题】:Creating things on Amazon IoT Core在 Amazon IoT Core 上创建事物
【发布时间】:2021-11-14 17:00:27
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: android amazon-web-services iot aws-iot


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 在使用 MQTT over WebSocket 时,亚马逊完全期望将 IAM 用于物联网设备(就像我的物联网设备正在做的那样)。请参阅docs.aws.amazon.com/iot/latest/developerguide/protocols.html
    • 我不确定你指的是什么。如果您指的是 Signature V4,那么这只是一个向 AWS 签署 HTTP 请求的过程。您仍然需要访问密钥和密钥来签署它们。您可以从 IAM 获取密钥对,但限制为 5000,因此 STS 可以解决您的问题。如果您永远不会拥有超过 5000 台设备,我想您可以使用 IAM。
    • 另外,也许我对 STS 不太清楚。对于 STS,您需要在后端有一个 IAM 用户来验证设备并生成临时访问密钥、秘密密钥并将它们返回到设备。这样,如果您可以控制您的设备并且可以随时撤销他们的访问权限。我希望这更清楚。
    猜你喜欢
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    相关资源
    最近更新 更多