SOAP リクエストの認証方法 - Amazon Simple Storage Service

SOAP リクエストの認証方法

注記

SOAP のサポートは HTTP 経由では廃止されましたが、HTTPS 経由では引き続き利用可能です。Amazon S3 の新機能は SOAP でサポートされていません。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 + オペレーション + タイムスタンプの連結文字で生成される 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 オブジェクトを手動で構築することによって、これを達成することができます。