monedula-gitops
GitOps für Apache Kafka: Topics, Zugriff, Quotas, Schemas, SCRAM-Benutzer und Confluent RBAC, per CLI oder Kubernetes-Operator.
Diese Seite wurde maschinell aus dem Englischen übersetzt. Original lesen
monedula-acl-rbac-converter v0.10.0, AGPL-3.0
monedula-acl-rbac-converter liest Ihre Kafka-ACLs, wo immer sie liegen, plant die entsprechenden Confluent-RBAC-Rollenbindungen, wendet sie an und fragt MDS, ob jede ursprüngliche Berechtigung noch gilt. Erst dann schreibt es das Skript, das die alten ACLs löscht.
go install github.com/monedula-dev/monedula-acl-rbac-converter/cmd/monedula-acl-rbac@latest {
"schema_version": "1",
"bindings": [
{
"id": "rb-b6fac2ae9aa0",
"action": "CREATE",
"principal": "User:svc-analytics",
"role": "DeveloperRead",
"scope": { "kafka_cluster": "lkc-demo-1" },
"resource_patterns": [
{ "resource_type": "Topic", "name": "events.", "pattern_type": "PREFIXED" }
],
"source_acl_ids": [11, 12]
}
]
} RUN=runs/2026-05-21T10-00-00Zmonedula-acl-rbac extract --from text --input acls.txt --out $RUN/acls.jsonmonedula-acl-rbac plan --acls $RUN/acls.json --rules rules.yaml --principals principals.yaml --scopes scopes.yaml --out $RUN/plan.jsonmonedula-acl-rbac auth login --mds-url https://mds.example.commonedula-acl-rbac apply --plan $RUN/plan.json --mds-url https://mds.example.com --confirmmonedula-acl-rbac verify --plan $RUN/plan.json --mds-url https://mds.example.com# exit 0: every source ACL is still allowed; exit 5: some access is missing or unknown
Auszug aus plan.json in examples/text-dump/expected/ im Repository.
ACLs und RBAC lassen sich nicht eins zu eins abbilden.
Einen bestehenden Cluster auf Confluent RBAC umzustellen heißt, jede ACL in eine Rollenbindung zu verwandeln. Manche ACLs, etwa DENY-Regeln, sollten gar nicht konvertiert werden, andere passen zu keiner Abbildungsregel, und ein Binding kann sich sauber anwenden lassen und trotzdem nichts gewähren. Von Hand erledigt, scheitert jeder dieser Fälle stillschweigend.
extractACLs aus einer von neun Quellen in eine kanonische acls.json einlesen.
planDie ACLs mit Standardregeln, die Sie überschreiben können, auf Rollenbindungen abbilden; report.txt lesen.
applyDie Bindings in MDS erstellen. Ohne --confirm ändert sich nichts.
verifyMDS fragen, ob jede ursprüngliche Berechtigung noch erlaubt ist.
delete-aclsDas Löschskript samt Rollback-Skript erzeugen und selbst ausführen.
verify fragt MDS für jede Quell-ACL, ob der ursprüngliche Principal, die Operation und die Ressource jetzt tatsächlich erlaubt sind, nicht nur, ob eine Binding-Zeile existiert. Eine falsche Cluster-ID erzeugt Bindings, die sich sauber anwenden lassen und nichts gewähren; genau das fängt diese Prüfung ab.
monedula-acl-rbac verify \
--plan runs/2026-05-21T10-00-00Z/plan.json \
--mds-url https://mds.example.com \
--mds-token-file ~/.confluent/token Der Geltungsbereich wird nie erweitert: Eine präfixierte ACL auf Topic:foo* wird zu einem Binding auf Topic:foo*, nie zu einer clusterweiten Berechtigung. Pläne tragen Prüfsummen, und ein veralteter oder bearbeiteter Plan wird abgelehnt, bis Sie ihn erneut validieren.
bindingsunmappedrejectedGeben Sie dem Tool MDS-Zugriff, und es wendet die Bindings selbst an und verifiziert sie. Oder lassen Sie die MDS-Credentials, wo sie sind: Geben Sie den Plan als Confluent-CLI-Skript, als CFK-Manifeste ConfluentRolebinding oder als MDS-curl-Befehle aus, lassen Sie Ihre Pipeline sie anwenden, und führen Sie verify später auf einem Host mit MDS-Zugriff aus. Für einen schnellen Blick führt convert extract, plan und emit in einem Aufruf aus.
Einen Weg wählen (auf Englisch)
monedula-acl-rbac convert \
--from yaml \
--input acls.yaml \
--scopes scopes.yaml \
--rules rules.yaml \
--principals principals.yaml \
> bindings.sh Jeder Lauf bewahrt den Eingabe-Snapshot, die wirksamen Regeln, den Plan, die Logs und die Rollback-Skripte in einem Verzeichnis auf, zusammen mit einem Vermerk, welche Credentials-Quelle verwendet wurde. Zwei apply-Läufe können sich im selben Verzeichnis nicht in die Quere kommen.
runs/2026-05-21T10-00-00Z/ acls.json source ACL snapshot plan.json checksummed plan report.txt what maps to what, and why would-apply.log dry-run calls apply.log what was created verify.json effective-access results delete-acls.sh generated, run by you
go install github.com/monedula-dev/monedula-acl-rbac-converter/cmd/monedula-acl-rbac@latest Release-Archive für Linux, macOS und Windows, mit einer per cosign signierten Prüfsummendatei und einer SBOM, liegen auf der Releases-Seite. Siehe Ein Release installieren und verifizieren (auf Englisch).
apply löscht nie Quell-ACLs, und delete-acls schreibt ein kafka-acls --remove-Skript samt Rollback-Skript, die Sie prüfen und ausführen. Das Skript enthält nur ACLs, die verify bestanden haben; hat keine bestanden, bricht delete-acls mit einem Fehler ab. Siehe Konvertierte ACLs löschen (auf Englisch).delete-deny-acls erzeugt ein Skript, das beim Ausführen die effektiven Berechtigungen für jede ACL erneut prüft, und DENYs mit Wildcard-Principal kann das Tool nie entfernen. Siehe DENY-ACLs entfernen (auf Englisch).Wir können Ihnen helfen, monedula-acl-rbac-converter in einer großen Umgebung einzusetzen, vom Design bis zum täglichen Betrieb.
Weitere kostenlose Tools für Apache Kafka vom selben Team. Über Flock
GitOps für Apache Kafka: Topics, Zugriff, Quotas, Schemas, SCRAM-Benutzer und Confluent RBAC, per CLI oder Kubernetes-Operator.
Ein Kafka-MetricsReporter-Plugin, das Broker-, JVM- und KIP-714-Client-Metriken über OTLP liefert; ein Collector-Ausfall blockiert Kafka nie.
Eine nur lesende Go-CLI, die einen echten Kafka-Cluster in einen teilbaren Kafka-Simulator-Link verwandelt, mit MCP-Server für KI-Agenten.
Interaktiver, deterministischer Apache-Kafka-Simulator im Browser: einen Cluster kaputt machen, durch die Zeitleiste spulen und lesen, warum er reagierte.