mirror of
https://github.com/nspcc-dev/neofs-s3-gw.git
synced 2026-03-01 04:29:15 +00:00
Add NeoFS ACL checking #339
Labels
No labels
I2
I2
I3
I4
S2
S3
S4
S4
U0
U1
U2
U2
U3
U4
U4
auth-mate
blocked
bug
config
dependencies
discussion
documentation
enhancement
epic
feature
go
good first issue
help wanted
performance
question
security
test
tree-service
tree-service
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nspcc-dev/neofs-s3-gw#339
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @KirillovDenis on GitHub (Sep 26, 2022).
There is some issue that allows user bypass ACL rules because of caching object headers.
To solve this we should do some acl checking when we return some info from caches. This also can reduce number of failed request (because of
Access deniederror) to nodes.We can start fix access to cached object with individual object cache
TODO
...
✍️
@cthulhu-rider commented on GitHub (Sep 26, 2022):
seems very (VERY) questionably to me on the gate side. The current problem is that object cache stores responses without auth data (public key), am I right? Seems like caching key along with object address solves the issue. However, this increases resource consumption.
@KirillovDenis commented on GitHub (Sep 27, 2022):
Actually not. We cannot map one public key to the object in the cache because eACL can contains complex rules that restrict access only for specific keys.
It's not only because of current cache errors. As I remember we wanted implement s3-compatible checking on s3-gate. It seems now is appropriate time to start doing this.
@cthulhu-rider commented on GitHub (Sep 27, 2022):
I meant we don't care about ACL at all, we just cache (object_address, client_key) pair response from the NeoFS. But maybe I haven't understood the problem correctly.
Oh, if you mean processing S3 entities only w/o touching things like NeoFS container ACL than that seems good.
@alexvanin commented on GitHub (Oct 3, 2022):
After some internal discussions with @realloc we've decided to postpone extended ACL checks in gateway. Originally we wanted to use extended ACL tables to decide whether to access data from the storage or not. It has some critical flaws:
To solve access control issue we are going to use access control cache.
This issue is closed until further updates.