ACL Permissions
Klag requires read-only access. It uses only the Kafka Admin Client API with
DESCRIBE permissions. No write or alter access is ever needed.
Required permissions
Section titled “Required permissions”| Resource | Name | Permission | Operations |
|---|---|---|---|
| CLUSTER | kafka-cluster | DESCRIBE | Health check, list consumer groups. |
| TOPIC | * or prefixed | DESCRIBE | Get partition info and offsets. |
| GROUP | * or prefixed | DESCRIBE | Get group state and committed offsets. |
Self-managed Kafka
Section titled “Self-managed Kafka”# Cluster permissions (required)kafka-acls --bootstrap-server <broker> \ --add --allow-principal User:<klag-user> \ --operation Describe --cluster
# All topicskafka-acls --bootstrap-server <broker> \ --add --allow-principal User:<klag-user> \ --operation Describe --topic '*'
# All consumer groupskafka-acls --bootstrap-server <broker> \ --add --allow-principal User:<klag-user> \ --operation Describe --group '*'# Cluster permissions (required for listConsumerGroups)kafka-acls --bootstrap-server <broker> \ --add --allow-principal User:<klag-user> \ --operation Describe --cluster
# Topics with prefixkafka-acls --bootstrap-server <broker> \ --add --allow-principal User:<klag-user> \ --operation Describe --topic 'myapp-' \ --resource-pattern-type prefixed
# Consumer groups with prefixkafka-acls --bootstrap-server <broker> \ --add --allow-principal User:<klag-user> \ --operation Describe --group 'myapp-' \ --resource-pattern-type prefixedConfluent Cloud
Section titled “Confluent Cloud”Create a service account with the following ACLs using the Confluent CLI.
CLUSTER_ID=<your-cluster-id>SERVICE_ACCOUNT=<service-account-id>
# Cluster permissionsconfluent kafka acl create --allow --service-account $SERVICE_ACCOUNT \ --operations describe --cluster-scope
# All topicsconfluent kafka acl create --allow --service-account $SERVICE_ACCOUNT \ --operations describe --topic '*'
# All consumer groupsconfluent kafka acl create --allow --service-account $SERVICE_ACCOUNT \ --operations describe --consumer-group '*'CLUSTER_ID=<your-cluster-id>SERVICE_ACCOUNT=<service-account-id>
# Cluster permissions (required for listConsumerGroups)confluent kafka acl create --allow --service-account $SERVICE_ACCOUNT \ --operations describe --cluster-scope
# Topics with prefixconfluent kafka acl create --allow --service-account $SERVICE_ACCOUNT \ --operations describe --topic 'myapp-' --prefix
# Consumer groups with prefixconfluent kafka acl create --allow --service-account $SERVICE_ACCOUNT \ --operations describe --consumer-group 'myapp-' --prefix