使用 REST API 对请求进行身份验证 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 REST API 对请求进行身份验证

使用 REST 访问 Amazon S3 时,您必须在请求中提供以下项目,以便对请求进行身份验证:

请求元素
  • Amazon 访问密钥 ID – 每个请求必须包含用于发送请求的身份的访问密钥 ID。

  • 签名 - 每个请求必须包含一个有效的请求签名,否则系统会拒绝请求。

    将使用您的秘密访问密钥计算出请求签名,该密钥是一个共享密钥,相关知晓方只有您和 Amazon。

  • 时间戳 – 每个请求必须包含请求的创建日期和时间,并表示为 UTC 形式的字符串。

  • 日期 – 每个请求都必须包含请求的时间戳。

    根据您正在使用的 API 操作,您可以不提供时间戳,改为提供请求的过期日期和时间,或者也可以二者都提供。要确定特定操作需要的内容,请参阅该操作的身份验证主题。

下面是针对发送到 Amazon S3 的请求进行身份验证的常规步骤。此处假设您已拥有了必要的安全凭证、访问密钥 ID 和秘密访问密钥。

1

构建要发送到 Amazon 的请求。

2

使用您的秘密访问密钥计算签名。

3

向 Amazon S3 发送请求。在请求中包含您的访问密钥 ID 和签名。Amazon S3 执行下面三个步骤。

4

Amazon S3 使用访问密钥 ID 查找秘密访问密钥。

5

通过与用于计算您在请求中发送的签名相同的算法,Amazon S3 可根据请求数据和秘密访问密钥计算出签名。

6

如果由 Amazon S3 生成的签名与您在请求中发送的签名相匹配,将认为请求是真实的。如果比较签名这一操作失败,那么系统会丢弃请求,同时 Amazon S3 将返回错误响应。

详细的身份验证信息

有关 REST 身份验证的详细信息,请参阅 签署和对 REST 请求进行身份验证