Artículo complementario: De las ACL de Kafka al RBAC de Confluent: una ruta de migración segura con una nueva herramienta de código abierto explica por qué la migración de ACL a RBAC es más difícil de lo que parece, y el flujo de trabajo paso a paso.
Por qué
Adoptar el RBAC de Confluent en un clúster de Kafka existente significa traducir cada ACL nativa en un role binding equivalente, y los dos modelos no se mapean uno a uno. Hecho a mano, es lento, fácil de equivocarse de forma sutil y difícil de demostrar correcto después.
monedula-acl-rbac-converter hace que esa migración sea mecánica y revisable.
Lee las ACL desde donde estén —un clúster en vivo, un volcado exportado de
kafka-acls.sh --list, JSON/YAML/CSV, manifiestos KafkaUser de Strimzi o de
Confluent for Kubernetes, un clúster de Kubernetes en ejecución, o un script de
configuración antiguo lleno de comandos kafka-acls --add— y produce un plan de
role bindings RBAC de Confluent, con cada paso auditable.
Cómo funciona
El flujo de producción es explícito y por pasos, de modo que cada etapa produce artefactos que puedes revisar, versionar o adjuntar a una solicitud de cambio:
extract -> plan -> apply (dry-run) -> apply -> verify -> delete-acls
Se admiten dos modelos operativos, según cuánto quieras que la herramienta intervenga:
- Directo (MDS): aplica los role bindings directamente al Metadata Service de Confluent. El paso de aplicación es idempotente: los bindings existentes se omiten.
- Solo artefactos: emite scripts de la CLI de Confluent, manifiestos de
Confluent for Kubernetes o comandos
mds-curlpara que los aplique tu propia canalización de GitOps / control de cambios, de modo que nada cambia sin que una canalización lo ejecute.
La seguridad es el objetivo: los planes llevan checksum, el acceso efectivo se
verifica tras la aplicación (los nuevos bindings realmente otorgan lo que las
ACL antiguas otorgaban) y la eliminación de las ACL de origen se basa en
scripts: la herramienta genera delete-acls.sh más un rollback.sh, de modo
que una persona revisa y ejecuta la limpieza de forma deliberada.
Configurar
La conversión se ajusta con tres archivos YAML opcionales: scopes.yaml (los
IDs de los clústeres de Confluent a los que apuntan los bindings), rules.yaml
(anulaciones de mapeo personalizadas) y principals.yaml (remapeo de
principals). Las ACL DENY no tienen equivalente en RBAC, por lo que no se
convierten en silencio: se reportan y se gestionan por separado.