我在JavaScript(paho-mqtt-js)中使用MQTT客户端连接到AWS IoT endpoints ,如果我使用自己的AWS凭证,我就可以连接 .
但是,如果我使用Cognito为登录用户生成的凭据,则无法执行此操作 . 我在IAM中的Cognito授权角色附加了一个“AWSIoTFullAccess”策略,所以我很困惑为什么这些凭据每次都返回403错误 .
任何有关这方面的帮助将不胜感激 .
处理联合身份时遇到类似问题 . 解决问题的一些提示:
请使用cloudwatch日志找出它非常方便的问题 .
另请查看主题名称以_CognitoIdentityCredentials结尾的cloudwatch日志
使用适当的会话令牌
使用AWS CLI并执行attach-principal-policy以手动尝试 .
请参阅此链接https://github.com/alfonsodev/aws-iot-example/blob/master/index.js以使用nodejs在本地运行以解决问题 .
请使用附加委托人政策 . 此链接http://techqa.info/programming/question/40301345/connect-to-AWS-IoT-using-web-socket-with-Cognito-authenticated-users对集成非常有帮助
希望这可以帮助!
检查您的AWS IoT政策 . 除了您附加到IAM角色的策略之外,您还需要针对Cognito身份的AWS IoT策略 . 请参阅此处的文档:
https://docs.aws.amazon.com/iot/latest/developerguide/authorization.html
2 回答
处理联合身份时遇到类似问题 . 解决问题的一些提示:
请使用cloudwatch日志找出它非常方便的问题 .
另请查看主题名称以_CognitoIdentityCredentials结尾的cloudwatch日志
使用适当的会话令牌
使用AWS CLI并执行attach-principal-policy以手动尝试 .
请参阅此链接https://github.com/alfonsodev/aws-iot-example/blob/master/index.js以使用nodejs在本地运行以解决问题 .
请使用附加委托人政策 . 此链接http://techqa.info/programming/question/40301345/connect-to-AWS-IoT-using-web-socket-with-Cognito-authenticated-users对集成非常有帮助
希望这可以帮助!
检查您的AWS IoT政策 . 除了您附加到IAM角色的策略之外,您还需要针对Cognito身份的AWS IoT策略 . 请参阅此处的文档:
https://docs.aws.amazon.com/iot/latest/developerguide/authorization.html