Access Points and Object Ownership
Scope access cleanly and avoid risky cross-account ACLs.
Access Points and Object Ownership is a free AWS Security Academy lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the AWS Security Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Why ACLs Are Risky
Legacy ACLs (access control lists) let you grant object-level access, but they predate IAM and bucket policies and are hard to audit at scale.
The biggest danger is cross-account uploads: an object written by another account could be owned by that account, leaving the bucket owner unable to control it.
S3 Object Ownership
S3 Object Ownership settles who owns uploaded objects. Its recommended setting, Bucket owner enforced, disables ACLs entirely and makes the bucket owner own every object automatically.
With ACLs off, all access is governed cleanly by IAM and bucket policies — far easier to reason about and audit.
Bucket Owner Enforced
When Object Ownership is set to Bucket owner enforced, ACLs no longer apply and cannot grant access at all.
This is now the default for new buckets and the AWS-recommended best practice. It eliminates an entire class of confusing, error-prone cross-account ownership problems in one setting.
The Ownership Problem
Imagine account A owns a bucket but account B uploads logs to it. Under old ACL behavior, B owns those objects, so A cannot read or delete its own bucket's contents.
Bucket owner enforced fixes this: A automatically owns every object regardless of who uploaded it, restoring full control to the bucket owner.
What Are Access Points
S3 Access Points are named network endpoints attached to a bucket, each with its own access policy.
Instead of one giant, tangled bucket policy serving every application, you create a dedicated access point per use case — each with a simple, scoped policy — making access far easier to manage and audit.
Why Access Points Help
A single shared bucket policy grows complex and risky as more teams use the bucket. Access points decompose that into many small policies.
Each access point can be restricted to a VPC, given its own name and permissions, and revoked independently — so one team's needs never force you to loosen access for everyone.
arn:aws:s3:us-east-1:111122223333:accesspoint/finance-apVPC-Restricted Access Points
An access point can be set to accept requests only from a specific VPC (Virtual Private Cloud). Then objects reached through it are unreachable from the public internet entirely.
This is a clean way to ensure sensitive data is only accessed by your internal workloads over a private network path.
Multi-Region Access Points
Multi-Region Access Points give you a single global endpoint that routes to buckets in several regions.
From a security view, they simplify policy management for globally distributed data and provide automatic failover, so applications keep working without hardcoding regional bucket names.
Cross-Account Done Right
For sharing across accounts, combine bucket policies, access points, and Object Ownership rather than ACLs.
Set Bucket owner enforced, grant the other account through a scoped bucket or access point policy, and you get auditable, revocable cross-account access without the ownership confusion ACLs cause.
Access Point Policies
Each access point carries its own access point policy, evaluated alongside the bucket policy. The bucket policy can even delegate to access points, granting access only through them.
This lets you keep one simple, restrictive bucket policy while expressing per-application permissions in small, independent access point policies that are easy to review and revoke.
Best-Practice Summary
The modern S3 access posture is clear: disable ACLs with Bucket owner enforced, govern access through IAM and bucket policies, and use access points to keep per-application policies small and scoped.
This combination is both more secure and dramatically easier to audit than the old ACL world.
Quick Check
Choose the cleanest fix.
Recap
Legacy ACLs cause cross-account ownership headaches and are hard to audit. Set S3 Object Ownership to Bucket owner enforced to disable ACLs and own every object cleanly, governing access through IAM and bucket policies. Use S3 Access Points to give each application a small, scoped, optionally VPC-restricted policy, and Multi-Region Access Points for global data. Together these replace ACLs with an auditable, least-privilege access model.
Frequently asked questions
Is the “Access Points and Object Ownership” lesson free?
Yes — the full text of “Access Points and Object Ownership” is free to read here on the web, and the AWS Security Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the AWS Security Academy course, upgrade to CoddyKit PRO.
What will I learn in “Access Points and Object Ownership”?
Scope access cleanly and avoid risky cross-account ACLs. You practise AWS Security Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start AWS Security Academy?
No prior experience is required. AWS Security Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Access Points and Object Ownership” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this AWS Security Academy lesson?
Yes. Every AWS Security Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Block Public Access and Bucket Policies
- Access Points and Object Ownership
- Finding Sensitive Data with Amazon Macie
- Data Lifecycle and Secure Deletion