Page MenuHomePhabricator

Allow TLS authenticated client to write on new topics
Closed, ResolvedPublic

Description

I'd like to add the following ACLs to the new topics used by haproxykafka:

kafka acls --add --allow-principal User:CN=haproxykafka --producer --topic webrequest_frontend_text
kafka acls --add --allow-principal User:CN=haproxykafka --producer --topic webrequest_frontend_upload
kafka acls --add --allow-principal User:CN=haproxykafka --producer --topic webrequest_errors
kafka acls --add --deny-principal User:ANONYMOUS --operation Write --topic webrequest_frontend_text
kafka acls --add --deny-principal User:ANONYMOUS --operation Write --topic webrequest_frontend_upload
kafka acls --add --deny-principal User:ANONYMOUS --operation Write --topic webrequest_frontend_errors

The CN used in haproxykafka certificate is haproxykafka

Event Timeline

Just to make sure, that'd be on kafka-jumbo?

Just to make sure, that'd be on kafka-jumbo?

Yes, haproxykafka will only use kafka-jumbo

Mentioned in SAL (#wikimedia-operations) [2024-11-21T17:39:24Z] <fabfur> adding acls to kafka-jumbo cluster (T380373)

Done from kafka-jumbo1009

This triggered errors on every haproxykafka instance after losing producer access to the configured topics:

Nov 21 17:42:40 cp5031 haproxykafka[3825906]: %5|1732210960.009|PARTCNT|cp5031#producer-1| [thrd:ssl://kafka-jumbo1011.eqiad.wmnet:9093/bootstrap]: Topic webrequest_frontend_upload partition count changed from 1 to 0
Nov 21 17:42:34 cp5020 haproxykafka[1002581]: %5|1732210954.345|PARTCNT|cp5020#producer-1| [thrd:ssl://kafka-jumbo1012.eqiad.wmnet:9093/bootstrap]: Topic webrequest_frontend_text partition count changed from 1 to 0

After those events, all produced messages have been rejected.

Currently haproxykafka doesn't perform mTLS authentication so it's effectively operating with User:ANONYMOUS