mirror of
https://github.com/nspcc-dev/neofs-s3-gw.git
synced 2026-03-01 04:29:15 +00:00
aws s3api list-objects might list objects in bucket owned by different credentials for a short period of time #335
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#335
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 @lesnya on GitHub (Sep 22, 2022).
Originally assigned to: @KirillovDenis on GitHub.
Steps to reproduce:
aws --no-verify-ssl s3api create-bucket --bucket acl-test-user1 --endpoint-url http://node1.neofs:8084aws --no-verify-ssl s3api list-objects --bucket acl-test-user1 --endpoint-url http://172.19.17.229:8084 An error occurred (InternalError) when calling the ListObjects operation (reached max retries: 2): failed to get sub tree: rpc error: code = Unknown desc = bearer token must be signed by the container owneraws --no-verify-ssl s3api put-object --bucket acl-test-user1 --key user1-owner-data --body /tmp/data.txt --endpoint-url http://node1.neofs:8084aws --no-verify-ssl s3api list-objects --bucket acl-test-user1 --endpoint-url http://node1.neofs:8084aws --no-verify-ssl s3api list-objects --bucket acl-test-user1 --endpoint-url http://172.19.17.229:8084NOTE:
a) If you skip step 7, command in step 8 will return an error, as it should.
b) If use any other endpoint in command from step 8, it will return an error, too.
Cache?
@KirillovDenis commented on GitHub (Sep 23, 2022):
Yes
@alexvanin commented on GitHub (Oct 3, 2022):
To solve this issue we need to introduce access control cache. This LRU cache should store successful or unsuccessful attempts to receive the data from storage, considering access control errors. This cache should evict values whithin configured timeout, because access control rules may change over time, so we want to drop cache data over time.