【问题标题】:AWS Signature v4 for HTTP request to AWS IoT适用于对 AWS IoT 的 HTTP 请求的 AWS Signature v4
【发布时间】:2019-09-03 19:47:47
【问题描述】:

我有一个与 AWS 相关的 IoT 项目。在我的项目中,我的设备会将原始数据传输到云端,然后云端将以 JSON 格式解密的信息发送到 AWS IoT。云支持使用 REST API 进行上行链路/下行链路的 HTTP 协议,因此我认为它将与 AWS IoT 作为 [链接] 一起使用:https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html#http

我想使用 AWS Sig v4 发送 HTTP 请求,身份验证如下:

AWS4-HMAC-SHA256 Credential={1}/{2}/{3}/{4}/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={5}

但是,我不知道如何生成签名 {5}。我无法使用脚本生成,因为我的云不支持运行脚本。它只有一些标题和值框,我可以在其中留下授权等(请参阅此处的屏幕截图https://imgur.com/RI815EZ) 有什么建议吗? 提前致谢,

【问题讨论】:

    标签: amazon-web-services post http-headers postman aws-iot


    【解决方案1】:

    通过HTTP 访问 AWS IoT 消息代理不使用 AWS Sig v4 进行身份验证。相反,它使用双向 TLS 身份验证,这需要为消息代理的身份验证配置证书和密钥。

    假设您的非 AWS 云提供商不支持双向 TLS 身份验证(或 MQTT over websockets 的替代方案),那么您需要添加一个将 JSON 发送到 AWS IoT 的间接层。

    执行此操作的一种方法是在 AWS 中实现一个 Lambda,它获取您的 JSON 并将其发送到 AWS IoT 代理。 Lambda 将负责使用 AWS IoT 进行身份验证。 AWS 开发工具包通常会为您处理此身份验证。

    Lambda 需要实施您的非 AWS 云提供商支持的身份验证(例如,它可以使用基本身份验证)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 2015-04-08
      • 1970-01-01
      • 2016-08-31
      相关资源
      最近更新 更多