签署 Amazon API 请求 - Amazon 一般参考
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

签署 Amazon API 请求

如果您使用 Amazon SDK 或 Amazon 命令行工具向 Amazon 发送 API 请求,这些工具会为您签署 API 请求。如果您不使用 Amazon SDK 或 Amazon 命令行工具发送 Amazon API 请求,则必须按照本文档所述要求签署 Amazon API 请求。

如需将 API 请求发送给 Amazon,则必须签署请求,以便 Amazon 能够识别发送者。出于安全考虑,大多数请求都必须使用 Amazon 安全凭证签署。有关更多信息,请参阅以编程方式访问

Amazon Web Service 收到经身份验证的请求时,会使用请求中包含的身份验证信息重新创建签名。如果签名匹配,则服务将处理该请求。否则,服务将拒绝该请求。

Signature Version 4 是 Amazon 签名协议。Amazon 还支持 Signature Version 4A 扩展,该扩展支持多区域 API 请求的签名。有关更多信息,请参阅 GitHub 上的 sigv4a-signing-examples 项目。

何时签署请求

编写自定义代码来将 API 请求发送给 Amazon 时,必须包含用于签署请求的代码。您可能需要编写自定义代码,原因如下:

  • 您正在使用的编程语言没有对应的 Amazon 开发工具包。

  • 您需要完全控制将请求发送给 Amazon 的方式。

为什么签署请求

签名过程通过以下方式帮助保护请求:

  • 验证请求者的身份

    请求必须由拥有有效访问密钥的人员发送。

  • 保护传输中的数据

    为了防止传输时请求被篡改,一些请求元素将用于计算请求的哈希(摘要),得到的哈希值将包括在请求中。在 Amazon Web Service 收到请求时,它将使用相同信息计算哈希,并将其与您的请求中包括的哈希值进行匹配。如果值不匹配,Amazon 将拒绝请求。

  • 防止潜在的反演攻击

    在大多数情况下,请求必须在请求中的时间戳的 5 分钟内到达 Amazon。否则,Amazon 将拒绝该请求。