AWS S3 buckets are set to private by default. This ensures that objects within the bucket are inaccessible to unauthorized users. However, in some cases, you might need to make certain objects or entire buckets publicly accessible.

To allow public access, you can either enable public access for the entire bucket or for specific objects. Granting public access at the bucket level involves configuring the appropriate public access policy. If you prefer a more controlled approach, public access can be granted to individual objects.

Making an object public takes a change to the bucket and a change to the object. Turning off Block public access publishes nothing by itself, but it removes the bucket's guard against public ACLs and public bucket policies for every object in it, so keep sensitive files in a different bucket. The object's URL returns Access Denied until its ACL allows public read access, then opens for anyone who has the link.

Steps to allow public access to private AWS S3 bucket objects:

  1. Create a private S3 bucket if you don't already have one.
  2. Go to S3 section in your AWS Console.
  3. Click on the private S3 bucket with the object that you want to make public.
  4. Click on the Permissions tab.
  5. Click Edit on the Block public access section.
  6. Click on the Block all public access to uncheck and disable the options.
  7. Click on the Save changes button.
  8. Type confirm in the textbox to confirm.
  9. Click on the Confirm button.
  10. Click on the Objects tab.
  11. Click on the object that you want to make public.
  12. Click on the Object URL link to test current object access.
  13. Confirm current object access is still private and go back to object's properties page.
  14. Click on the Object actions dropdown menu.
  15. Click on Make public via ACL.
  16. Click on the Make public button.
  17. Click on the Close button.
  18. Click on the link in the Object URL again to test.
  19. Confirm current object access is now public.
Share this guide