In the lecture "S3 ACLs" (AWS Security Specialty Certification), there was a mention of making objects public, even though the entire bucket is not public. This is not the case. S3 throws an error: "You can’t grant public access because Block public access settings are turned on for this bucket. To determine which settings are turned on, check your Block public access settings."
Good call – thanks for pointing this out!
Ravi, Block Public Access is what’s preventing you from creating public objects in a non-public bucket. You can still create public objects in a bucket that isn’t public but you have to first disable Block Public Access. Here’s the blog post about that feature: https://aws.amazon.com/blogs/aws/amazon-s3-block-public-access-another-layer-of-protection-for-your-accounts-and-buckets/