return -EACCES;
}
+ // CreateBucket doesn't call rgw_build_bucket_policies() to initialize this
+ int r = read_public_access_conf(this, y, driver, s->owner.id, s->bucket_attrs,
+ s->public_access_block);
+ if (r < 0) {
+ return -EACCES;
+ }
+
+ // reject public canned acls
+ if (s->public_access_block.BlockPublicAcls &&
+ (s->canned_acl == "public-read" ||
+ s->canned_acl == "public-read-write" ||
+ s->canned_acl == "authenticated-read")) {
+ return -EACCES;
+ }
+
if (object_ownership) {
// x-amz-object-ownership requires s3:PutBucketOwnershipControls permission
if (!verify_user_permission(this, s, arn, rgw::IAM::s3PutBucketOwnershipControls, false)) {