cloudlena/s3manager

Workaround to List Additional Shared Buckets

Magnitus- opened this issue · 1 comments

I've encountered this issue with Ceph Rgw where it is possible for a user to have access to some buckets that they won't see listed:

https://serverfault.com/questions/1153389/setting-read-only-access-on-ceph-rgw-bucket-for-another-user-on-same-tenant-not

I've figured out this workaround which seems reasonable for small deployments with not too many shared buckets to manage: Magnitus-@b9ccec7

Basically, you create an object containing a list of additional buckets you've shared with the user and then you can remotely edit the bucket without having to redeploy the user's s3manager environment.

I've edited my fork to work with that use-case and while it could be fancier (support json, newline separated entries, a file on the fs in addition to an s3 object, integration in the tests, etc), it appears to be good enough for what I need at the moment.

If you are interested in integrating it into the upstream project after a few adjustments, let me know.

fyi, added a couple more improvements to make it work for my use-case at home:

  • asgardius' fix for paths with spaces in them
  • Configuration parameter to optionally bind to a specific address (ex: localhost only, given that we're giving our access to the s3 store there)
  • Support for configuration files (ie, for Windows environments, I don't want to wrap the binary in powershell scripts or whatnot just to pass environment variables)