メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

SOAP リクエストの認証方法

注記

SOAP のサポートは HTTP 経由では廃止されましたが、HTTPS 経由では引き続き利用可能です。SOAP 用に Amazon S3 の新機能をサポートする予定はありません。REST API か AWS SDK を使用することをお勧めします。

リクエスト元となるプリンシパルのアイデンティティを確立するには、すべての非匿名リクエストは認証情報を含んでいる必要があります。SOAP では、認証情報は SOAP リクエストの以下の要素に置かれています。

  • AWS アクセスキー ID

    注記

    認証済みの SOAP リクエストを行う場合、一時セキュリティ証明書はサポートされません。証明書の種類の詳細については、リクエストの実行 を参照してください。

  • Timestamp: これは、など、協定世界時(グリニッジ標準時)タイムゾーンの dateTime(http://www.w3.org/TR/xmlschema-2/#dateTime2009-01-01T12:00:00.000Z を参照)である必要があります。このタイムスタンプが Amazon S3 サーバーの時刻と 16 分以上の誤差がある場合、認可は失敗します。

  • Signature: AWS 秘密アクセスキーをキーとして使用し、AmazonS3 + OPERATION + タイムスタンプの連結文字で生成される RFC 2104 MAC-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 ダイジェストが含まれています。

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>

注記

SOAP リクエストは、認証済みの場合も匿名の場合も、SSL を使用して Amazon S3 に送信する必要があります。HTTP を介して SOAP リクエストを送信すると、Amazon S3 によりエラーが返されます。

重要

特別な時間精度をどの程度割愛するかについてはさまざまな解釈が存在するために、.NET ユーザーは過度に詳細なタイムスタンプを Amazon S3 へ送信しないよう気をつけるべきです。ミリ秒での精度で DateTime オブジェクトを手動で構築することによって、これを達成することができます。