Send to Amazon S3 Bucket
One of the output options for a configured channel is to send to the Amazon S3 bucket. This delivery method creates an output file and uploads it to Amazon S3.
Use the Amazon S3 receiver when file deliveries should be uploaded directly to an Amazon S3 bucket rather than downloaded manually or transferred through SFTP / HTTP. This delivery method is commonly used for automated integrations, large file transfers, and cloud-based workflows.
Creating the Configuration
To complete the configuration, follow the 'Next' prompts in the 'Output configuration' popup after selecting the desired output type and completing the required fields.
If the 'Category output template' is enabled, the standard template will be overridden.
Note: A template must be available and selected in the Default output template section in order to publish the receiver.
Connection Settings
The table below contains specific information for Amazon S3 bucket connection settings.
| Field | What to enter |
|---|---|
|
Bucket ID |
The bucket name only, for example my-company-share. Do not enter an ARN. |
|
Region |
The AWS region the bucket lives in, for example us-east-1. |
|
Access Key ID |
The access key ID of an IAM user that is permitted to write to the bucket. |
| Secret Access Key | The matching secret access key. |
| Remote Path | The key prefix inside the bucket that files are written to, for example exports/pdx/. |
The Bucket ID provided should not be an Amazon Resource Name (ARN). The Amazon Web Services Software Development Kit (AWS SDK) does not accept a bucket ARN where a bucket name is expected. Using an ARN will cause the upload request to fail before it reaches AWS. Enter only the part after the final colon. The below screenshot provides examples.
| Value entered | Result |
|---|---|
|
my-company-share |
Correct |
|
arn:aws:s3:::my-company-share |
Rejected — this is a bucket ARN |
|
aws:s3:::my-company-share |
Rejected — not a valid bucket name |
| s3://my-company-share | Rejected — not a valid bucket name |
Output Configuration Settings
-
Link expiration: sets the length of live availability for the link to the download file.
-
Asset settings
-
Asset delivery: allows you to select the method of asset delivery for the download from a dropdown.
-
Rename asset(s): allows renaming of assets following a set rule as described below.
A default setting is also available to rename assets as shown in the screenshot below.
-
Assets grouping: provides a dropdown to allow you to select how assets are grouped.
-
-
Single output file
-
Product settings: either (but not both) of the options in the screenshot below can be activated by the user.
-
Products batch size: user can choose how many products will be sent in a single submission.
Completed Form
The screenshot below is an example of a completed receiver form. Once a form has been completed, click 'Apply' to apply the selected values.
Prerequisites: Granting Stibo Systems Access to Bucket
Before the receiver can deliver files, the AWS Identity and Access Management (IAM) user or role associated with the configured credentials must be able to perform s3:PutObject on the target prefix, and the bucket policy must not deny the request.
If the bucket policy restricts access by network
Many organizations restrict bucket access with a Deny statement conditioned on source IP. In this instance, an IP allow-list on its own is not sufficient for PDX.
PDX reaches Amazon S3 by two different network paths — which one is used depends on where the bucket is located:
-
The bucket is in the same AWS region as the PDX environment: Traffic goes through an S3 gateway Virtual Private Cloud (VPC) endpoint and never leaves the AWS network. The source IP that arrives at the bucket is a private address, not a public Stibo Systems IP so an aws:SourceIp condition can never match it.
-
The bucket is in a different region: Traffic leaves through Stibo's Network Address Translation (NAT) gateway and arrives from one of our public IP addresses.
Because either path may be used, the policy must allow both — our public IP addresses and our S3 gateway VPC endpoint IDs.
Public IP addresses
All listed IP addresses should be allowed — any may be used during failover or a service outage.
50.16.149.59
34.206.196.233
44.193.104.249
3.135.21.33
3.143.162.117
3.143.198.87
S3 gateway VPC endpoint IDs
| Endpoint ID | Environment | Region |
|---|---|---|
| vpce-0469ca6d8211c4953 | PDX Production | us-east-1 |
| vpce-09822acde3eaa88b3 | PDX Production (DR) | us-east-2 |
|
vpce-0c9abccdd7e6960e5 |
PDX Pre-production | us-west-2 |
If the restriction is expressed as a Deny with a NotIpAddress condition, add the endpoint IDs alongside it so that both paths are permitted as shown in the example below:
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"50.16.149.59/32",
"34.206.196.233/32",
"44.193.104.249/32",
"3.135.21.33/32",
"3.143.162.117/32",
"3.143.198.87/32"
]
},
"StringNotEquals": {
"aws:SourceVpce": [
"vpce-0469ca6d8211c4953",
"vpce-09822acde3eaa88b3",
"vpce-0c9abccdd7e6960e5"
]
}
}
Other bucket policy conditions to check
If uploads are still denied, good practice is to check if the existing bucket policy denies s3:PutObject under any of the following conditions:
-
Encryption required: a Deny when s3:x-amz-server-side-encryption is absent, or when s3:x-amz-server-side-encryption-aws-kms-key-id is not one specific key. If a Key Management Service (KMS) key is required, the IAM user also needs kms:GenerateDataKey and kms:Encrypt on that key.
-
Access Control List (ACL) required: a Deny unless s3:x-amz-acl is bucket-owner-full-control.
-
Prefix-scoped deny: confirm the folder path configured in PDX falls inside the permitted prefixes.
Troubleshooting
Messages in the left column are generated in the submission log.
| Message on the submission log | Cause | What to do |
|---|---|---|
|
The bucket is configured as a bucket ARN. |
Bucket ID contains an ARN. |
Enter the bucket name only. |
|
The bucket name is not valid. |
Bucket ID contains a prefix such as aws:s3::: or s3://. |
Enter the bucket name only. |
|
S3 rejected the upload with AccessDenied. |
The IAM user is not permitted to write, or a Deny in the bucket policy matches the request. |
Check the bucket policy's Deny statements and their conditions — see Prerequisites: Granting Stibo Systems Access to Bucket above. |
| The S3 endpoint could not be resolved. | Wrong bucket name or wrong region | Check Bucket ID and Region. |
| The AWS access key or secret key is missing. | One of the credential fields is empty. | Re-enter both credentials. |
| The connection to S3 was interrupted. | Temporary network problem | Retry the submission. |
Note: If your AWS administrator needs to trace a specific denied request, Stibo Systems Support can provide the AWS request ID and extended request ID from our logs. These identify the exact call in your CloudTrail events.
Note: You can be notified automatically when submissions fail, rather than discovering it later. See Notifications Settings under Profile and Account Settings.
Frequently Asked Questions
| Question | Answer |
|---|---|
|
What do I enter in the Bucket ID field — the bucket name or the ARN? |
The bucket name only. An ARN is rejected before the upload is attempted. |
|
We allow-listed the Stibo Systems IP addresses but uploads are still denied. Why? |
If your bucket is in the same AWS region as the PDX environment, our traffic reaches it through an S3 gateway VPC endpoint and the source IP is not a public Stibo Systems address. Your bucket policy must also allow our S3 gateway VPC endpoint IDs. See Prerequisites: Granting Stibo Systems Access to Bucket. |
|
Which IP addresses and endpoints do we need to allow-list for S3 delivery? |
Both the six public IP addresses and the three S3 gateway VPC endpoint IDs listed in Prerequisites: Granting Stibo Systems Access to Bucket. |
| Are the Azure IP subnets published for STEP relevant to PDX submissions? | No. Those ranges belong to STEP, a different part of the platform, and do not apply to PDX channel submissions. Allow-listing them has no effect on S3 delivery. |










