AWS Certified CloudOps Engineer Associate SOA-C03 [2026]

AWS S3 and CloudFront Exam Scenarios: Access, Versioning, Logging, and Delivery

Study guide for AWS Certified CloudOps Engineer Associate scenarios involving S3 website hosting, versioning, access control, CloudFront caching, logging, and geographic restrictions.

AWS Certified CloudOps Engineer Associate SOA-C03 [2026]AWS Certified CloudOps Engineer Associate SOA-C03 [2026]Updated Sep 1, 2026
Study options
WatchComing later
ListenComing later
ReadAvailable
ReviewComing later

Study guide

Technical reference and lesson notes

AWS S3 and CloudFront Exam Scenarios

Purpose of This Lesson

This lesson focuses on recognizing the correct AWS feature or operational response for common Amazon S3 and Amazon CloudFront scenarios. The central decisions involve static website delivery, bucket access, object recovery, audit visibility, performance, and geographic restrictions.

Key Concepts

  • S3 static website with a custom domain: The S3 bucket name must match the DNS name used by the Route 53 record set.
  • S3 request-rate problems: A new site receiving traffic from thousands of users may experience HTTP 503 errors when the request rate is too high.
  • S3 Inventory: Use S3 Inventory when you need a reliable determination of the objects stored in a bucket, especially when the S3 console and CloudWatch figures disagree.
  • S3 server access logging and Athena: Server access logs provide request details. Athena can query those logs, including HTTP 403 responses, to identify the IAM user or role making requests.
  • Pre-signed URLs: Provide time-limited or specifically scoped access to selected S3 objects, which is useful when the set of third-party users changes frequently.
  • S3 Versioning: Preserves previous object versions and supports recovery from accidental modification or deletion. It also helps protect against ransomware-related encryption of object data.
  • MFA Delete-related operations: With MFA protection enabled for a bucket, permanently deleting object versions and suspending versioning require MFA authentication.
  • IAM roles for EC2: An EC2 application should use an IAM role attached through an instance profile to access S3 rather than embedding credentials in the application.
  • Bucket policies and ACLs: A bucket policy can grant public read access for a static website. ACLs are relevant to the lecture’s cross-account access scenario; changing the ACL to restrict access to the bucket owner removes the prior broader sharing arrangement.
  • CloudFront caching: CloudFront improves delivery speed for static S3 content by caching objects closer to users.
  • CloudFront custom domains: Use a Route 53 alias record that points the custom domain to the CloudFront distribution URL.
  • CloudFront origin protection: Use an Origin Access Identity (OAI) or Origin Access Control (OAC) and grant it permission to read objects in the S3 bucket.
  • Geo controls: CloudFront geo restriction limits access based on countries or regions. Route 53 geolocation routing directs DNS responses based on the requesting user’s geographic location.

S3 Website Hosting, Access, and Recovery

Custom-domain static websites

For an S3 static website accessed through a custom domain, the bucket name must match the DNS name represented by the Route 53 record set. A mismatch prevents the expected custom-domain website configuration from working correctly.

If the site returns HTTP 403 Forbidden, one possible correction is a bucket policy granting public read access to the website objects. This is appropriate only when the intended design is a publicly readable static website.

Application access from EC2

When an application on EC2 must write files to S3, create an IAM role with the required S3 permissions and attach it to the EC2 instance through an instance profile. This provides the application with role-based credentials without requiring credentials to be stored in code or configuration files.

Third-party file access

If a third party needs limited access to specific objects and the user population changes frequently, use pre-signed URLs. This avoids maintaining a changing list of individual users while limiting access to the selected files.

Versioning and ransomware recovery

Enable S3 Versioning when the requirement is to maintain a revision history or recover from accidental overwrites and deletions. Versioning also provides an additional recovery mechanism when files are encrypted or otherwise damaged by ransomware. It does not prevent a malicious or authorized actor from performing every destructive operation; the scenario may also require controls around version deletion and versioning suspension.

When MFA protection is enabled for the bucket, the operations highlighted in this lesson that require MFA are:

  • Permanently removing object versions
  • Suspending versioning on the bucket

