2 Answers
This is a recent change by AWS. You have to de-select "Block all public access" in the bucket policy to even make something available via ACL now.
It’s a new feature acting as a kind of failsafe to keep people from making objects public without truly understanding what they are doing.
While creating any bucket you will find section of "Object Ownership" (which is recently added to AWS S3). You will find 2 options under this section
1) ACLs disabled (recommended)
2) ACLs enabled
Out of which 1st option is by default selected if you do not change it manually, which does not allow to make any bucket option public.
Make sure to select "ACL enabled" option while creating new bucket to allow object base ACL access.
Please note: you will not able to edit this option after you create the bucket and uploaded file in it.