
There are several ways to make objects in an S3 bucket public. The first is to use the following bucket policy:
{ "Version": "2012-10-17", "Statement": { "Action": "s3:GetObject", "Effect": "Allow", "Resource": "arn:aws:s3:::my-bucket/*", "Principal": "*" } }

This (& other) policies can be generated using AWS’s official policy generator at awspolicygen.s3.amazonaws.com/policygen.html:

You can also use the (legacy) Access Control Lists to allow public read:

If you’re using the S3 CLI to synchronize local directories with an S3 bucket & want all such files to be public, do this:
aws s3 sync ./local-directory s3://my-bucket --acl=public-read
Also see: