签名版本 4 签名流程 - AWS 一般参考

签名版本 4 签名流程

重要

AWS SDKAWS Command Line Interface(AWS CLI)和其他AWS工具会使用您在配置工具时指定的访问密钥为您签署 API 请求。当您使用这些工具时,您不必了解如何签署这些 API 请求。以下文档说明了如何签署 API 请求,但适用于您编写自己的代码来发送和签署 AWS API 请求的情况。建议使用 AWS SDK 或其他AWS工具来发送 API 请求,而不是编写自己的代码。

签名版本 4(SigV4)是将身份验证信息添加到通过 HTTP 发送的 AWS API 请求的流程。为了安全起见,大多数发给AWS的请求都必须使用访问密钥签名。访问密钥包括访问密钥 ID 和秘密访问密钥,这两个访问密钥通常称为您的安全凭证。有关如何获取您账户的凭证的详细信息,请参阅了解并获取您的AWS凭证

签名版本 4 的工作原理

  1. 创建规范请求。

  2. 使用规范请求和其他元数据来创建供签署的字符串。

  3. 从您的 AWS 秘密访问密钥派生签名密钥。然后将该签名密钥与在上一步中创建的字符串结合使用来创建签名。

  4. 将生成的签名添加到 HTTP 请求的标头中或者添加为查询字符串参数。

AWS 服务收到请求后,将执行您完成的相同步骤来计算请求中发送的签名。之后,AWS 会将计算得到的签名与您在请求中发送的签名进行比较。如果签名匹配,则处理请求。如果签名不匹配,则拒绝请求。

有关更多信息,请参阅以下资源: