

# 使用 REST API 对请求进行身份验证（Amazon 版本签名 2）
<a name="S3_Authentication2"></a>

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

**请求元素**
+ **Amazon 访问密钥 ID** – 每个请求必须包含用于发送请求的身份的访问密钥 ID。
+ **签名** - 每个请求必须包含一个有效的请求签名，否则系统会拒绝请求。

  将使用您的秘密访问密钥计算出请求签名，该密钥是一个共享密钥，相关知晓方只有您和 Amazon。
+ **时间戳** – 每个请求必须包含请求的创建日期和时间，并表示为 UTC 形式的字符串。
+ **日期** – 每个请求都必须包含请求的时间戳。

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

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

![您对向 Amazon S3 发出的请求进行身份验证而执行的一般步骤。](http://docs.amazonaws.cn/AmazonS3/latest/developerguide/images/HMACAuthProcess_You.png)



|  |  | 
| --- |--- |
| 1 | 构建要发送到 Amazon 的请求。 | 
| 2 | 使用您的秘密访问密钥计算签名。 | 
| 3 | 向 Amazon S3 发送请求。在请求中包含您的访问密钥 ID 和签名。Amazon S3 执行下面三个步骤。 | 

![Amazon 对向 Amazon S3 发出的请求进行身份验证而执行的一般步骤。](http://docs.amazonaws.cn/AmazonS3/latest/developerguide/images/HMACAuthProcess_AWS.png)



|  |  | 
| --- |--- |
| 4 | Amazon S3 使用访问密钥 ID 查找秘密访问密钥。 | 
| 5 | 通过与用于计算您在请求中发送的签名相同的算法，Amazon S3 可根据请求数据和秘密访问密钥计算出签名。 | 
| 6 | 如果由 Amazon S3 生成的签名与您在请求中发送的签名相匹配，将认为请求是真实的。如果比较签名这一操作失败，那么系统会丢弃请求，同时 Amazon S3 将返回错误响应。 | 

## 详细的身份验证信息
<a name="S3_Authentication_DetailedAuthentication"></a>

有关 REST 身份验证的详细信息，请参阅 [对 REST 请求进行签名和身份验证（Amazon 签名版本 2）](RESTAuthentication.md)。