aws如何验证使用访问密钥创建的签名?

时间:2018-04-20 14:04:38

标签: amazon-web-services security cryptography aws-cli

我搜索了很多,所有页面都在讨论如何使用aws访问密钥签署请求。但无处我发现aws如何验证这些签名。

例如,这个官方文档讨论了由aws提供的各种认证方式。它讨论了aws如何使用密钥对的公钥来验证签名。 但它没有谈论aws如何验证使用访问密钥签名的请求。 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html

我发现aws访问键非常混乱。有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

请参阅:Signing AWS API Requests

当您向AWS发送请求时,请发送:

  • 使用params等的API请求,
  • 您的访问密钥(以AK ....开头)
  • 使用您的访问密钥的相应secret key生成的签名

AWS验证签名:

  • 获取您在请求中传递的访问密钥的密钥
  • 签署您的请求并将其与您提供的签名进行比较
  • 通过在签名后5分钟内检查请求的时间戳,确保MIM不重播请求。
  

为了防止请求在传输过程中被篡改,有些是   请求元素用于计算请求的哈希(摘要),   并将生成的哈希值作为请求的一部分包含在内。   当AWS服务收到请求时,它会使用相同的信息来计算哈希值,并将其与哈希值进行匹配   在您的请求中。如果值不匹配,AWS会拒绝该请求。