AWS S3
backends:
- id: aws
name: "AWS S3 (us-east-1)"
type: s3v4
endpoint: https://s3.us-east-1.amazonaws.com
region: us-east-1
access_key_env: AWS_ACCESS_KEY_ID
secret_key_env: AWS_SECRET_ACCESS_KEY
path_style: false#What works
- Everything in
Capabilities: versioning, lifecycle, bucket policy, CORS, tagging, server-side encryption. - The embedded SigV4 proxy.
#Notes
- Use
path_style: falsefor AWS — virtual-hosted addressing is the default and avoids the path-style deprecation timeline. - Set
regionto the bucket's region. Cross-region access works but pays the latency cost. - IAM policy on the access key must cover everything Stowage uses:
list / get / put / delete on objects and buckets, plus the bucket
configuration verbs (
s3:GetBucketCORS,s3:PutBucketLifecycle, etc.) for the dashboard's bucket-settings UI. - The dashboard surfaces upstream
AccessDenieddirectly; you'll see it in the audit log if a particular operation isn't covered by your IAM policy. - AWS bills egress. Cross-backend transfers via Stowage's
POST /object/copyflow stream through the proxy host, so an AWS→other-vendor transfer pays AWS egress.