monedula-gitops
GitOps dla Apache Kafki: tematy, dostęp, limity, schematy, użytkownicy SCRAM i Confluent RBAC, z CLI albo z operatora Kubernetesa.
Ta strona została przetłumaczona maszynowo z języka angielskiego. Przeczytaj oryginał
monedula-acl-rbac-converter v0.10.0, AGPL-3.0
monedula-acl-rbac-converter odczytuje twoje ACL Kafki, gdziekolwiek się znajdują, planuje równoważne powiązania ról Confluent RBAC, stosuje je i pyta MDS, czy każde pierwotne uprawnienie nadal obowiązuje. Dopiero wtedy zapisuje skrypt, który usuwa stare ACL.
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
Fragment plan.json z examples/text-dump/expected/ w repozytorium.
ACL i RBAC nie odwzorowują się jeden do jednego.
Przeniesienie istniejącego klastra na Confluent RBAC oznacza zamianę każdego ACL na powiązanie roli. Niektórych ACL, na przykład reguł DENY, w ogóle nie należy konwertować, inne nie pasują do żadnej reguły mapowania, a powiązanie może zostać zastosowane bez błędów i mimo to niczego nie przyznawać. Przy pracy ręcznej każdy z tych przypadków kończy się cichym błędem.
extract Odczytaj ACL z dowolnego z dziewięciu źródeł do kanonicznego pliku acls.json.
plan Zmapuj je na powiązania ról regułami domyślnymi, które możesz nadpisać; przeczytaj report.txt.
apply Utwórz powiązania w MDS. Bez --confirm nic się nie zmienia.
verify Zapytaj MDS, czy każde pierwotne uprawnienie jest nadal dozwolone.
delete-acls Wygeneruj skrypt usuwania wraz ze skryptem wycofania i uruchom go samodzielnie.
verify pyta MDS dla każdego źródłowego ACL, czy pierwotny principal, operacja i zasób są teraz rzeczywiście dozwolone, a nie tylko, czy istnieje wiersz powiązania. Niezgodny identyfikator klastra daje powiązania, które stosują się bez błędów i nie przyznają niczego. Właśnie to wyłapuje ta kontrola.
monedula-acl-rbac verify \
--plan runs/2026-05-21T10-00-00Z/plan.json \
--mds-url https://mds.example.com \
--mds-token-file ~/.confluent/token Zakres nigdy nie jest poszerzany: ACL z prefiksem na Topic:foo* staje się powiązaniem na Topic:foo*, nigdy uprawnieniem na cały klaster. Plany mają sumy kontrolne, a nieaktualny lub edytowany plan jest odrzucany, dopóki nie zwalidujesz go ponownie.
bindingsunmappedrejectedDaj narzędziu dostęp do MDS, a samo zastosuje i zweryfikuje powiązania. Albo zostaw poświadczenia MDS tam, gdzie są: wyemituj plan jako skrypt Confluent CLI, manifesty CFK ConfluentRolebinding lub polecenia curl do MDS i pozwól, by zastosował je twój pipeline, a później uruchom verify z hosta z dostępem do MDS. Na szybki rzut oka convert wykonuje extract, plan i emit w jednym wywołaniu.
Wybór ścieżki (po angielsku)
monedula-acl-rbac convert \
--from yaml \
--input acls.yaml \
--scopes scopes.yaml \
--rules rules.yaml \
--principals principals.yaml \
> bindings.sh Każdy przebieg trzyma w jednym katalogu migawkę wejścia, efektywne reguły, plan, logi i skrypty wycofania, wraz z zapisem, z jakiego źródła poświadczeń skorzystano. Dwa przebiegi apply nie mogą wejść sobie w drogę w tym samym katalogu.
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 Archiwa wydań dla Linuksa, macOS i Windows, z plikiem sum kontrolnych podpisanym przez cosign i z SBOM, są na stronie wydań. Więcej: instalacja i weryfikacja wydania (po angielsku).
apply nigdy nie usuwa źródłowych ACL, a delete-acls zapisuje skrypt kafka-acls --remove wraz ze skryptem wycofania, które sam przeglądasz i uruchamiasz. Skrypt obejmuje tylko ACL, które przeszły verify; jeśli żaden nie przeszedł, delete-acls kończy się błędem. Więcej: usuwanie skonwertowanych ACL (po angielsku).delete-deny-acls generuje skrypt, który przy uruchomieniu ponownie sprawdza efektywne uprawnienia dla każdego ACL, a reguł DENY z principalem wieloznacznym narzędzie nigdy nie usunie. Więcej: usuwanie ACL typu DENY (po angielsku).Możemy pomóc ci korzystać z monedula-acl-rbac-converter w dużym środowisku, od projektu po codzienną eksploatację.
PorozmawiajmyWięcej darmowych narzędzi dla Apache Kafki od tego samego zespołu. Czym jest Flock
GitOps dla Apache Kafki: tematy, dostęp, limity, schematy, użytkownicy SCRAM i Confluent RBAC, z CLI albo z operatora Kubernetesa.
Wtyczka Kafka MetricsReporter, która wysyła metryki brokera, JVM i klientów KIP-714 przez OTLP; przestój collectora nigdy nie blokuje Kafki.
CLI w Go tylko do odczytu, które zamienia prawdziwy klaster Kafki w link do Kafka Simulator, który można udostępnić, z serwerem MCP dla agentów AI.
Interaktywny, deterministyczny symulator Apache Kafki w przeglądarce: zepsuj klaster, przewiń oś czasu i przeczytaj, dlaczego zareagował.