1

我正在尝试在 AWS IoT 和我的 React JS APP 之间建立连接。

我遵循了本教程(https://medium.com/serverlessguru/serverless-real-time-reactjs-app-aws-iot-mqtt-17d023954045),我不清楚如何将 Cognito Identity ID 附加到AWS 物联网政策。

在我所有的调查中,我发现这个过程必须通过命令行来完成。

在上面的文章中,这些过程是通过以下命令行完成的:

• 请注意,必须在此命令中考虑“identity_pool_id”。

在此处输入图像描述

在 aws 文档 ( https://aws-amplify.github.io/docs/js/pubsub ) 中,它说在命令行中写入“identity_id”:

在此处输入图像描述

当我在命令行中使用“identity_pool_id”并尝试从 AWS IoT 发布消息时,出现以下错误:

在此处输入图像描述

当我在命令行中使用“identity_id”时,我可以成功地执行 AWS IoT 和前端之间的通信:

在此处输入图像描述

问题是“identity_id”是每个用户的不同代码。考虑到我的应用程序中有很多用户,我不知道如何执行此任务。

• 我在考虑“identity_id”而不是“identity_pool_id”的过程是否正确?

• 如果是,我如何在每次有新用户登录我的应用程序时自动将Cognito ID 附加到AWS IoT 策略?

• 在AWS IoT 策略中附加数千个Cognito 证书有什么问题吗?

4

1 回答 1

0

以下答案按时间顺序对应于 3 个问题。

  1. 您只能将 identity_id(用户)附加到 IoT 策略。另外,我可以看到您使用了现在已弃用的“attach-principal-policy”API,因此请使用AttachPolicy API
  2. 我不确定这里,我仍然建议在 Cognito 的确认后触发器上评估和验证它
  3. 绝对正确,您可以将 IoT 策略附加到无数证书上;从技术上讲,它被称为简化权限管理

对于#3,来自 AWS 的相关片段(参考 - https://aws.amazon.com/iot-core/faqs/ where find Q. What is Simplified Permission Management?)

“您可以为多个设备共享一个通用策略。通用策略可以在同一类别的设备之间共享,而不是为每个设备创建唯一的策略。例如,将“序列号”作为变量引用的策略,可以附加到所有相同型号的设备上。当相同序列号的设备连接时,策略变量将自动替换为它们的序列号。

于 2020-07-03T11:51:13.293 回答