Skip to main content
cd ../lexicon
sys/docs/lexicon/aws-s3.md
Lexicon
AWS S3

AWS S3

AWS S3 (Amazon Simple Storage Service) is Amazon Web Services' cloud object storage service, storing data as discrete objects addressed by bucket and key over HTTP(S).
Difficulty: Intermediate
4 min read
Updated 2026-08-15

In plain English

Plain definition

AWS S3 (Amazon Simple Storage Service) is Amazon Web Services' cloud object storage service, storing data as discrete objects addressed by bucket and key over HTTP(S).

Technical definition

Structurally, AWS S3 organises data into buckets, which are top-level containers with a globally unique name inside a chosen AWS region. Each object stored in a bucket is identified by a key (a string that behaves like a file path) and is retrieved through a RESTful HTTP(S) interface using standard verbs such as GET, PUT, DELETE and LIST, alongside AWS SDKs and the AWS CLI that wrap the same API.

Objects carry system and user-defined metadata, and buckets support optional features including versioning (retaining prior versions of an object under the same key), server-side encryption, lifecycle rules that transition or expire objects, and event notifications that can trigger downstream processing. Access is governed through a combination of AWS Identity and Access Management (IAM) policies, bucket policies and, where enabled, access control lists (ACLs), with AWS S3 Block Public Access acting as an account- or bucket-level guardrail against unintended public exposure.

Operational relevance

Systems and platform teams use AWS S3 as a durable store for backups, application assets, log archives, data-lake storage and static website content. Because objects are addressed independently rather than through a mounted file system, S3 suits workloads that read and write discrete files at scale rather than workloads that need POSIX file-locking or in-place random-access writes.

Before relying on an S3 bucket for a production workflow, confirm the intended access model (private by default, with any public or cross-account access explicitly justified), the applicable IAM and bucket policy scope, and the lifecycle and versioning settings against the assignment’s actual retention and recovery requirements. Validate configuration changes in an isolated or non-production bucket first, using read-only checks such as listing objects and retrieving a test object, before applying the same configuration to a production bucket.

Architecture relationship

AWS S3 sits alongside, rather than replaces, other AWS storage services: Amazon EBS provides block storage attached to a single EC2 instance, and Amazon EFS provides a shared POSIX file system, while S3 provides object storage accessible over HTTP(S) from many clients concurrently. It is commonly paired with Amazon CloudFront for content delivery, AWS Lambda and S3 event notifications for event-driven processing, AWS Key Management Service (KMS) for encryption key management, and Amazon Athena or AWS Glue for querying data stored as objects. Within an architecture, S3 typically acts as the durable source of truth for artefacts that compute services read, transform or serve.

Example

A typical, read-only way to confirm what a bucket contains, without changing anything, is to list its objects using the AWS CLI:

aws s3 ls s3://example-bucket-name/ --recursive

This returns the keys, sizes and last-modified timestamps of existing objects and is a safe first check before making any configuration change, such as adjusting a bucket policy or lifecycle rule, in a non-production bucket.

Common misunderstanding

AWS S3 is frequently described as though it were a conventional file system with real folders. In fact, a bucket has a flat namespace of keys; apparent “folders” are simply key prefixes displayed hierarchically by the console and CLI, which affects how listing, permissions and lifecycle rules should be reasoned about.

A second common misunderstanding is treating bucket policies, IAM policies and ACLs as interchangeable. They are evaluated together, and a permissive setting in any one of them can widen access beyond what the others intend, so access control for a bucket should be reviewed as a combined policy set rather than a single control.

Exact published figures for S3 durability, availability and storage-class limits change over time and should be confirmed against current AWS documentation rather than assumed from memory or older material.

  • Object storage
  • Bucket
  • IAM policy
  • Presigned URL
  • Storage class
  • Data lake

Further reading

For current, version-specific detail — including published durability and availability figures, storage-class definitions, and API limits — consult the official AWS S3 documentation directly, since these details are updated by AWS independently of this entry and should be verified against the current source before being used in a decision.