Operations

S3 document management: how to run business documents on Amazon S3

Amazon S3 already handles storage, versions, retention and audit for business documents. What it lacks is a layer for people. Here is what document management on S3 needs, what S3 does natively, and the four ways to add the rest.

Founder, developer
September 20, 202612 min read
The short versionPlain termsFor builders

For AWS S3 document management, let S3 do storage, versioning, Object Lock retention, lifecycle and CloudTrail audit, design keys around how people look for files, and keep facts in tags. Then add the people layer: build it with Storage Browser and Bedrock or Quick if you have developers, copy into a DMS if you need co-authoring, or run a workspace on the bucket if you want one copy and your S3 controls to keep applying.

Document management on Amazon S3 works when you use S3 for what it does natively (storage, version history, retention locks, encryption and audit logs) and add a layer that gives people sign-in, folders, previews, sharing and search. You can build that layer from AWS services, buy a document system that copies the files into its own storage, or use a workspace that runs on top of your bucket.

S3 is an excellent place to keep business documents. It is durable, priced per GB, and already inside the account your security team governs. It is also not a file system and has no idea who your staff are, which is where most of the pain comes from. This guide goes through each thing a document system is expected to do and says how it is done on S3.

What document management on S3 needs

A document system is judged on the same short list whatever it runs on. S3 answers about half of it directly. The other half is about people, and S3 leaves that to whatever you put in front of it.

  • Folders and search: people find a file by where it lives and by what it is called.
  • Previews: a PDF or spreadsheet opens in the browser instead of downloading.
  • Permissions by role: a team sees its folders and nothing else, without AWS credentials.
  • Sharing outside the company: a client gets one file, for a limited time, and you know who opened it.
  • Version history and recovery: an overwrite or delete can be undone.
  • Retention: records that must be kept cannot be deleted early.
  • Audit trail: you can answer who opened, shared or deleted a file.
  • Questions over documents: someone can ask a contract a question and get an answer with the page it came from.

Folders and search: design keys the way people look for files

S3 has no folders. It has keys, and a prefix is only the leading part of a key. Listing is by prefix, and there is no server-side search for a word in the middle of a file name or inside a file. That makes the order of the key segments the most important design choice you will make.

Put the segment people filter by first. clients/acme/contracts/2026-03-msa.pdf can be found by anyone who knows the client. 2026/09/12/upload-8841.pdf can only be found by someone who knows the upload date.

  • Use stable, lowercase, human-readable segments. Prefix listing is case sensitive.
  • Keep dates in ISO order so they sort correctly.
  • Do not encode information in the key that changes, such as status. Renaming in S3 is a copy and a delete.

Put facts about the file in tags and metadata

Each object can carry user-defined metadata, set at upload, and up to ten tags, which can be changed later and can drive lifecycle rules and access policies. Use tags for things the business cares about, such as retention class or client, and keep the key for location.

To search by those facts across a whole bucket, S3 Metadata can keep queryable tables of your objects, including system metadata, tags and user-defined metadata, which you query with Amazon Athena or other analytics services. That gives engineers and analysts a catalog to query in SQL. It does not index the text inside documents, and it is not a search box for the finance team.

Previews: S3 returns bytes

A GetObject request returns the file. Whether it opens in a browser tab or lands in a downloads folder depends on the content type stored with the object and on what the browser can render. PDFs and images usually open. Word, Excel and PowerPoint files, HEIC photos and most video need something that converts or streams them. Any document layer you choose should be tested with your real files on this point.

Permissions by role: give people roles, not keys

S3 permissions are IAM policies, bucket policies and access points. They can scope a group to a prefix, but they apply to AWS principals, not to staff accounts, and someone has to write and maintain them. Long-lived access keys pasted into desktop clients are the most common way business buckets leak. Prefer IAM roles with temporary credentials, scoped to the buckets and prefixes each group needs.

For a document team, the practical goal is that people sign in to an application with their own identity and get a role such as viewer or editor, while the application holds a scoped AWS role on their behalf.

Sharing outside the company

S3's own sharing tool is the presigned URL. It works for a quick hand-off, but it behaves like a bearer token: anyone holding the link can use it until it expires. The S3 console sets an expiry between 1 minute and 12 hours, the CLI and SDKs allow up to 7 days, and a URL signed with role credentials stops working when that role session ends. S3 does not record a named person opening it, and you cannot revoke one link without revoking the credentials that signed it.

