liveBook · Manning

Access control list

As explained in Apache Kafka in Action

An access control list is a collection of rules specifying which identities may perform operations on protected resources.

An access control list (ACL) defines which authenticated principals may perform specific operations on protected Kafka resources. Apply the least-privilege principle by granting only the permissions each service needs. Kafka’s AclAuthorizer evaluates super-admin status, then matching Deny rules, and finally Allow rules. section 13.2.3

Online-shop permissions

Give the checkout service Write permission on checkout.changelog. Give the payment-processing service Read permission on that topic and on its payment-processor consumer group. Give checkout-analytics permissions on checkout.analytics.* and Read permission on checkout.changelog. An ACL can also restrict access by host and use literal or prefixed resource matching. section 13.2.3

Table 13.2 Kafka ACLs structure

Component

Options

Examples

Principal

<type:name>

User:PriceAnalyticsService

Group:AnalyticsServices

Resource type

Cluster, Topic, Group, TransactionalId, DelegationToken

Topic

Pattern type

Literal, Prefixed

Literal

Resource name

Literal:

products.prices.changelog

Prefixed:

products.prices

Operation

Describe, Create, Delete, Alter, Read, Write, DescribeConfigs, AlterConfigs,ClusterAction, IdempotentWrite

Read

Permission type

Allow, Deny

Allow

Host

<IP Address>, *

*

Use the ACL structure to inspect principals, resource types, resource names, patterns, operations, permission types, and host restrictions. section 13.2.3

Migrating an unsecured cluster requires coordinating authentication changes before creating and enforcing ACLs. Creating rules for every user at once is more reliable than leaving allow.everyone.if.no.acl.found enabled, but it can affect many services simultaneously; review the rules and test on a separate system first. section 13.2.7

How Apache Kafka in Action covers it

How deep it goes
Explains ACL fields, least-privilege examples, evaluation order, and migration trade-offs without detailing implementation commands.
Examples
Uses checkout, payment-processing, and checkout-analytics services with topic, consumer-group, prefix, host, Allow, and Deny examples.
What it assumes
Assumes authenticated Kafka principals and introduces authorization as the next control layer after client identity is established.
What you can do after
Operate/configure Kafka ACLs using least-privilege assignments and plan tested enforcement during an unsecured-cluster migration.
How it connects
Connects authentication, authorization, least privilege, RBAC, Kafka Streams, consumer groups, topics, and secure-cluster migration.

Also explained in

Compare how 8 books explain access control list →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Apache Kafka in Action. The section links point to the parts of the book it draws on.