Skip to content

Best tools to manage Kafka ACLs

Comparisons
Chad Harris·September 22, 2026·12 min read·Updated

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

Rank 4

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

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.

Rank 6

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

strimzi.io

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.

Rank 8

Terraform with the Kafka provider

github.com/Mongey

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)

kafka.apache.org

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

ranger.apache.org

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

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

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.

Rank 10

Kafbat UI

ui.docs.kafbat.io

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

akhq.io

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

Kafka ACL management tools scored on the five criteria (read 22 September 2026)
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 demo

FAQ

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.

Related reading