ストレージ転送と使用量のリクエスタ支払いバケットの使用 - Amazon Simple Storage Service

ストレージ転送と使用量のリクエスタ支払いバケットの使用

一般に、Amazon S3 のバケットのストレージおよびデータ転送にかかるコストはすべて、そのバケット所有者が負担します。ただし、バケットをリクエスタ支払いバケットに設定することはできます。リクエスタ支払いバケットの場合、リクエストおよびバケットからのデータのダウンロードにかかるコストは、所有者でなくリクエストを実行したリクエスタが支払います。データの保管にかかるコストは常にバケット所有者が支払います。

通常は、データを共有したいが、他者がデータにアクセスする際に発生する費用を負担したくない場合に、リクエスタ支払いバケットをバケットに設定します。例えば、郵便番号リスト、参照データ、地理空間情報、ウェブクロールデータといった、大規模なデータセットを利用できるようにする際にリクエスタ支払いバケットを設定することができます。

重要

バケットでリクエスタ支払いを有効化すると、そのバケットには匿名アクセスができなくなります。

リクエスタ支払いバケットに関するリクエストはすべて認証する必要があります。リクエストの認証により、Amazon S3 はリクエスタを特定し、リクエスタ支払いバケットの使用に対して課金できるようになります。

リクエスタがリクエストを送る前に AWS Identity and Access Management (IAM) ロールを引き受ける際に、ロールが属するアカウントにリクエストの料金が発生します。IAM ロールの詳細については、「IAM ユーザーガイド」の「IAM ロール」を参照してください。

バケットをリクエスタ支払いバケットとして設定した後、リクエスタはリクエストとデータダウンロードに対して課金されることを理解している旨を示す必要があります。料金を受け入れることを示すには、リクエスタが DELETE、GET、HEAD、POST、PUT リクエストの API リクエストにヘッダーとして x-amz-request-payer を含めるか、REST リクエストに RequestPayer パラメータを追加する必要があります。CLI リクエストの場合、リクエスタは --request-payer パラメータを使用できます。

例 – オブジェクトの削除時にリクエスタ支払いを使用する

次の DeleteObjectVersion API の例を使用するには、user input placeholders をユーザー自身の情報に置き換えます。

DELETE /Key+?versionId=VersionId HTTP/1.1 Host: Bucket.s3.amazonaws.com x-amz-mfa: MFA x-amz-request-payer: RequestPayer x-amz-bypass-governance-retention: BypassGovernanceRetention x-amz-expected-bucket-owner: ExpectedBucketOwner

リクエスタが RestoreObject API を使用してオブジェクトを復元する場合、x-amz-request-payer ヘッダーまたは RequestPayer パラメータがリクエストに含まれている限りリクエスタ支払いがサポートされます。ただし、リクエスタはリクエストのコストのみを支払います。バケット所有者が取り出し料金を支払います。

リクエスタ支払いバケットは、次の場合サポートしていません。

  • 匿名リクエスト

  • SOAP リクエスト

  • リクエスタ支払いバケットをエンドユーザーログのターゲットバケットとして使用する場合、あるいはその逆。ただし、ターゲットバケットがリクエスタ支払いバケットでない場合は、リクエスタ支払いバケット上でエンドユーザーのログを有効にできます。

リクエスタ支払いの課金の仕組み

成功したリクエスタ支払いリクエストに対する課金はシンプルです。リクエスタは、転送されたデータとリクエストに対して支払い、バケット所有者はデータのストレージに対して支払います。ただし以下の条件では、リクエストに対してバケット所有者が課金されます。

  • このリクエストにより AccessDenied (HTTP 403 Forbidden) エラーが返され、リクエストがバケット所有者の個別の AWS アカウントまたは AWS 組織内で開始される。

  • リクエストが SOAP リクエストの場合

リクエスタ支払いの詳細については、以下のトピックを参照してください。