Built so security teams sign off.
S3 Viewer is designed to be the kind of tool that doesn't add new attack surface. Credentials are encrypted in your browser before they reach us and decrypted only to run the operation you asked for. Uploads stream through our server into your bucket without being stored; downloads go straight from your bucket to the browser. No per-person IAM users to rotate at off-boarding. MIT-licensed and self-hostable inside your own VPC.
- Credentials encrypted in your browser — decrypted only in memory, to sign
- Object bytes are never stored — uploads stream through, downloads go bucket to browser
- MIT-licensed and self-hostable inside your VPC
Why teams pick S3 Viewer
A tool you can hand to your security review.
Client-encrypted credentials
Access keys are encrypted in your browser before they are sent — AES-256-GCM with the key wrapped using RSA-OAEP (SHA-256). Decrypted in memory only to run the operation you asked for, then discarded. They never come back to the browser, never appear in logs, never return in API responses.
Object bytes are never stored
Uploads stream through our API into your bucket in memory and are discarded as they go — no disk, no cache, no object database — which is why your bucket needs no CORS rule or other setting. Downloads and previews run bucket-to-browser over 15-minute presigned URLs and never touch us at all.
No IAM users to rotate
Members aren't IAM users — they sign in to S3 Viewer and their role is checked before any request is signed with the server's single credential. Off-boarding is removing them. Nothing permanent for attackers to lift, nothing for you to forget about.
Remove without key rotation
Removing a member cuts their access on the next request. No AWS keys to cycle, no policies to edit, no other teammates affected, no applications broken.
Self-host on your VPC
MIT-licensed. Self-host with PostgreSQL, your own RSA key pair, and HTTPS — credentials never have to leave your network.
Open and auditable
The full source is on GitHub. Read the encryption code, the request signing path, and the role checks for yourself before you trust it.
How it works
Three steps to your bucket.
No agents to install, no infrastructure to manage. Paste credentials and you're browsing.
- 01
Connect with least-privilege keys
Use an IAM policy scoped to the buckets and operations you actually need — typically s3:ListBucket, s3:GetObject, s3:PutObject, and s3:DeleteObject on specific bucket ARNs. If your token can't call ListBuckets, name the buckets it may reach when you add the server.
- 02
Invite the team — no IAM users to mint
Each member gets their own login and a role — Owner, Admin, Editor or Viewer — with a per-bucket override where you need one. Off-boarding is removing them from the members dialog; you don't rotate any AWS keys because they never had any.
- 03
Self-host if compliance demands it
Drop the open-source build inside your VPC. Credentials, sessions, and request signing all stay on your infrastructure — self-hosted, there is no third party in the request path at all.
FAQ
Common questions.
Direct answers we wish we'd had when picking a viewer.
Where are my AWS credentials stored?
Do you store the contents of my S3 objects?
How is this safer than minting IAM users for every teammate?
Can I run S3 Viewer entirely inside my own infrastructure?
How do I off-board someone who's leaving?
What IAM policy should I use?
Is the source code open?
Related guides
Step-by-step how-tos.
Granular permissions
The IAM s3:prefix Condition that everyone misses, plus when workspace roles are simpler than IAM.
Invite a teammate
Skip per-person IAM users for human collaboration. Email invite, per-bucket role, one-click revoke.
Delete a file
Versioning, delete markers, MFA Delete — and how to actually purge instead of soft-deleting.
Keep exploring
Other use cases
Multi-cloud
AWS S3, Cloudflare R2, MinIO, B2, and Wasabi — same sidebar, same file browser, one server at a time.
Sharing without AWS
Email-invite clients and execs to a clean browser view of one bucket — revocable in one click, no IAM.
Team workspaces
Per-bucket roles, no per-person IAM, and one-click off-boarding without rotating any keys.