Know if you're actually ready. Take the AWS quiz → get your AI readiness report.Take the free test →
Study guide · AWS
AWS S3: Buckets, Storage Classes, and Permissions
S3 is AWS's object storage service and appears in almost every architecture. Here's what the exam tests.
S3 fundamentals
S3 stores objects (files) in buckets. It's globally durable, highly available, and scales infinitely.
# Key concepts: # Bucket — globally unique container for objects # Object — a file + metadata, identified by a key (path-like name) # Key — unique identifier for an object within a bucket # e.g., "images/profile/alice.jpg" # Bucket names must be globally unique across all AWS accounts # Buckets exist in a specific region # Object size: 0 bytes to 5 TB # Single PUT upload limit: 5 GB (use multipart above 100 MB) # Default: buckets are private # Public access requires explicit configuration # (Block Public Access settings must be disabled first)
NoteS3 bucket names must be globally unique — not just within your account. They also must be DNS-compliant (lowercase, no underscores).
S3 storage classes
Storage classes let you trade cost vs retrieval speed/availability.
# S3 Standard # - 99.99% availability, 11 nines durability # - Frequent access, low latency # - Use: active data, websites, content distribution # S3 Intelligent-Tiering # - Automatically moves between access tiers # - Use: unknown or unpredictable access patterns # S3 Standard-IA (Infrequent Access) # - Lower storage cost, retrieval fee applies # - 99.9% availability # - Use: disaster recovery, backups accessed monthly # S3 One Zone-IA # - Stored in single AZ (less resilient) # - 20% cheaper than Standard-IA # - Use: recreatable data, secondary backups # S3 Glacier Instant Retrieval # - Archives needing millisecond retrieval # S3 Glacier Flexible Retrieval # - Minutes to hours retrieval time # S3 Glacier Deep Archive # - Cheapest storage, 12-hour retrieval # Use: long-term compliance archives
S3 security and access control
S3 has multiple layers of access control. Bucket policies are the most commonly tested.
# Layers of access control:
# 1. Block Public Access (account and bucket level) — override all else
# 2. Bucket policy (JSON, attached to bucket)
# 3. ACLs (legacy, generally disabled now)
# 4. IAM policies (attached to users/roles)
# Example bucket policy: allow public read for static website
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}]
}
# Pre-signed URLs: grant temporary access without changing permissions
# Useful for letting users upload/download without AWS credentialsNoteIf both IAM policy and bucket policy exist, the effective permissions are the UNION of both — the most permissive combination (unless there's an explicit Deny).
Versioning and lifecycle rules
Versioning keeps all versions of an object. Lifecycle rules automate storage class transitions and deletion.
# Versioning: # - Keeps all versions of every object # - Protects against accidental deletion # - Delete adds a "delete marker" — old versions still accessible # - Enable on bucket (can't be disabled once enabled, only suspended) # Lifecycle rules (JSON or console): # Transition: move to cheaper storage class after N days # Expiration: delete objects after N days # Example lifecycle: # Day 0: Object created in S3 Standard # Day 30: Transition to Standard-IA # Day 90: Transition to Glacier Flexible Retrieval # Day 365: Delete (expiration) # Combine with versioning: # - Expire old versions after 90 days # - Delete incomplete multipart uploads after 7 days
S3 Bucket Limits & Quotas
S3 has well-defined hard limits and per-account quotas. These appear frequently in AWS certification questions and architecture design scenarios.
# Per-account bucket limits: # Default: 100 buckets # Maximum (request): 1,000 buckets # Object size limits: # Max object size: 5 TB # Max single PUT upload: 5 GB (use multipart for > 100 MB) # Max parts per multipart: 10,000 parts # Min multipart part size: 5 MB (except last part) # Request rate (per prefix): # GET / HEAD: 5,500 requests/sec # PUT / POST / DELETE: 3,500 requests/sec # Tip: add a hash prefix to keys to parallelise across prefixes # Minimum storage duration (early deletion fees apply): # Standard-IA & One Zone-IA: 30 days # Glacier Instant Retrieval: 90 days # Glacier Flexible Retrieval: 90 days # Glacier Deep Archive: 180 days
NoteThe 100-bucket default limit is a common exam data point. It can be raised to 1,000 via AWS Support. Early deletion charges apply to Glacier classes — you are billed the minimum duration even if you delete the object earlier.
Exam tipThe most common S3 exam scenario: "Cheapest storage for data accessed once a year for compliance" — S3 Glacier Deep Archive. For infrequent but fast retrieval — Standard-IA. For unpredictable access — Intelligent-Tiering.
Further reading
Want a person to help?
Struggling with AWS? Work 1:1 with a vetted AWS tutor on Wyzant. (affiliate link)
Find a AWS tutor →