an Amazon S3 compatible object storage endpoint backed by the local filesystem, authenticated on every request
S3Proxy implements the Amazon S3 API and proxies it to a local filesystem backend, turning a plain server and its data volume into an S3 compatible object store. Point the AWS CLI, boto3, s3cmd, rclone, restic or any S3 SDK at it and read and write buckets and objects exactly as you would against Amazon S3, within your own account. The gateway is fully installed and reverse proxied behind nginx with TLS, so a working endpoint is ready within minutes of launch.
cloudimg ships S3Proxy hardened and ready. The gateway binds to loopback behind an nginx TLS reverse proxy, a unique access key and secret key are generated on first boot so every request is SigV4 authenticated with no baked in credential, and bucket and object data lives on a dedicated data volume. Every image is backed by a paired deployment guide and 24/7 cloudimg support.
This is a repackaged open source software product wherein additional charges apply for cloudimg support services.
## Overview
S3Proxy is an open source Java application (Apache License 2.0) that implements the Amazon S3 API and proxies requests to a configurable storage backend. This cloudimg AMI configures the local filesystem backend so that a single EC2 instance and its dedicated EBS data volume become a fully functional S3-compatible object storage endpoint: point any S3 SDK, the AWS CLI, boto3, s3cmd, rclone, restic, or Veeam at it and read and write buckets and objects exactly as you would against Amazon S3, entirely within your own AWS account.
The gateway ships fully installed and reverse-proxied behind nginx with TLS. A working, authenticated S3 endpoint is operational within minutes of launch, with no manual package installation, no dependency troubleshooting, and no proxy configuration required.
## What Is Included
## Why This AMI Over a Manual Install
Unlike a bare deployment, this image never exposes an open, anonymous endpoint. S3Proxy can run with authorization disabled, but this appliance requires AWS Signature Version 4 on every request. A unique access key and secret key are generated on each instance's first boot, written to a root-only file (mode 0600), so requests are authenticated from the very first API call. The gateway binds only to loopback and is fronted by nginx over TLS, while bucket and object data lives on a dedicated data volume and systemd manages the service for automatic restarts and clean logging.
## Architecture
The request flow is straightforward:
1. An S3 client sends a SigV4-signed request to the instance on port 443
2. nginx terminates TLS and validates the connection
3. nginx forwards the request to S3Proxy on loopback (127.0.0.1)
4. S3Proxy authenticates the signature and reads or writes objects on the EBS data volume at /var/lib/s3proxy
This layered design means the S3 engine is never directly reachable from the network, and TLS protects data in transit.
## Security Practices
## Use Cases
## Getting Started
1. Launch the AMI and SSH in as the default login user for your OS variant.
2. Read your unique access key and secret key from /root/s3proxy-info.txt.
3. Point any S3 client at the endpoint, for example: aws s3 ls --endpoint-url https://
4. Open port 443 in your security group to the CIDR ranges that need access.
5. For production, replace the self-signed certificate with your own domain and CA-signed certificate in nginx.
For a guided setup, production TLS review, or sizing review, contact cloudimg support at support@cloudimg.co.uk or via live chat.
## About S3Proxy
S3Proxy is an open source project distributed under the Apache License 2.0.
All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.