mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-08 06:13:14 +00:00
feat(table-catalog): bridge table data-plane policy (#3436)
* feat(table-catalog): bridge table data-plane policy * test(table-catalog): harden vended credential smoke * test(table-catalog): cover data-plane policy denials * fix(table-catalog): protect relocated warehouse scope * fix(table-catalog): skip invalid warehouse entries --------- Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com>
This commit is contained in:
@@ -94,12 +94,15 @@ table-scoped S3 access key, secret key, and session token before append, reload,
|
||||
and scan operations.
|
||||
|
||||
Before the PyIceberg append, the profile also checks that the returned
|
||||
credential prefix exactly matches the created table warehouse location, then
|
||||
runs a direct S3 data-plane scope probe with the returned temporary credentials:
|
||||
credential prefix exactly matches the created table warehouse location after
|
||||
canonical S3 URI normalization, including percent-decoding equivalent path
|
||||
encodings. It then runs a direct S3 data-plane scope probe with the returned
|
||||
temporary credentials:
|
||||
|
||||
- `PutObject`, `HeadObject`, and `DeleteObject` must work inside the returned
|
||||
table warehouse prefix.
|
||||
- `PutObject` to the same bucket outside that prefix must be rejected.
|
||||
- `PutObject`, `HeadObject`, `GetObject`, and `DeleteObject` must work inside
|
||||
the returned table warehouse prefix.
|
||||
- `PutObject` and `GetObject` to the same bucket outside that prefix must be
|
||||
rejected.
|
||||
|
||||
## Machine-Readable Inventories
|
||||
|
||||
|
||||
Reference in New Issue
Block a user