For client work you usually want the opposite set of properties: a required expiry, a link you can revoke, the recipient proving who they are, and a record of each open.

Version history and recovery

Turn on S3 Versioning for any bucket holding documents people edit or replace. Every overwrite keeps the previous version, and a delete adds a delete marker instead of removing data, so both are recoverable. Recovery itself is done in the console, CLI or SDK by version ID.

  • Keep Block Public Access on at the account level. Business documents should never be shared by making an object public.
  • Add a lifecycle rule to expire noncurrent versions and incomplete multipart uploads, or versioning will quietly grow your bill.

Let lifecycle rules manage cost, and plan for retrieval

Lifecycle rules can move objects to Standard-IA, Glacier Instant Retrieval, Glacier Flexible Retrieval or Deep Archive as they age. The colder classes are much cheaper to store and slower or more expensive to read. Glacier Flexible Retrieval and Deep Archive objects must be restored before anyone can open them.

Decide who is allowed to request a restore and which retrieval tier is acceptable before the day someone needs a three-year-old contract by the afternoon.

Audit trail

CloudTrail data events record object-level API calls such as GetObject, PutObject and DeleteObject for the buckets you choose, and S3 server access logs record requests too. Both name the AWS principal that made the call. If people reach files through an application that uses one shared role, the application has to keep its own record of which person did what, or your audit trail ends at the role.

Questions over documents with AI

There are two common AWS-native routes. Amazon Bedrock Knowledge Bases connects to an S3 bucket, crawls and chunks the documents into a vector store, and answers questions across them; AWS notes that synced data is available to anyone with permission to retrieve from the knowledge base. Amazon Quick can also create a knowledge base from an S3 bucket, which needs a Quick Enterprise subscription and a bucket in the same Region. Amazon Q Business, the earlier option, is no longer open to new customers and AWS points them to Quick.

Both routes build an index, which is the right choice when people need answers across thousands of documents at once. When the usual question is about one contract or one report, asking that single document avoids building and paying for an index.

Four ways to add the people layer

Build it on AWS. Storage Browser for S3 is an open source React component, part of AWS Amplify, that you add to your own web application so authorized users can browse, upload, download, copy and delete objects. Combined with your identity provider, Bedrock or Quick for questions, and your own audit records, this is the right choice when you have developers and want full control. You own the code and its maintenance.

Buy a document management system that copies the files into its own storage, such as SharePoint, Google Drive or Box. You get co-authoring, workflow, full-text search and a mature sync client on day one. You also get a second copy of every document, under the vendor's limits and pricing. This is the better choice when documents are written inside a productivity suite and several people edit the same file at once.

Use a workspace that runs on your bucket. The files stay in S3, Versioning, Object Lock and lifecycle keep working, and the product supplies sign-in, previews, sharing and activity. This fits when files already arrive in S3 from applications, scanners or pipelines and most people need to find, read and share them rather than co-author them. If an AWS partner manages the account, the workspace can be set up for their clients.

  • Build on AWS: full control, your developers maintain it.
  • Amazon Bedrock or Quick: AI answers across many documents, built on an index.
  • Copy into a DMS: co-authoring and workflow, a second copy of every file.
  • Workspace on your bucket: one copy, S3 controls stay in force, no co-authoring.

Read the white paper

The solution

A document workspace on the bucket you already have

BucketDesk is a workspace that runs on your S3 bucket. It connects through a scoped IAM role you deploy with CloudFormation and assumes it for short-lived credentials that expire on their own. People sign in to BucketDesk, and every action lands in Activity.

  1. Find and preview

    browse prefixes as folders, find files by the start of their name, and open PDFs, images and text in the browser, with Word, Excel, PowerPoint and media on Standard.

  2. Share with an expiry

    send a link that expires, can be revoked, asks the recipient to enter a code emailed to them and records every open, with live or snapshot links for folders.

  3. Ask one document

    on Ultra, ask an open document a question and get an answer that names where in the document it came from.

Try it out now

Minimum is free for one bucket. Standard is $100 a month and adds every bucket, five operators, unlimited viewers, Office and media previews and sharing. Ultra is $350 a month and adds uploads, Document AI and Glacier restores, with a one-month free trial. Restoring earlier S3 versions and setting Object Lock stay in the AWS console or CLI.

Primary sources

Discussion

0 comments · open to guests · moderated
Comments appear after a quick review.

Liked this? Get the next article by email. No schedule, no digest, one click to leave.

Keep reading

All articles →
Let's chat

Questions? Message directly.