Manually managing Kafka topics and ACLs is error-prone, time-consuming, and not scalable.

💡 What if you could declaratively define all your Kafka resources and permissions, just like code?

Introducing Kafka-ACL-Manager — a lightweight Java tool that brings infrastructure-as-code principles to your Kafka access management.

👉 GitHub: github.com/severinmbekou/Kafka-ACL-Manager


⚙️ What does it do?

Kafka-ACL-Manager lets you:

✅ Create or update Kafka topics from a YAML file
✅ Apply fine-grained ACLs to topics based on declarative permissions
✅ Delete obsolete topics and ACLs not present in the configuration
✅ Generate detailed logs for each execution
✅ Externalize sensitive config via .properties and environment variables


🔧 How to Use It

 java -jar kafka-acl-manager.jar \
--config=conf/admin-client.properties \
--resources=conf/kafka-resources.yml
admin-client.properties: Kafka client and security config (bootstrap servers, SASL, etc.)

 

kafka-resources.yml: declarative definition of topics and ACL

📦 Ideal For:

  • CI/CD pipelines that provision Kafka environments

  • DevSecOps & Platform Engineering teams

  • Automating Kafka onboarding and access control

  • Avoiding CLI/manual drift across environments


  • topics:
    - name: example-topic
    partitions: 3
    replicationFactor: 2

    acls:
    - topic: example-topic
    permissions:
    - principal: User:alice
    operation: READ
    permission: ALLOW
    - principal: User:bob
    operation: WRITE
    permission: ALLOW

    🧠 Why it matters?

    Managing Kafka security manually is outdated. Kafka-ACL-Manager helps you adopt declarative access control and automated topic governance.


    📍 Project & Contributions

    GitHub → https://github.com/severinmbekou/Kafka-ACL-Manager
    ⭐ If you find it useful, star the repo and share your feedback. PRs are welcome!