Using Requester Pays buckets for storage transfers and usage
In general, bucket owners pay for all Amazon S3 storage and data transfer costs that are associated with their bucket. However, you can configure a bucket to be a Requester Pays bucket. With Requester Pays buckets, the requester instead of the bucket owner pays the cost of the request and the data download from the bucket. The bucket owner always pays the cost of storing data.
Typically, you configure buckets to be Requester Pays buckets when you want to share data but not incur charges associated with others accessing the data. For example, you might use Requester Pays buckets when making available large datasets, such as zip code directories, reference data, geospatial information, or web crawling data.
Important
If you enable Requester Pays on a bucket, anonymous access to that bucket is not allowed.
You must authenticate all requests involving Requester Pays buckets. The request authentication enables Amazon S3 to identify and charge the requester for their use of the Requester Pays bucket.
When the requester assumes an Amazon Identity and Access Management (IAM) role before making their request, the account to which the role belongs is charged for the request. For more information about IAM roles, see IAM roles in the IAM User Guide.
After you configure a bucket to be a Requester Pays bucket, requesters must include x-amz-request-payer
in their API request header, for DELETE, GET, HEAD, POST, and PUT requests, or as a parameter in a REST request to show that they understand that they will be charged for the request and the data download.
Requester Pays buckets do not support the following:
-
Anonymous requests
-
SOAP requests
-
Using a Requester Pays bucket as the target bucket for end-user logging, or vice versa. However, you can turn on end-user logging on a Requester Pays bucket where the target bucket is not a Requester Pays bucket.
How Requester Pays charges work
The charge for successful Requester Pays requests is straightforward: The requester pays for the data transfer and the request, and the bucket owner pays for the data storage. However, the bucket owner is charged for the request under the following conditions:
-
The requester doesn't include the parameter
x-amz-request-payer
in the header (DELETE, GET, HEAD, POST, and PUT) or as a parameter (REST) in the request (HTTP code 403). -
Request authentication fails (HTTP code 403).
-
The request is anonymous (HTTP code 403).
-
The request is a SOAP request.
For more information about Requester Pays, see the following topics.