Powiązany wpis: Od Kafka ACL do Confluent RBAC: bezpieczna ścieżka migracji z nowym narzędziem open-source przeprowadza przez to, dlaczego migracja z ACL do RBAC jest trudniejsza, niż się wydaje, oraz przez krok po kroku opisany przepływ.
Dlaczego
Przyjęcie Confluent RBAC na istniejącym klastrze Kafka oznacza przetłumaczenie każdego natywnego ACL na równoważne powiązanie roli — a te dwa modele nie odwzorowują się jeden-do-jednego. Wykonywane ręcznie jest to powolne, łatwe o subtelne pomyłki i trudne do udowodnienia jako poprawne po fakcie.
monedula-acl-rbac-converter czyni tę migrację mechaniczną i możliwą do przejrzenia.
Odczytuje ACL skądkolwiek się znajdują — z działającego klastra, wyeksportowanego
zrzutu kafka-acls.sh --list, JSON/YAML/CSV, manifestów Strimzi KafkaUser lub
Confluent for Kubernetes, działającego klastra Kubernetes albo starego skryptu
instalacyjnego pełnego poleceń kafka-acls --add — i tworzy plan powiązań ról
Confluent RBAC, w którym każdy krok jest audytowalny.
Jak to działa
Przepływ produkcyjny jest jawny i podzielony na kroki, więc każdy etap tworzy artefakty, które można przejrzeć, wersjonować lub dołączyć do wniosku o zmianę:
extract -> plan -> apply (dry-run) -> apply -> verify -> delete-acls
Wspierane są dwa modele operacyjne, w zależności od tego, jak wiele chcesz, by narzędzie ruszało:
- Bezpośredni (MDS) — stosuj powiązania ról prosto w Metadata Service Confluent. Krok apply jest idempotentny: istniejące powiązania są pomijane.
- Tylko artefakty — emituj skrypty Confluent CLI, manifesty Confluent for
Kubernetes lub polecenia
mds-curldla własnego potoku GitOps / kontroli zmian, by je zastosował, tak aby nic się nie zmieniało bez potoku, który to uruchomi.
Bezpieczeństwo jest tu sednem: plany są opatrywane sumą kontrolną, efektywny dostęp
jest weryfikowany po zastosowaniu (nowe powiązania naprawdę przyznają to, co dawały
stare ACL), a usuwanie źródłowych ACL jest oparte na skryptach — narzędzie generuje
delete-acls.sh oraz rollback.sh, dzięki czemu człowiek rozważnie przegląda i
uruchamia porządkowanie.
Konfiguracja
Konwersję dostraja się trzema opcjonalnymi plikami YAML: scopes.yaml (identyfikatory
klastrów Confluent, na które nakierowane są powiązania), rules.yaml (niestandardowe
nadpisania mapowania) oraz principals.yaml (remapowanie principali). ACL typu DENY
nie mają równoważnika w RBAC, więc nie są po cichu konwertowane — są zgłaszane i
obsługiwane osobno.