Amazon Simple Storage Service
开发人员指南 (API Version 2006-03-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

对 SOAP 请求进行身份验证

注意

HTTP 上的 SOAP 支持已弃用,但是仍可在 HTTPS 上使用。对于 SOAP 将不支持新 Amazon S3 功能。我们建议您使用 REST API 或 AWS 开发工具包。

所有非匿名的请求都必须包含身份验证信息,以便确立创建请求的委托人的身份。在 SOAP 中,身份验证信息放置在 SOAP 请求的以下元素中:

  • 您的 AWS 访问密钥 ID

    注意

    创建经身份验证的 SOAP 请求时,不支持临时的安全凭证。有关凭证类型的更多信息,请参阅 创建请求

  • Timestamp: 它必须采用协调世界时 (Greenwich Mean Time) 时区的日期时间 (转到 http://www.w3.org/TR/xmlschema-2/#dateTime),例如 2009-01-01T12:00:00.000Z。如果此时戳超过了 Amazon S3 服务器上的时间 15 分钟,授权将失败。

  • Signature:“AmazonS3” + OPERATION + Timestamp 串联的 RFC 2104 HMAC-SHA1 摘要 (参阅 http://www.ietf.org/rfc/rfc2104.txt),该摘要将您的 AWS 秘密访问密钥用作密钥。例如,在下面的 CreateBucket 示例请求中,签名元素将包含“AmazonS3CreateBucket2009-01-01T12:00:00.000Z”值的 HMAC-SHA1 摘要:

例如,在下面的 CreateBucket 示例请求中,签名元素将包含“AmazonS3CreateBucket2009-01-01T12:00:00.000Z”值的 HMAC-SHA1 摘要:

Copy
<CreateBucket xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <Bucket>quotes</Bucket> <Acl>private</Acl> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2009-01-01T12:00:00.000Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </CreateBucket>

注意

必须使用 SSL 将经身份验证的和匿名的 SOAP 请求发送到 Amazon S3。若您通过 HTTP 发送 SOAP 请求,Amazon S3 将返回错误。

重要

由于对如何丢弃额外的时间精度存在不同的解释,.NET 用户应注意不要使用过于具体的时戳来发送 Amazon S3。可以通过手动构建只有毫秒精度的 DateTime 对象完成此操作。