Files
versitygw/tests/integration
niksis02 0667514220 fix: authorize browser-based POST object uploads against the object ARN
`POSTObject` called `verifyAccess` without an `Object`, and `AuthorizePublicBucketAccess` took the object name from the request path, which is only `/bucket` for a `POST`. So both evaluated `s3:PutObject` against the bucket ARN `arn:aws:s3:::bucket`. `PutBucketPolicy` rejects `s3:PutObject` on a bucket resource, so no valid policy could ever match a `POST` upload. An `Allow` on `arn:aws:s3:::bucket/*` or on a key prefix never applied, and a `Deny` on a key prefix never applied either. A public-write ACL or a broad identity policy could therefore upload through `POST` to keys a `Deny` protects, which `PutObject` refuses. Identity policies evaluated by the standalone IAM service had the same mismatch.

S3 treats `POST` as an alternate form of `PUT` and authorizes it as `s3:PutObject` on the ARN of the object named by the form's `key` field. `POSTObject` now passes that `key` as `Object` to `verifyAccess`, matching `PutObject`. For anonymous `POST` requests, `AuthorizePublicBucketAccess` now uses the `key` that `AuthorizePostObject` has already parsed.
2026-09-23 22:53:54 +04:00
..
2026-03-10 09:47:37 -07:00
2026-05-21 23:49:34 +04:00
2026-05-21 23:49:34 +04:00
2026-05-21 23:49:34 +04:00
2026-08-25 01:03:22 +04:00
2026-05-21 23:49:34 +04:00
2026-05-21 23:49:34 +04:00
2026-05-21 23:49:34 +04:00
2026-06-15 14:48:31 +04:00