Kafka provides the ability to exercise granular control over access to objects and operations within the cluster through the use of ACLs. In this hands-on lab, you will have the opportunity to work with ACLs in Kafka by making some changes to an existing cluster in order to provide access to a new user. This will give you a hands-on introduction to the use of ACLs to manage authorization in Kafka.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Add an ACL to Give `kafkauser` Read and Write Access to the `inventory_purchases` Topic
Create the ACL.
kafka-acls --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:kafkauser --operation read --operation write --topic inventory_purchases
Verify that the read access works by consuming from the topic.
kafka-console-consumer --bootstrap-server zoo1:9093 --topic inventory_purchases --from-beginning --consumer.config client-ssl.properties
Verify that the write access works by writing data to the topic.
kafka-console-producer --broker-list zoo1:9093 --topic inventory_purchases --producer.config client-ssl.properties
- Remove All Existing ACLs for the `member_signups` Topic
List the ACLs for the topic.
kafka-acls --authorizer-properties zookeeper.connect=localhost:2181 --topic member_signups --list
Remove the existing ACL for the topic.
kafka-acls --authorizer-properties zookeeper.connect=localhost:2181 --topic member_signups --remove
Verify that you can read from the topic as
kafkauser
.kafka-console-consumer --bootstrap-server zoo1:9093 --topic member_signups --from-beginning --consumer.config client-ssl.properties