rest - AWS 缺少身份验证 token

标签 rest authentication amazon-web-services aws-cli aws-iot

我正在关注this tutorial用于使用 Node.js SDK 将 Raspberry Pi 连接到 AWS IoT。我在 vim ~/.aws/credentials

中看到以下内容
[default]
aws_access_key_id = SOMETHING
aws_secret_access_key = SOMETHINGELSE

当我输入命令 aws iot describe-endpoint 时,我得到以下响应:

{
    "endpointAddress": "A34SXNTM6AT7XH.iot.us-west-2.amazonaws.com"
}

但是,当我浏览到该 URL 时:https://a34sxntm6at7xh.iot.us-west-2.amazonaws.com/ 我收到以下错误:

Missing Authentication Token

enter image description here

知道可能出了什么问题以及如何解决吗?

enter image description here

enter image description here

这是 ~/certs 文件夹中的文件:

pi@raspberrypi:~/certs $ ls
certificate.pem.crt  private.pem.key  public.pem.key  root-CA.pem

最佳答案

莫娜,

您的自定义端点响应两种协议(protocol):MQTT 和 HTTPS。但是,它不提供任何 Web 内容,因此不能在浏览器中作为站点 URL 运行。您从 aws iot describe-endpoint 获得的“endpointAddress”将插入您在链接的 Raspberry Pi 示例中使用的 Node.js 设备 SDK(没有 https://)。

您还可以通过使用 AWS 签名版本 4 签署请求,使用 HTTPS 版本的终端节点与设备影子进行交互。更多信息请参见:http://docs.aws.amazon.com/iot/latest/developerguide/thing-shadow-rest-api.html在这里:http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html不过,通过使用 AWS CLI 或 AWS SDK 执行此类操作,您可能会更快。

瑞安@AWS

关于rest - AWS 缺少身份验证 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35833160/

相关文章:

rest - 当我尝试在构建中包含 neo4j-rest-graphdb 时,我的 Maven 构建失败

rest - 使用Teamcity REST API获取构建日志

java - 将现有 REST API 部署到用 Java 编写的 AWS lambda

php - Laravel 5 身份验证文件重复

amazon-web-services - 在 Cloudformation Beanstalk 脚本中将子网添加到 ELB 和子网值

javascript - AWS Elastic Beanstalk - 如何使用 npm 和 webpack 构建捆绑 JS

rest - 如何在 Backbone.js 中使用 Haskell Snap

java - 如何在错误页面上显示 JAAS LoginException

php - 控制试用订阅的访问

amazon-web-services - 运行 AWS 命令​​时出现无效语法错误