使用 REST API 对请求进行身份验证
使用 REST 访问 Amazon S3 时,您必须在请求中提供以下项目,以便对请求进行身份验证:
请求元素
-
AWS 访问密钥 ID – 每个请求必须包含用于发送请求的身份的访问密钥 ID。
-
签名 - 每个请求必须包含一个有效的请求签名,否则系统会拒绝请求。
将使用您的秘密访问密钥计算出请求签名,该密钥是一个共享密钥,相关知晓方只有您和 AWS。
-
时间戳 – 每个请求必须包含请求的创建日期和时间,并表示为 UTC 形式的字符串。
-
日期 – 每个请求都必须包含请求的时间戳。
根据您正在使用的 API 操作,您可以不提供时间戳,改为提供请求的过期日期和时间,或者也可以二者都提供。要确定特定操作需要的内容,请参阅该操作的身份验证主题。
下面是针对发送到 Amazon S3 的请求进行身份验证的常规步骤。此处假设您已拥有了必要的安全凭证、访问密钥 ID 和秘密访问密钥。
1 |
构建要发送到 AWS 的请求。 |
2 |
使用您的秘密访问密钥计算签名。 |
3 |
向 Amazon S3 发送请求。在请求中包含您的访问密钥 ID 和签名。Amazon S3 执行下面三个步骤。 |
4 |
Amazon S3 使用访问密钥 ID 查找秘密访问密钥。 |
5 |
通过与用于计算您在请求中发送的签名相同的算法,Amazon S3 可根据请求数据和秘密访问密钥计算出签名。 |
6 |
如果由 Amazon S3 生成的签名与您在请求中发送的签名相匹配,将认为请求是真实的。如果比较签名这一操作失败,那么系统会丢弃请求,同时 Amazon S3 将返回错误响应。 |
详细的身份验证信息
有关 REST 身份验证的详细信息,请参阅 签署和对 REST 请求进行身份验证。