對 SOAP 要求進行身分驗證 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

對 SOAP 要求進行身分驗證

注意

HTTP 上的 SOAP 支援已淘汰,但仍可透過 HTTPS 取得 SOAP。SOAP 不支援新的 Amazon S3 功能。建議您不使用 SOAP,而改用 REST API 或 AWS SDK。

每個非匿名要求都必須包含身分驗證資訊,才能建立提出要求之委託人的身分。在 SOAP 中,身分驗證資訊會放入 SOAP 要求的下列元素中:

  • 您的 AWS 存取金鑰 ID

    注意

    提出經過身分驗證的 SOAP 要求時,不支援暫時性安全登入資料。如需登入資料類型的詳細資訊,請參閱「提出要求」。

  • Timestamp: 這必須是國際標準時間 (格林威治標準時間) 時區 (例如 2009-01-01T12:00:00.000Z) 的 dateTime (請前往 http://www.w3.org/TR/xmlschema-2/#dateTime)。如果此時間戳記與 Amazon S3 伺服器上的時鐘相差超過 15 分鐘,則授權會失敗。

  • Signature: 使用 AWS 私密存取金鑰作為金鑰,連接「AmazonS3」+ OPERATION + Timestamp 的 RFC 2104 HMAC-SHA1 摘要 (請前往 http://www.ietf.org/rfc/rfc2104.txt)。例如,在下列 CreateBucket 要求範例中,簽章元素將會包含值為 "AmazonS3CreateBucket2009-01-01T12:00:00.000Z" 的 HMAC-SHA1 摘要:

例如,在下列 CreateBucket 要求範例中,簽章元素將會包含值為 "AmazonS3CreateBucket2009-01-01T12:00:00.000Z" 的 HMAC-SHA1 摘要:

範例
<CreateBucket xmlns="https://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>
注意

SOAP 請求 (已驗證與匿名) 必須透過 SSL 傳送至 Amazon S3。當您透過 HTTP 傳送 SOAP 請求時,Amazon S3 會傳回錯誤。

重要

因為對於如何去除多餘的時間精確度有不同的解釋,.NET 使用者應該注意不要將過於精確的時間戳記傳送給 Amazon S3。這可以透過手動建構只有毫秒精準度的 DateTime 物件來完成。