CloudFront Delivery and Geographic Controls

CloudFront is the preferred performance improvement when static content stored in S3 loads slowly or testing shows that users are experiencing poor latency. CloudFront caches the static content at edge locations instead of requiring every request to travel directly to S3.

A common architecture places CloudFront in front of S3 for static content or in front of an ALB and EC2 for application content. For a custom CloudFront domain, create a Route 53 alias record pointing to the distribution.

To secure an S3 origin used by CloudFront, configure an OAI or OAC and grant the selected identity permission to read the bucket objects. This allows CloudFront to retrieve content while avoiding an unnecessarily open S3 bucket design.

Geographic requirements require distinguishing between delivery restriction and DNS routing:

  • CloudFront geo restriction: Restricts access to content based on countries or regions.
  • Route 53 geolocation routing: Selects DNS responses based on the geographic location of the requester.

Logging, Metrics, and Troubleshooting

When the S3 console’s object count differs from CloudWatch, use S3 Inventory to determine the bucket’s object count accurately.

For suspected unauthorized S3 access, enable or inspect S3 server access logs and query them with Athena. Filter for HTTP 403 responses and inspect the identity information to determine which IAM user or role is making the requests. This workflow helps answer both of the important investigation questions: which buckets are being targeted and who is attempting access.

If CloudFront is deployed in front of an ALB and you need HTTP layer 7 status codes, inspect both CloudFront access logs and ALB access logs. The appropriate log source depends on whether you are investigating the edge request or the request received by the load balancer.

Exam- or Assessment-Relevant Takeaways

  • Match the requirement to the narrowest feature: pre-signed URL for limited object sharing, IAM role for EC2 access, versioning for recovery, and CloudFront for caching.
  • A 403 from an S3 static website commonly points to missing permission to read the website objects; a bucket policy may be required for a deliberately public site.
  • A custom S3 static website requires bucket and DNS naming alignment.
  • Use S3 Inventory for object-count accuracy rather than assuming that a console or CloudWatch count is the authoritative answer.
  • Use S3 access logs plus Athena when the question asks who generated unauthorized requests or which requests returned 403.
  • Do not confuse CloudFront geo restriction with Route 53 geolocation routing: one controls content access, while the other influences DNS endpoint selection.
  • For CloudFront access to a private S3 origin, choose OAI or OAC and grant the corresponding read permissions.
  • For EC2-to-S3 access, prefer an instance role and instance profile over application-managed credentials.
  • In the lesson’s logging scenario, S3 Standard is identified as the cost-effective option for a large volume of logs processed daily.
  • The lesson notes that S3 encryption is enabled by default and that the encryption status cannot be changed after deployment for RDS or EFS in the stated application scenario.

Tool / Feature Decision Guide

RequirementRecommended feature or approachDecisive reason
Share selected S3 files with changing third-party usersPre-signed URLGrants scoped access without maintaining a changing user list
Recover overwritten, deleted, or encrypted object dataS3 VersioningRetains prior object versions
Prevent or control permanent version deletion and versioning suspensionMFA protection for the bucketThe specified destructive operations require MFA
Let an EC2 application save files to S3IAM role attached through an instance profileSupplies role-based access to the instance
Make an S3 static website publicly readableBucket policy granting public read accessAllows anonymous reads when public hosting is intended
Reconcile conflicting object countsS3 InventoryProvides a proper inventory of bucket objects
Investigate S3 403 requests and requester identityS3 server access logs queried with AthenaExposes request and identity details for analysis
Improve slow static-content deliveryCloudFrontCaches content closer to users
Use a custom domain for CloudFrontRoute 53 alias recordPoints the domain to the distribution
Keep an S3 origin restricted to CloudFrontOAI or OAC with bucket read permissionsAllows the distribution to retrieve objects without broadly exposing the bucket
Block delivery by country or regionCloudFront geo restrictionEnforces geographic content access controls
Return different DNS destinations by user locationRoute 53 geolocation routingSelects DNS responses based on geographic location

