Skip to content
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

Enhance ACL Flexibility for JetStream filter_subjects Permissions #6180

Open
mmack opened this issue Nov 26, 2024 · 0 comments
Open

Enhance ACL Flexibility for JetStream filter_subjects Permissions #6180

mmack opened this issue Nov 26, 2024 · 0 comments
Labels
proposal Enhancement idea or proposal

Comments

@mmack
Copy link

mmack commented Nov 26, 2024

Proposed change

The current ACL system for NATS JetStream lacks the ability to enforce granular restrictions on filter_subjects in consumer configurations. While filter_subject can be controlled via specific permission patterns, there is no equivalent mechanism for filter_subjects. This limitation exposes a potential security gap for users attempting to enforce strict subject-level access controls.

Current Behavior

  • Permissions such as $JS.API.CONSUMER.CREATE.my_stream.*.my_stream.123.> work effectively for filter_subject.
  • The equivalent does not apply to filter_subjects, leaving users unable to block or enforce restrictions when multiple subjects are provided.

Expected Behavior

  • Deny specific filter_subjects patterns in JetStream consumer creation permissions.
  • Allow granular ACLs to restrict or allow filter_subjects configurations similar to filter_subject.

Use case

This feature is critical for setups where external clients should be restricted to subscribing only to specific subjects based on their ID or other identifying patterns, ensuring unauthorized access to other subjects is fully blocked.
This enhancement would greatly benefit users relying on precise access controls in multi-tenant environments.

@mmack mmack added the proposal Enhancement idea or proposal label Nov 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
proposal Enhancement idea or proposal
Projects
None yet
Development

No branches or pull requests

1 participant