Skip to the content.

Amazon S3: The Negative Vault

Preserve recoverable history with Versioning, enforce retention with Object Lock, and copy objects deliberately with replication.

The Business Goal

An editor uploaded a corrected portrait to the same key.

The correction was wrong.

Then an assistant deleted the object while cleaning the gallery.

Mira had built durable storage, but durability had faithfully preserved the most recent mistake.

The system had survived hardware failure.

It had not survived an authorized human.


The Story

Mira opened a negative vault.

Each time a photograph changed, the vault kept the older negative behind the newest one. When someone asked to remove the photograph, the attendant placed a black card at the front rather than burning every negative.

For legally protected collections, Mira sealed a particular negative in a sleeve that could not be opened until its retention period ended.

For regional resilience and ownership requirements, an authorized courier copied new negatives to another vault.

History, retention, and copying were three different controls.


The Wrong Way

S3 durability is not the same as protection from overwrite or deletion.

Versioning is not a free, automatic backup policy. Old versions consume storage and can be permanently deleted by a principal with the required permission.

Replication is not retroactive by default for every historical object and is not a substitute for understanding delete behavior, KMS permissions, replication status, or destination configuration.


Meet the AWS Service

Core idea: S3 Versioning preserves multiple versions, Object Lock enforces WORM-style retention on versions, and Replication copies eligible objects under configured rules.

These features can work together, but they solve separate risks.

AWS performs the configured storage operations. You choose retention, lifecycle, permissions, destination, encryption behavior, and recovery procedures.


How It Works

The Stack of Negatives

S3 Versioning

With Versioning enabled, a new PUT to an existing key creates a new version and retains the previous version as noncurrent.

Applications can request a specific version ID. Copying a previous version to the same key can make its data current while preserving history.

Versioning can be enabled and later suspended, but a bucket does not return to a never-versioned state.

The Black Card

Delete Markers

A simple DeleteObject request in a versioning-enabled bucket usually creates a delete marker. A normal GET then behaves as though the object is absent, while older versions remain.

Deleting that delete marker can reveal the previous version again. Permanently deleting a specific version requires its version ID and sufficient permission.

The Sealed Sleeve

S3 Object Lock

Object Lock applies WORM-style protection to object versions in a versioned bucket.

Object Lock protects a version. It does not prevent a new version or a delete marker from becoming current.

The Second Vault

S3 Replication

Same-Region Replication and Cross-Region Replication copy eligible objects according to rules. Versioning is required on source and destination general purpose buckets.

S3 assumes an IAM role with permission to read from the source and write to the destination. SSE-KMS objects require deliberate KMS configuration and permission.

Live replication applies to new eligible objects after the rule is active. S3 Batch Replication can address existing or failed objects.

Replication status should be monitored; a configured courier can still encounter permission or encryption failures.


Architectural Mapping

PUT same key
    |
    v
Current version ----> noncurrent versions
    |
    +--> optional Object Lock retention
    |
    `--> replication rule --> destination bucket versions

Versioning creates history. Lifecycle controls its long-term cost. Object Lock constrains deletion. Replication creates another copy. None of them independently defines a complete recovery plan.


When to Use It

Use Versioning when accidental overwrite and delete recovery matter. Add Object Lock when records require enforced immutability. Use replication for compliance, ownership separation, latency, resilience, or another intentional copy.

When Not to Use It

Do not enable indefinite history without lifecycle and cost planning. Do not use replication alone as protection from a bad write if the same bad write is eligible to replicate.


Painkiller

Problem: Authorized changes can overwrite or hide valuable objects.
Pain: Infrastructure durability cannot distinguish a correction from a mistake.
AWS solution: Preserve versions, enforce retention where required, and replicate eligible objects under explicit rules.


Knife Cut

Versioning keeps history. Object Lock constrains deletion. Replication creates another copy.


The Masthead

What Actually Just Happened

In the story In AWS What it actually means
Stack of negatives Object versions Current and noncurrent data under one key
Black card Delete marker Current marker that hides older versions from ordinary reads
Sealed sleeve Object Lock Retention or legal hold on a version
Courier S3 replication role Authorized service role copying eligible objects
Second vault Destination bucket Same-Region or cross-Region replica location

A Note From the Author

The vault metaphor suggests that every earlier negative is safe forever. Permissions and lifecycle rules can permanently delete noncurrent versions when Object Lock does not prevent it.

Replication behavior varies for delete markers, existing objects, ownership, encryption, and rule configuration. Test the intended recovery event rather than treating a green configuration screen as proof.


The Last Bite

Durability protects against failing storage.

History protects against changing minds and changing hands.

Keep the version you may need before the mistake teaches you its value.


Next chapter: Amazon S3: The Archive Elevator

The vault now keeps history. Without lifecycle rules, it will also keep every storage bill.