-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow subscriber to access cursor admin-api #2964
Comments
we also want to address subscription-ownership usecase where pulsar enforces subscription access (consume, ack, admin-api) by only subscription-owner. One of the solution to configure sub-permission at namespace level implemented at #2981 Alternate solution to store subscription's principal-role at topic level in the topic-stat (
Enforcing subscription-ownership authorization can be configured at namespace policies by adding flag : |
@rdhabalia was this fixed by #2981 already? |
Closed as stale. Please open a new issue if it's still relevant to the maintained versions. |
Right now, all cursor specific admin-apis (eg: skip-all, reset-cursor) can be only accessed by pulsar-system-admin or tenant-admin. Therefore, subscribers always have to request one of the admin to perform this operation. and this mechanism is not scaling because few of the subscribers require to call cursor-admin api more frequently.
Solutions
1. Allow all subscribers (user who has
Consume
permission) to access cursor-admin api.Pros:
Easy and no need to store additional metadata.
Cons:
Problem with this solution : there is a chance that one subscriber can mess up other subscriber's cursor state by mistake.
2. Store subscriber auth metadata
In this solution: Broker stores subscriber auth metadata under AuthPolicies
Map<String, List<String>> subscriber_auth; // map between sub-name to list of allowed user's app-id.
Cons:
a. Global/Configuration-ZK will have to store additional metadata
(which should be fine because it will not require to create any additional zk-node and actual data size will not be large. Also only pulsar-system admin will be allowed to add sub-auth policy so, pulsar admin can always control znode metadata size).
So, I am thinking to address this issue with 2nd approach by storing subscriber-metadata into global/configuration zk. Any thought?
The text was updated successfully, but these errors were encountered: