AWS 缺少身份验证令牌

AWS Missing Authentication Token

我正在关注 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

知道哪里出了问题以及如何解决吗?

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

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

莫娜,

您的自定义端点响应两种协议: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 and here: http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html 尽管使用 AWS CLI 可能会更快或 AWS SDK 来执行这样的操作。

瑞安@AWS

默认情况下,示例程序会在当前目录中查找您的证书和私钥文件,但您也可以根据需要使用“-f”选项指定另一个目录。至于您在尝试从浏览器访问端点时注意到的 'Missing Authentication Token' 消息,您可以安全地忽略它。

如果您使用 "TLS mutual authentication",则需要连接端口 8443,因此在您的示例中,它将是 https://a34sxntm6at7xh.iot.us-west-2.amazonaws.com:8443/things/<thing_name>/shadow