The best tools to manage Kafka ACLs fall into three groups: declarative GitOps tools that keep ACLs in version control (Terraform’s Kafka provider, Strimzi’s User Operator, kafka-gitops, Julie Ops), self-service portals that put an approval step in front of each ACL request (Klaw), and central security managers that replace ACLs with their own policies (Apache Ranger, OPA). Kafka UIs sit alongside all three for viewing and editing ACLs directly.
Underneath every one of them sits the same thing: Kafka’s authorizer and the kafka-acls.sh tool that ships with Apache Kafka. The Kafka ACL page covers the syntax and the copy-paste commands. It sits under Kafka stream governance, and the complete Kafka guide holds the wider picture. This page is for the point where running those commands by hand stops scaling and you need to pick a tool.
At a glance
Thirteen options are scored here on this page's five weighted criteria, 90 points in all. The rubric is weighted: Auditability counts three times, Visibility counts three times, and Pattern handling, Automation and Drift and source of truth count once. The five listed first, of thirteen, each out of 90: Kpow 68, which takes its best score on Visibility (10 out of 10) and its lowest on Drift and source of truth (1 out of 10); Klaw 63, License: Apache 2.0; Apache Ranger 63; kafka-gitops 54; Julie Ops 54.
GitOps and declarative infrastructure as code
kafka-gitops
54 out of 90 Total
- Group
- GitOps
- Latest release
- 0.2.15, February 2021
- Auditability ×3 weight, this criterion counts 3 times toward the total
- 8 out of 10
- Pattern handling
- 7 out of 10
- Automation
- 9 out of 10
- Drift and source of truth
- 5 out of 10
- Visibility ×3 weight, this criterion counts 3 times toward the total
- 3 out of 10
Why these scores for kafka-gitops
- Auditability 8 out of 10
- This page’s table records “Strong. Git history”.
- Pattern handling 7 out of 10
- Pattern handling is “Good”.
- Automation 9 out of 10
- It is “Strong. Derives service ACLs”, and criterion 3 says “The strongest tools derive the ACLs from a description of the service.”
- Drift and source of truth 5 out of 10
- The comparison table on this page gives “Plan shows drift”, seen when a plan runs, as with Terraform.
- Visibility 3 out of 10
- Visibility is “Weak”.
What it is: a desired-state tool for topics and ACLs.
Strengths: you describe services, and it generates the ACLs each type needs, with its README saying there is “no need to manually create a bunch of ACLs for Kafka Connect, Kafka Streams, etc.” It produces a plan before applying, much like Terraform.
Weaknesses: the last release was 0.2.15 in February 2021.
Source: kafka-gitops.
Staying patched: kafka-gitops is Apache-2.0, last released 0.2.15 in February 2021 and last pushed in April 2023. Nothing in it is being patched.
Rank 5 Julie Ops
54 out of 90 Total
- Group
- GitOps
- Formerly
- Kafka Topology Builder
- Status
- In hibernation, per its README
- Auditability ×3 weight, this criterion counts 3 times toward the total
- 8 out of 10
- Pattern handling
- 7 out of 10
- Automation
- 9 out of 10
- Drift and source of truth
- 5 out of 10
- Visibility ×3 weight, this criterion counts 3 times toward the total
- 3 out of 10
Why these scores for Julie Ops
- Auditability 8 out of 10
- The page’s own prose names a documented pull-request change process, and this page’s table calls it “Strong. Git history”.
- Pattern handling 7 out of 10
- The comparison table on this page rates it “Good”.
- Automation 9 out of 10
- It is “Strong. Derives ACLs for many app types”, and criterion 3 names derivation as the strongest approach.
- Drift and source of truth 5 out of 10
- Drift is “On next run”.
- Visibility 3 out of 10
- It scores “Weak” on visibility.
What it is: formerly Kafka Topology Builder, a GitOps CLI for topics, ACLs, Confluent RBAC bindings and schemas.
Strengths: automatic ACLs for consumers, producers, Connect, Kafka Streams and ksqlDB applications, topic naming conventions, and a documented pull-request change process.
Weaknesses: the maintainer’s own README describes the project as in “hibernation” and asks users to “take the project with care”.
Source: Julie Ops.
Staying patched: JulieOps is MIT, last released v4.4.1 in October 2022 and last pushed in June 2024, with no CVE filed against its own code. There is no release coming to carry a dependency fix.
Kafka Security Manager
53 out of 90 Total
- Group
- GitOps
- Latest release
- v1.0.1, January 2022
- Auditability ×3 weight, this criterion counts 3 times toward the total
- 8 out of 10
- Pattern handling
- 7 out of 10
- Automation
- 3 out of 10
- Drift and source of truth
- 10 out of 10
- Visibility ×3 weight, this criterion counts 3 times toward the total
- 3 out of 10
Why these scores for Kafka Security Manager
- Auditability 8 out of 10
- It is “Strong. Source repo history”.
- Pattern handling 7 out of 10
- It scores “Good” on pattern handling.
- Automation 3 out of 10
- Automation is “Weak”.
- Drift and source of truth 10 out of 10
- The page’s own prose says CLI-added ACLs “would be reverted by KSM within 10 seconds”, “the strongest drift answer in this list”.
- Visibility 3 out of 10
- Visibility is “Weak”.
What it is: an open-source controller, sponsored by Conduktor, that treats an external source such as a Git repository as the truth for ACLs.
Strengths: its README says ACLs added with the CLI “would be reverted by KSM within 10 seconds”, which is the strongest drift answer in this list.
Weaknesses: the last release was v1.0.1 in January 2022 and parts of its documentation still describe ZooKeeper as the ACL store.
Source: the project’s GitHub README.
Staying patched: Kafka Security Manager is MIT, last released v1.0.1 in January 2022 and last pushed in February 2024. Nothing in it is being patched.
Rank 7 Strimzi User Operator
52 out of 90 Total
- Group
- GitOps
- Requires
- Kafka on Kubernetes under Strimzi
- Auditability ×3 weight, this criterion counts 3 times toward the total
- 8 out of 10
- Pattern handling
- 7 out of 10
- Automation
- 5 out of 10
- Drift and source of truth
- 7 out of 10
- Visibility ×3 weight, this criterion counts 3 times toward the total
- 3 out of 10
Why these scores for Strimzi User Operator
- Auditability 8 out of 10
- Auditability is “Strong. Git history of KafkaUser resources”.
- Pattern handling 7 out of 10
- It is rated “Good. Literal and prefix in resource rules”.
- Automation 5 out of 10
- It scores “Partial. Rules per user” on automation.
- Drift and source of truth 7 out of 10
- This page’s table records “Operator reconciles its own users”, which is continuous but only for users it manages, so it sits below KSM, which the page calls the strongest.
- Visibility 3 out of 10
- Its visibility is “Weak”.
What it is: part of the Strimzi operator for Kafka on Kubernetes. Each KafkaUser resource carries its ACL rules, and with simple authorization the operator manages them through the Kafka Admin API.
Strengths: ACLs live next to the user’s credentials as Kubernetes resources, so GitOps tooling such as Argo CD or Flux applies them, and Strimzi rejects ACL rules if ACL management is not enabled for the cluster’s authorization type.
Weaknesses: it assumes Kafka on Kubernetes under Strimzi.
Source: Strimzi deploying guide, configuring user authorization.
Staying patched: Strimzi is community-maintained under the CNCF and it answers the patching question better than most vendors do. Thirty-eight releases in two years, six published CVEs, each with a coordinated-disclosure advisory, and on the last three batches the fixed release shipped the same day the advisory was published: 0.49.1 in December 2025, 0.50.1 in February 2026 and 1.0.1 in June 2026. Open source is not the risk here. The absence of a contract is, and Strimzi shows how little that has cost so far.
Terraform with the Kafka provider
50 out of 90 Total
- Group
- GitOps
- License
- MIT
- Latest release
- v0.13.1, September 2025
- Auditability ×3 weight, this criterion counts 3 times toward the total
- 8 out of 10
- Pattern handling
- 7 out of 10
- Automation
- 5 out of 10
- Drift and source of truth
- 5 out of 10
- Visibility ×3 weight, this criterion counts 3 times toward the total
- 3 out of 10
Why these scores for Terraform with the Kafka provider
- Auditability 8 out of 10
- It is rated “Strong. Pull requests and plans”, and the page’s own prose says “the pull request is the audit trail”.
- Pattern handling 7 out of 10
- The comparison table on this page rates it “Good. Pattern type on each kafka_acl resource”.
- Automation 5 out of 10
- Automation is “Partial. One resource per ACL”, with no derivation of service ACL sets.
- Drift and source of truth 5 out of 10
- An outside change only shows up the next time someone runs a plan, which this page’s table calls “Detected at the next plan”.
- Visibility 3 out of 10
- Visibility is “Weak. State file, not a view”.
What it is: Mongey/terraform-provider-kafka, MIT licensed, latest release v0.13.1 (September 2025), with a kafka_acl resource alongside kafka_topic.
Strengths: if your company already runs Terraform, ACLs join the same plan, review and apply flow as the rest of your infrastructure, and the pull request is the audit trail.
Weaknesses: it manages the ACLs you declare, one resource per ACL, with no derivation of service ACL sets, and a change made outside Terraform only shows up the next time someone runs a plan.
Source: terraform-provider-kafka.
Staying patched: The Mongey Terraform Kafka provider is MIT. The repository was last pushed in August 2026 but it has not cut a release in 367 days, since v0.13.1 in September 2025, so anything fixed on its main branch is not in the provider you download.
Rank 12 kafka-acls.sh and the Admin API (the baseline)
26 out of 90 Total
- Group
- Baseline
- Ships with
- Apache Kafka
- Auditability ×3 weight, this criterion counts 3 times toward the total
- 2 out of 10
- Pattern handling
- 8 out of 10
- Automation
- 3 out of 10
- Drift and source of truth
- 0 out of 10
- Visibility ×3 weight, this criterion counts 3 times toward the total
- 3 out of 10
Why these scores for kafka-acls.sh and the Admin API (the baseline)
- Auditability 2 out of 10
- It scores “Weak. Nothing beyond shell history and broker logs”, and criterion 1 says a tool that writes ACLs straight to the cluster and keeps no record fails for an auditor.
- Pattern handling 8 out of 10
- Pattern handling is “Strong. Literal and prefixed, plus match for listing”.
- Automation 3 out of 10
- Automation is “Weak. --producer and --consumer flags only”.
- Drift and source of truth 0 out of 10
- Drift is “None”, and the page’s own prose says “no drift detection”.
- Visibility 3 out of 10
- The comparison table on this page gives “Weak. You compose the query”, the exact case criterion 5 describes.
What it is: the CLI in every Kafka distribution’s bin directory, and the Admin API it calls.
Strengths: complete, supports literal and prefixed patterns, --producer and --consumer convenience flags, no extra system to run.
Weaknesses: no record of who ran what beyond your shell history, no drift detection, and the list semantics above catch people out.
Source: Apache Kafka authorization and ACLs.
Self-service portals and governance workflows
Rank 2 63 out of 90 Total
- Group
- Self-service portal
- License
- Apache 2.0
- Latest release
- v2.10.6, September 2026
- Auditability ×3 weight, this criterion counts 3 times toward the total
- 8 out of 10
- Pattern handling
- 7 out of 10
- Automation
- 5 out of 10
- Drift and source of truth
- 6 out of 10
- Visibility ×3 weight, this criterion counts 3 times toward the total
- 7 out of 10
Why these scores for Klaw
- Auditability 8 out of 10
- Every ACL create or delete is a request someone approves, which this page’s table calls “Strong. Request and approval trail”.
- Pattern handling 7 out of 10
- Pattern handling is “Good. Literal and prefixed subscriptions”.
- Automation 5 out of 10
- Automation is “Partial. Per request”.
- Drift and source of truth 6 out of 10
- It gives a “Reconciliation report by email”, and direct CLI changes need that report to surface, so it detects drift automatically but does not revert it.
- Visibility 7 out of 10
- Visibility is “Good. Per-team ACL views and reports”.
What it is: an open-source, Apache 2.0 self-service portal for topics, ACLs, schemas and connectors, maintained under the Aiven-Open GitHub organisation, latest release v2.10.6 in September 2026.
Strengths: every ACL create or delete is a request that someone approves, service accounts are assigned to the requesting team, roles can come from Active Directory, and it reconciles its records against the cluster and emails the differences. Of every tool here it is the most direct answer to “stop engineers messaging the platform team for access”.
Weaknesses: it governs requests made through Klaw, so direct CLI changes still need the reconciliation report to surface.
Source: Klaw.
Staying patched: Klaw is Apache-2.0 under Aiven, with a published security policy and the patch record to match it. Three CVEs, and the fix shipped the same day for CVE-2026-25999 in February 2026 and the next day for the two published in May 2026. Seven releases in two years, most recently v2.10.6 in September 2026. Community-maintained is not the same as unmaintained, and this is the end of that range where it shows.
Rank 13 Conduktor Console
conduktor.io
49 out of 90 Total
- Group
- Self-service portal
- Type
- Commercial Kafka console
- ACL ownership
- The application that owns the topic
- Auditability ×3 weight, this criterion counts 3 times toward the total
- 8 out of 10
- Pattern handling
- 2 out of 10
- Automation
- 5 out of 10
- Drift and source of truth
- 3 out of 10
- Visibility ×3 weight, this criterion counts 3 times toward the total
- 5 out of 10
Why these scores for Conduktor Console
- Auditability 8 out of 10
- The page’s own prose says cross-team access requests are approved by the owning application team and every change goes into Git, which is the request trail plus Git history this page’s table calls Strong for Klaw.
- Pattern handling 2 out of 10
- The page states no literal or prefixed pattern support for Conduktor, so this is scored low on absent evidence rather than on a documented limit.
- Automation 5 out of 10
- ACLs are granted per access request against an owning application, the same per-request model this page’s table scores Partial for Klaw, and the page names no derivation of service ACL sets.
- Drift and source of truth 3 out of 10
- Every change goes into Git, which gives a baseline, but the page names no drift detection or reconciliation for a change made outside the console.
- Visibility 5 out of 10
- Applications own their topics and ACLs, so ACLs are visible per application, and the page describes no per-principal or per-topic ACL view of the kind criterion 5 asks for.
What it is: a commercial Kafka console. Conduktor’s documentation, Self-service concepts page, describes applications that own topics and ACLs, and cross-team access requests approved by the owning application team rather than the platform team, with every change going into Git.
Weaknesses on this rubric: it is a commercial platform with its own ownership model to adopt.
Source: Conduktor’s documentation.
Centralized enterprise security managers
Rank 3 Apache Ranger
63 out of 90 Total
- Group
- Central security manager
- Model
- Replaces Kafka ACLs
- Auditability ×3 weight, this criterion counts 3 times toward the total
- 8 out of 10
- Pattern handling
- 8 out of 10
- Automation
- 5 out of 10
- Drift and source of truth
- 5 out of 10
- Visibility ×3 weight, this criterion counts 3 times toward the total
- 7 out of 10
Why these scores for Apache Ranger
- Auditability 8 out of 10
- It is “Strong. Central audit”, and the page’s own prose describes central audit of access decisions.
- Pattern handling 8 out of 10
- Pattern handling is “Strong. Its own policy model”.
- Automation 5 out of 10
- It scores “Partial” on automation.
- Drift and source of truth 5 out of 10
- Drift is “Not applicable”, and the page’s summary says “Ranger and OPA replace ACLs and so change the question entirely”, so the page does not rate it and this is a neutral mid score.
- Visibility 7 out of 10
- Visibility is “Good. Policy console”.
What it is: an Apache framework for central security policy and auditing across a data platform, with a Kafka plugin that implements Kafka’s Authorizer interface.
Strengths: one policy console for Kafka, HDFS, Hive and the rest, role and attribute-based policies, and central audit of access decisions. If your organisation already runs Ranger, putting Kafka under it is the cleanest way to match Kafka permissions to the rest of the data stack.
Weaknesses: Ranger policies replace Kafka ACLs rather than managing them, so ACL-based tools and scripts stop describing what is enforced.
Sources: Apache Ranger, Ranger Kafka plugin source.
Staying patched: Apache Ranger is Apache-2.0 and actively developed, with a published security policy, and it carries the exposure of a large, long-lived project: an NVD keyword search returns 36 CVEs across its history. It publishes tags rather than GitHub releases, so the build you run is one you cut and patch yourself.
Rank 9 Open Policy Agent
45 out of 90 Total
- Group
- Central security manager
- Model
- Replaces Kafka ACLs
- Latest plugin release
- v1.5.1, March 2023
- Auditability ×3 weight, this criterion counts 3 times toward the total
- 5 out of 10
- Pattern handling
- 8 out of 10
- Automation
- 8 out of 10
- Drift and source of truth
- 5 out of 10
- Visibility ×3 weight, this criterion counts 3 times toward the total
- 3 out of 10
Why these scores for Open Policy Agent
- Auditability 5 out of 10
- Auditability “Depends on policy repo and OPA logs”, so it is possible, with work the reader sets up.
- Pattern handling 8 out of 10
- Pattern handling is “Strong. Anything Rego expresses”.
- Automation 8 out of 10
- It is “Strong for rule-based access”, and the page’s own prose describes one rule rather than an ACL per service, which is not derivation from a service description, so it sits below kafka-gitops and Julie Ops.
- Drift and source of truth 5 out of 10
- The page’s summary says “Ranger and OPA replace ACLs and so change the question entirely” and this page’s table gives “Not applicable”, so the page does not rate it and this is a neutral mid score.
- Visibility 3 out of 10
- It scores “Weak” on visibility.
What it is: a broker authorizer plugin that sends each decision to an OPA policy.
Strengths: policy as code in Rego, so a rule such as “services may only write to topics under their own prefix” is one rule rather than an ACL per service.
Weaknesses: the plugin’s last release was v1.5.1 in March 2023, it needs OPA running beside every broker, and like Ranger it replaces ACLs rather than managing them.
Source: opa-kafka-plugin.
Staying patched: Open Policy Agent is Apache-2.0, actively maintained, with a published security policy and three repository advisories, most recently CVE-2025-46569 in May 2025, a high-severity Rego injection through the Data API path. The project has produced its own fixes, but nobody is contracted to produce the next one.
Kafka UIs for ACL management
Rank 1 Kpow
68 out of 90 Total
Try Kpow in the live demo No signup needed.
- Group
- Kafka UI
- ACL views
- Principals, hosts, resources and controls
- ACL actions
- Create, clone and delete
- Auditability ×3 weight, this criterion counts 3 times toward the total
- 8 out of 10
- Pattern handling
- 8 out of 10
- Automation
- 5 out of 10
- Drift and source of truth
- 1 out of 10
- Visibility ×3 weight, this criterion counts 3 times toward the total
- 10 out of 10
Why these scores for Kpow
- Auditability 8 out of 10
- It is “Strong. Every ACL create, clone and delete in the audit log”.
- Pattern handling 8 out of 10
- It covers the “Full Kafka ACL surface”, which the page’s own prose calls “the full surface area of Kafka broker ACL management”.
- Automation 5 out of 10
- Automation is “Partial. Clone a principal’s ACLs to another”, which sits below the tools that derive ACLs.
- Drift and source of truth 1 out of 10
- Drift is “None. Reads the cluster live”, and the page’s own prose says “no drift detection or desired-state model”, while the page says to keep “a UI or a regular diff” for changes made outside the repository, so it shows drift but does not detect it.
- Visibility 10 out of 10
- It is the only “Strong” in the visibility column, with four tables plus per-topic and per-group ACL tabs, and criterion 5 quotes NORD/LB on Kpow.
Kpow’s position is that ACLs for services belong in whatever infrastructure-as-code you already run, and that the job of a UI is to show what is really on the cluster, change it safely when you have to, and record every change. Toby Roger, on Factor House’s team, describes the division of labour the same way: Terraform-style config and schema tooling are solved elsewhere, and Kpow’s job is the data access layer.
Strengths: the ACL management screens break a cluster’s ACLs into four tables, principals, hosts, resources and controls, and the Topics and Consumers pages have their own ACL tabs filtered to that topic or group. You can create an ACL, delete at the control, resource, host or principal level, or clone every ACL for one principal to another, which is how you onboard a second instance of a service without retyping its rules. Every create, clone and delete is written to the audit log, the layer compared in Kafka audit logging tools. Who may edit ACLs in Kpow is itself a Kpow RBAC decision, through the ACL_EDIT action, so you can let a platform team manage ACLs while application teams only view them.
Weaknesses: it has no drift detection or desired-state model, so it does not replace Terraform, Strimzi or kafka-gitops as a source of truth. It manages Kafka ACLs, not Confluent’s RBAC role bindings, which Tom confirmed is a backlog item rather than a shipped feature.
Source: Kpow ACL docs.
Staying patched: Kpow’s release notes name the CVEs each release remediates, and the 96.4 image built on 5 August 2026 bundles 311 dependencies of which one carries a high or critical advisory, none of them published before that release. That is not a claim to patch faster than a community project: Kpow’s own dependency remediation has run from 14 to 128 days, and the current image still ships CVE-2026-75595 in netty, a 9.1 critical public since 19 August 2026, unpatched. What a licence buys here is not a different deployment model, because Kpow is self-hosted too. It is a company contracted to ship the fix. Every dependency figure on this page was read on 24 September 2026 from the published artefacts and from nvd.nist.gov.
Compare Kpow vs AKHQKpow vs Kafbat UI
Rank 10 Kafbat UI
45 out of 90 Total
- Group
- Kafka UI
- License
- Apache 2.0
- ACL access
- View and edit
- Auditability ×3 weight, this criterion counts 3 times toward the total
- 6 out of 10
- Pattern handling
- 5 out of 10
- Automation
- 0 out of 10
- Drift and source of truth
- 1 out of 10
- Visibility ×3 weight, this criterion counts 3 times toward the total
- 7 out of 10
Why these scores for Kafbat UI
- Auditability 6 out of 10
- It has an “Audit log to a topic or console”, and the page does not say it records approvals, so it sits below the Strong entries.
- Pattern handling 5 out of 10
- It is “View and edit”, and the page does not state prefixed-pattern support.
- Automation 0 out of 10
- It has “None” for automation.
- Drift and source of truth 1 out of 10
- The page says to keep “a UI or a regular diff” for changes made outside the repository, and drift is “None”, so it shows drift but does not detect it.
- Visibility 7 out of 10
- Visibility is “Good”.
Open source, Apache 2.0. Its RBAC model includes view and edit permissions for ACLs.
Source: Kafbat UI RBAC.
Staying patched: Kafbat UI released v1.5.0 in April 2026 and has not shipped since. In the 157 days since, at least 20 high or critical advisories have been published against libraries that release bundles, including the same netty critical CVE-2026-75595 that the current Kpow image carries. Only 150 of its 266 bundled jars resolved to a Maven coordinate, so that count is a floor and the state of the release itself is unmeasured. Kafbat does publish a security policy, which AKHQ and Kafdrop do not, and the one CVE filed against its own code, CVE-2025-49127, was already fixed in the release that preceded the advisory. Six releases in two years.
Rank 11 AKHQ
27 out of 90 Total
- Group
- Kafka UI
- License
- Apache 2.0
- ACL access
- Read only
- Auditability ×3 weight, this criterion counts 3 times toward the total
- 1 out of 10
- Pattern handling
- 2 out of 10
- Automation
- 0 out of 10
- Drift and source of truth
- 1 out of 10
- Visibility ×3 weight, this criterion counts 3 times toward the total
- 7 out of 10
Why these scores for AKHQ
- Auditability 1 out of 10
- Auditability is “Opt-in audit to a topic, not for ACLs”.
- Pattern handling 2 out of 10
- It is “Read only” and shows ACLs but does not create or delete them, so it expresses no patterns of its own.
- Automation 0 out of 10
- Automation is “None”.
- Drift and source of truth 1 out of 10
- Drift is “None”, and the page says to keep “a UI or a regular diff” for changes made outside the repository, so it shows drift but does not detect it.
- Visibility 7 out of 10
- Visibility is “Good for reading”.
Open source, Apache 2.0. Its role model includes an ACL resource with read access only, so AKHQ shows ACLs but does not create or delete them.
Source: AKHQ groups and roles.
Staying patched: AKHQ has no CVE filed against its own code, and that is the wrong number to plan against. Release 0.28.0, cut on 6 August 2026, bundles 270 libraries and 18 of them carry a high or critical advisory. Sixteen were already public, with fixed versions already on Maven Central, on the day it shipped, and five are netty advisories Kpow had remediated three weeks earlier in 96.2: CVE-2026-44249, CVE-2026-45416, CVE-2026-45674, CVE-2026-47691 and CVE-2026-50010. The oldest has been open 108 days. That is exposure and remediation latency rather than a working attack, and every figure resolves against the published jar and nvd.nist.gov. Four releases in two years, and no security policy at any path GitHub reads.
Tools compared
| Rank | Tool | Auditability | Pattern handling | Automation | Drift | Visibility | Source |
|---|---|---|---|---|---|---|---|
| 1 | Kpow | Strong. Every ACL create, clone and delete in the audit log | Full Kafka ACL surface | Partial. Clone a principal's ACLs to another | None. Reads the cluster live | Strong. Principals, hosts, resources and controls tables, plus per-topic and per-group ACL tabs | Kpow ACL docs |
| 2 | Klaw | Strong. Request and approval trail | Good. Literal and prefixed subscriptions | Partial. Per request | Reconciliation report by email | Good. Per-team ACL views and reports | GitHub |
| 3 | Apache Ranger | Strong. Central audit | Strong. Its own policy model | Partial | Not applicable. Ranger is the enforcement | Good. Policy console | ranger.apache.org |
| 4 | kafka-gitops | Strong. Git history | Good | Strong. Derives service ACLs | Plan shows drift | Weak | GitHub |
| 5 | Julie Ops | Strong. Git history | Good | Strong. Derives ACLs for many app types | On next run | Weak | GitHub |
| 6 | Kafka Security Manager | Strong. Source repo history | Good | Weak | Strong. Reverts within 10 seconds | Weak | Project README |
| 7 | Strimzi User Operator | Strong. Git history of KafkaUser resources |
Good. Literal and prefix in resource rules | Partial. Rules per user | Operator reconciles its own users | Weak | Strimzi docs |
| 8 | OPA plugin | Depends on policy repo and OPA logs | Strong. Anything Rego expresses | Strong for rule-based access | Not applicable | Weak | GitHub |
| 9 | Terraform Kafka provider | Strong. Pull requests and plans | Good. Pattern type on each kafka_acl resource |
Partial. One resource per ACL | Detected at the next plan | Weak. State file, not a view | GitHub |
| 10 | Kafbat UI | Audit log to a topic or console | View and edit | None | None | Good | Kafbat docs |
| 11 | kafka-acls.sh | Weak. Nothing beyond shell history and broker logs | Strong. Literal and prefixed, plus match for listing |
Weak. --producer and --consumer flags only |
None | Weak. You compose the query | Apache Kafka docs |
| 12 | AKHQ | Opt-in audit to a topic, not for ACLs | Read only | None | None | Good for reading | AKHQ docs |
| 13 | Conduktor Console | Strong. Cross-team access requests approved by the owning application team, with every change going into Git | Not stated for ACL patterns | Partial. Per access request against the owning application | Git holds the baseline. No drift detection stated | Per application. No per-principal or per-topic ACL view stated | Conduktor's documentation, Self-service concepts page |
No tool wins every column, and the gaps line up by group. GitOps tools are strongest on auditability and automation and weakest on visibility. UIs are the reverse. Ranger and OPA replace ACLs and so change the question entirely. Most platform teams end up with a GitOps tool as the source of truth for service ACLs and a UI for seeing what is actually in force.
How Factor House approaches it
Kpow’s position is that ACLs for services belong in whatever infrastructure-as-code you already run, and that the job of a UI is to show what is really on the cluster, change it safely when you have to, and record every change. Toby Roger, on Factor House’s team, describes the division of labour the same way: Terraform-style config and schema tooling are solved elsewhere, and Kpow’s job is the data access layer.
In practice, the ACL management screens break a cluster’s ACLs into four tables, principals, hosts, resources and controls, and the Topics and Consumers pages have their own ACL tabs filtered to that topic or group. You can create an ACL, delete at the control, resource, host or principal level, or clone every ACL for one principal to another, which is how you onboard a second instance of a service without retyping its rules. Every create, clone and delete is written to the audit log, the layer compared in Kafka audit logging tools. Tom summed up the coverage for Factor House’s own sales team as “the full surface area of Kafka broker ACL management”.
Who may edit ACLs in Kpow is itself a Kpow RBAC decision, through the ACL_EDIT action, so you can let a platform team manage ACLs while application teams only view them. The effect of this, as NORD/LB described it, was separating people from service identities: “In production, we really want to narrow what people can see, and with Kpow’s two-step authorization, we could finally enforce that.”
Kpow does not win on every point. It has no drift detection or desired-state model, so it does not replace Terraform, Strimzi or kafka-gitops as a source of truth. It manages Kafka ACLs, not Confluent’s RBAC role bindings, which Tom confirmed is a backlog item rather than a shipped feature. For how RBAC and tenancy let many teams share clusters, see Kpow multi-tenancy.
To judge the visibility criterion for yourself, open the Kpow demo and explore a live cluster’s topic, consumer group and broker screens, where the ACL tabs described above sit, before pointing Kpow at your own cluster.
Kpow live demo
See Kafka ACLs and user roles apart
Explore Kpow in a live environment, then weigh how its role-based permissions for people sit alongside the ACLs your services use.
For platform and security teams who have to show who can do what.
Try the Kpow demoFAQ
What is the best free tool to manage Kafka ACLs?
For a source of truth, the Terraform Kafka provider or Strimzi’s User Operator, depending on whether you run Terraform or Kubernetes. For an approval workflow, Klaw. kafka-acls.sh remains the baseline every tool builds on.
Should Kafka ACLs be managed with GitOps?
For service principals, yes. A pull request gives you review and an audit trail, and a desired-state tool can derive the ACL set a Streams or Connect application needs. Keep a UI or a regular diff for the changes made outside the repository during incidents.
How do I avoid thousands of Kafka ACLs?
Use prefixed resource patterns, name topics so one prefix maps to one owning team, and grant ACLs to service principals rather than individuals. Where rules get more complex than prefixes, Apache Ranger or an OPA policy can replace per-ACL entries with one rule.
Can Kpow manage ACLs on Confluent Cloud?
Kpow manages Kafka ACLs on any cluster its credentials can administer. It does not manage Confluent’s RBAC role bindings.
How these tools were scored
A data platform team looking for an ACL tool is usually solving three problems at once: proving who granted access and why, handling prefixed rules so the ACL count does not explode, and automating the separate ACL sets that producers, consumers and stream processors each need. Those three are the first three criteria. The last two come from what goes wrong after the tool is in place.
1. Auditability. Can you answer “who granted write on this topic, when, and who approved it” without reading broker logs? Git history, an audit log or a request trail all count. A tool that writes ACLs straight to the cluster and keeps no record fails this for an auditor even if it works perfectly.
2. Pattern handling. Kafka supports literal and prefixed resource patterns, added in KIP-290, so one ACL can cover every topic starting with payments.:
kafka-acls.sh --bootstrap-server localhost:9092 --add \
--allow-principal User:Jane --producer \
--topic payments. --resource-pattern-type prefixed
A tool that can only express literal ACLs will push you towards thousands of entries. The Apache Kafka documentation also warns that listing ACLs for a topic returns only exact matches unless you ask for --resource-pattern-type match, which is how people miss the prefixed rule that is actually granting access.
3. Automation. A Kafka Streams application needs a different set of ACLs from a plain consumer, and writing each set by hand is where mistakes creep in. The strongest tools derive the ACLs from a description of the service. ACLs deserve the same treatment as broker config, which in the Kafka operational issues talk Chad Harris described as version-controlled and applied through CI where you can.
4. Drift and source of truth. What happens when someone adds an ACL with the CLI during an incident? In the same talk he pointed out that teams running GitOps still keep a break-glass path for emergency changes, and those changes do not always make it back into the repository. His advice for config applies here too: diff what is running against your baseline after every incident. Some tools detect or revert drift, most ignore it.
5. Visibility. Can an engineer see which ACLs actually apply to a principal or a topic, without composing a --list query? This is the criterion people underrate until the first “why can’t my service read this topic” ticket. The German bank NORD/LB put it directly in its case study with Factor House: “If you want to check if your SSL certificate is authorized to access a topic and so on, it’s really nice to just have it displayed in Kpow.”
One more distinction runs through all five. Kafka ACLs authorize principals on the connection to the broker, which usually means services. People logging in to a tool are a separate identity problem. Tom Crowley, Factor House’s founding engineer, draws the line clearly when customers ask how Kpow relates to ACLs: “Kpow does not use Kafka ACLs to authorize a user’s request, instead we use our RBAC permissions to authorize requests”, while ACLs are “assigned to Kpow’s AdminClient connection, determining how Kpow is authorized when making Kafka AdminClient calls”. Keep machine ACLs and human roles in separate models and both stay manageable. The human side has its own comparisons: Kafka RBAC tools for role models and Kafka SSO tools for getting identities into them.
Every option is scored from 0 to 10 on each criterion, from the evidence and sources this page cites, and the reason for each score is on its card. The criteria are weighted: Auditability counts three times, Pattern handling counts once, Automation counts once, Drift and source of truth counts once and Visibility counts three times, for a total out of 90. Auditability and Visibility count three times here, because an ACL change nobody can see and nobody can trace is the failure this page exists to prevent. Pattern handling, automation and drift and source of truth each count once: they decide how much typing the job takes, not whether you can answer for it afterwards. This page is published by Factor House, which makes Kpow. Every option is scored on the same rubric and the same sources: Kpow's per-criterion scores are set the same way as every other option's and are not adjusted, and the weights apply to every option alike. Kpow ranks first on its total of 68 out of 90. The other options follow by total. Conduktor Console is listed last whatever its total; on its total of 49 it would place ninth.