Common Traps / Misconceptions

  • Confusing CloudFront with Route 53 geolocation: CloudFront geo restriction controls access to delivered content; Route 53 geolocation routing controls which DNS response is returned.
  • Using a pre-signed URL for EC2 application access: An EC2 application should use an IAM role and instance profile, not a manually generated URL for routine S3 writes.
  • Assuming versioning prevents all ransomware damage: Versioning preserves prior versions, but permanently deleting versions or suspending versioning are separate destructive operations protected by MFA in the stated scenario.
  • Treating a 403 as a performance problem: HTTP 403 indicates an authorization or access issue. CloudFront caching addresses slow delivery, not missing S3 permissions.
  • Making an S3 bucket public when CloudFront should be the controlled origin: If the bucket is intended to be protected, use OAI or OAC and grant the required read permissions instead of broadly granting public access.
  • Using CloudWatch or the console as the definitive object count: When counts conflict, use S3 Inventory.
  • Checking only one log layer: With CloudFront and an ALB in the request path, investigate the relevant CloudFront and ALB access logs for layer 7 status information.
  • Forgetting the S3 bucket naming requirement: A custom-domain S3 static website depends on the bucket name matching the DNS name used by Route 53.

Real-World Engineer / Analyst Notes

  • Start troubleshooting by identifying the failing layer: DNS, CloudFront, S3 authorization, or the application origin.
  • Keep access scope aligned with the consumer. A temporary external file share calls for a pre-signed URL, while a continuously running EC2 workload calls for an IAM role.
  • Versioning is most useful when paired with an operational recovery process that identifies the correct prior version and limits destructive version operations.
  • When investigating 403 errors, correlate timestamps, object paths, request status, and IAM identity in access logs rather than relying only on application symptoms.
  • CloudFront improves latency and can reduce repeated origin requests, but it does not automatically grant the distribution permission to read a private S3 bucket.
  • Public bucket policies, ACL changes, OAI, and OAC represent different access designs. Select the one that matches whether direct public access, cross-account access, or CloudFront-only access is required.

Quick Reference Summary

  • S3 custom-domain website: Match the bucket name to the DNS name and Route 53 record set.
  • S3 website 403: Check object-read permissions and, for an intentionally public site, the bucket policy.
  • EC2 to S3: IAM role plus instance profile.
  • Changing third-party users: Pre-signed URLs for selected files.
  • Recovery and revision history: S3 Versioning.
  • MFA-protected operations: Permanently deleting object versions and suspending versioning.
  • Object-count discrepancy: S3 Inventory.
  • Unauthorized S3 requests: Server access logs plus Athena; investigate 403 responses and caller identity.
  • Slow static content: CloudFront caching.
  • CloudFront custom domain: Route 53 alias record.
  • Private S3 origin: OAI or OAC with object-read permission.
  • Country or region access restriction: CloudFront geo restriction.
  • Location-based DNS destination: Route 53 geolocation routing.

Flashcards

Q: A static S3 website must be reachable through a custom domain managed in Route 53. What naming requirement matters?

A: The S3 bucket name must match the DNS name represented by the Route 53 record set.

Q: A new S3-hosted site receives traffic from thousands of users and begins returning HTTP 503 errors. What issue should be considered?

A: The request rate may be too high for the scenario. Investigate request volume and rate-related behavior rather than treating the error as an authorization failure.

Q: The S3 console and CloudWatch show different object counts. Which feature should be used to determine the bucket’s object count?

A: Use S3 Inventory, which is the lesson’s method for properly determining the number of objects.

Q: How would you investigate which identity is generating unauthorized S3 requests?

A: Use S3 server access logs and query them with Athena, filtering for HTTP 403 responses and examining the IAM user or role.

Q: A frequently changing group of third parties needs access to only specific S3 files. Why choose pre-signed URLs instead of maintaining individual permissions?

A: A pre-signed URL provides access to selected files without requiring a constantly changing list of third-party users.

Q: When should S3 Versioning be enabled for an application’s files?

