Secure file sharing for business: what to check before you send the link
The four properties a share needs before it is safe to send outside the company, and how public objects, presigned URLs, attachments and workspace shares measure up against them.
Judge any sharing method against expiry, revocation, identity and a record of opens. Presigned URLs give you the first. Public objects give you none. Attachments trade all four for convenience and create a second copy you no longer govern. For anything going to a client, insist on all four.
Most file sharing incidents are not break-ins. Someone sent a link that never expired, to an address with a typo, for a document that was revised a week later, and afterwards nobody could say who had opened it. The link worked perfectly. That was the problem.
Secure file sharing is less a product category than four properties a share either has or does not have. This guide sets out those four, then walks through the ways teams actually share files that live in Amazon S3 and marks where each one falls short.
What is not on that list
Encryption in transit is not a differentiator. Every option below is HTTPS, and transport encryption protects the link while it travels, not after it arrives. The risk being managed here is a valid link in the wrong hands, which encryption does nothing about.
A password sent in a second email is not one either. It adds friction, it usually travels the same channel as the link, and it answers none of the four properties: it does not expire, it cannot be revoked centrally, it does not identify anyone, and it produces no record. If a password is the only control, the share is unprotected with extra steps.
Public objects: not a sharing model at all
Making an object publicly readable and passing the URL around fails all four properties at once. There is no expiry, revocation means editing the object or its policy, there is no identity, and while server access logs and CloudTrail record requests, they record requesters and not people. An unlisted URL is not a secret: it travels in referrer headers, chat history, browser sync and forwarded mail.
S3 Block Public Access exists precisely to stop this pattern from arriving by accident. Leave it enabled at the account level, and treat any request to disable it for a specific bucket as a decision that needs a written reason, not a configuration detail.
Presigned URLs: right for one file, wrong as a habit
A presigned URL signs a specific object and operation with the credentials of the identity that created it, and works until its configured expiration or until those credentials expire, whichever comes first. It scores well on expiry and badly everywhere else. Treat it as a bearer token: anyone who obtains the URL can use it for as long as it is valid.
Revocation is the weak point. There is no list of outstanding links to click cancel on. Cutting a presigned URL short means invalidating the credentials that signed it or removing the object, which affects far more than the one share. Identity is absent by design, and your logs will show the signing identity rather than the recipient.
That makes presigned URLs an excellent mechanism and a poor process. Use them system to system, for a one-off download, or to accept an upload from a form. Do not build a client-facing sharing workflow on them and call it secure.
Attachments and sync folders: the copy problem
Emailing the document or dropping it into a consumer sync folder solves the delivery problem by creating a second copy outside the store you govern. From that moment the two drift: your version gets revised, theirs does not, and there is no mechanism to reconcile them beyond somebody noticing.
The governance consequence is worse than the version confusion. Retention rules, encryption settings, access policy and audit logging apply to the object in your bucket. They do not follow the copy into a mailbox, a laptop or a third party filing system. If the document was worth protecting where it lived, the copy is the whole exposure.
Before you send the link
- Does this share expire on a date, and is that date short enough to be meaningful?
- If the recipient forwards it, does the next person get in without proving who they are?
- Can you revoke it in under a minute, from one screen, without touching credentials?
- Will the log tell you who opened it, or only that a request was made?
- Should the recipient see later revisions? If not, send a snapshot rather than a live link.
- Is this a copy leaving the governed store, or a view of the object staying in it?
Starter is free. Deploy a scoped role with CloudFormation, sign in, and browse, without handing anyone an access key.
Primary sources
Discussion
0 comments · open to guests · moderatedLiked this? Get the next article by email. No schedule, no filler, one click to leave.