Amazon S3 - How to Add a Private Subfolder in a Public Bucket
Amazon S3 - How to Add a Private Subfolder in a Public Bucket
In this example, we had a policy that looked like this, which allowed all folders within the bucket to be public.:
{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowPublicRead", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::bucket-name/*" } ] }
Within our bucket, we want to add a private folder. Add your private folder, then edit your main bucket policy to allow access to everything except your private folder and any files within it.
{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowAccessToAllExceptPrivate", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Effect": "Allow", "NotResource": [ "arn:aws:s3:::bucket-name/private/*", "arn:aws:s3:::bucket-name/private" ], "Principal": { "AWS": [ "*" ] } } ] }
Additional resources: StackOverflow