A: Enable it when prior revisions must be retained or files must be recoverable after accidental modification, deletion, or ransomware-related encryption.

Q: With MFA protection enabled on a bucket, which operations highlighted in this lesson require MFA?

A: Permanently removing object versions and suspending versioning require MFA authentication.

Q: An EC2 application must save files to S3. Which access design should it use?

A: Create an IAM role with the necessary S3 permissions and attach it to the EC2 instance through an instance profile.

Q: When would you use CloudFront in front of S3?

A: Use it when static content loads slowly or performance testing shows high latency; CloudFront caches content closer to users.

Q: How do you give CloudFront access to a protected S3 origin?

A: Configure an OAI or OAC and grant that identity permission to read the S3 objects.

Q: What is the difference between CloudFront geo restriction and Route 53 geolocation routing?

A: CloudFront geo restriction controls whether content can be accessed from specified countries or regions. Route 53 geolocation routing selects DNS responses based on requester location.

Q: CloudFront fronts an ALB and EC2, and you need HTTP layer 7 status information. Which logs should be examined?

A: Examine the CloudFront access logs and the ALB access logs, selecting the layer that corresponds to the request path being investigated.

Q: An S3 bucket was previously shared with another account but must now be restricted to the bucket owner. What control is identified for this scenario?

A: Change the ACL to restrict access to the bucket owner; the lesson identifies ACLs as relevant to the cross-account access scenario.

Practice Questions

Question 1

A company gives external contractors access to a small set of S3 objects. The contractor list changes frequently, and the company does not want to maintain individual permissions for every contractor. Which option best fits the requirement?

A. Attach an IAM role to every contractor’s EC2 instance
B. Create a pre-signed URL for the required objects
C. Enable Route 53 geolocation routing
D. Configure an ALB access log

Correct answer: B. Create a pre-signed URL for the required objects.

A pre-signed URL provides limited access to specific S3 files without requiring a frequently changing user list.

Question 2

An EC2-hosted application must upload files to an S3 bucket. Which implementation is most appropriate?

A. Store an IAM user’s access key in the application source code
B. Make the S3 bucket publicly writable
C. Create an IAM role and attach it to the EC2 instance using an instance profile
D. Use a Route 53 alias record

Correct answer: C. Create an IAM role and attach it to the EC2 instance using an instance profile.

The instance profile supplies role-based S3 access to the application without embedding long-term credentials.

Question 3

A team notices that the S3 console object count does not match the value seen in CloudWatch. They need a reliable count of objects in the bucket. What should they use?

A. CloudFront access logs
B. S3 Inventory
C. Route 53 geolocation routing
D. An S3 bucket policy

Correct answer: B. S3 Inventory.

The lesson identifies S3 Inventory as the appropriate method for properly determining the number of objects.

Question 4

A static website stored in S3 has high loading times for users in distant regions. The content is static and does not require a different DNS destination by country. Which solution should be selected?

A. CloudFront caching
B. MFA Delete
C. Athena without access logs
D. An ACL restricting access to the bucket owner

Correct answer: A. CloudFront caching.

CloudFront caches static content closer to users, improving delivery performance. The requirement is performance, not geographic DNS routing or version protection.

Question 5

A business wants users in selected countries to be unable to access website content delivered through CloudFront. Which feature directly addresses this requirement?

A. Route 53 alias record
B. CloudFront geo restriction
C. S3 Inventory
D. S3 Versioning

Correct answer: B. CloudFront geo restriction.

CloudFront geo restriction controls content access by country or region. Route 53 geolocation routing instead influences DNS responses based on location.

WordPress Metadata

Suggested Slug:
aws-s3-cloudfront-exam-scenarios

Meta Description:
Study guide for AWS Certified CloudOps Engineer Associate scenarios involving S3 website hosting, versioning, access control, CloudFront caching, logging, and geographic restrictions.

Tags:
AWS, Amazon S3, Amazon CloudFront, Route 53, S3 Versioning, IAM, S3 Access Logs, Athena, Cloud Operations, SOA-C03