Configuración de ACL de Kafka

Las listas de control de acceso (ACL) de Kafka se utilizan para especificar permisos para los recursos de cluster en Streaming con Apache Kafka.

Principal
Usuario o aplicación autenticada por el cluster de Kafka. El formato de nombre de principal depende del tipo de mecanismo de autenticación utilizado, como SASL/SCRAM o mTLS.
Operaciones
Acción realizada en un recurso de cluster de Kafka, como crear, suprimir, producir o consumir.
Recursos
Un recurso de cluster de Kafka, como el cluster, el broker, el grupo de broker o el tema. Si un recurso no tiene una ACL asociada, solo un superusuario puede acceder al recurso.

Las ACL de Kafka controlan qué principal puede realizar operaciones en los recursos. Si crea ACL allow y deny en un recurso, las ACL deny tienen prioridad sobre las ACL allow.

Complete las siguientes tareas para configurar una ACL para un cluster.

  1. Activar el responsable de autorización
  2. Crear la ACL de Kafka
  3. Actualización de la configuración del cluster

Activar el responsable de autorización

En Apache Kafka, el autorizador es un componente que aplica las listas de control de acceso (ACL) y garantiza que solo los usuarios o clientes autorizados realicen las acciones definidas en las ACL.

Actualice el archivo de configuración config_name.properties para el cluster con la siguiente información:
authorizer.class.name=kafka.security.authorizer.AclAuthorizer

Crear la ACL de Kafka

Para agregar, eliminar o mostrar las ACL de un cluster, utilice la CLI del autorizador de Apache Kafka.

Las reglas de acceso en las ACL de Apache Kafka se crean con el siguiente formato:

Principal P is [Allowed/Denied] Operation O From Host H on any Resource R matching ResourcePattern RP

Aquí,

  • Principal P es el usuario o cliente al que se otorga o deniega el acceso.
  • Permitido/Denegado es el permiso que se establece en el principal.
  • Operación O es la acción en el recurso, como lectura, escritura, creación y supresión.
  • Host H es el origen que realiza la solicitud. El comodín * se utiliza para representar cualquier host.
  • Recurso R es la entidad de Kafka, como el tema o el cluster.
  • ResourcePattern RP es la manera en que se confronta el recurso. Por ejemplo, ResourcePattern RP podría ser PREFIXED con el valor logs-, lo que significa que la ACL se aplica a todos los temas cuyos nombres empiecen por logs-. Si RP no coincide con un recurso específico R, R no tiene ACL asociadas.
Ejecute el siguiente comando para crear una regla de ACL que permita a un usuario Alice escribir en todos los temas que comiencen con logs- desde cualquier host:
kafka-acls --bootstrap-server <bootstrap-server-url> \
--command-config <config-file-path> \
--add \
--allow-principal User:Alice \
--operation Write \
--topic logs- \
--resource-pattern-type prefixed

Actualización de la configuración del cluster

Al crear un cluster, se crea un archivo de configuración por defecto para el cluster. La propiedad ACL se define para permitir que todos accedan a los recursos cuando no se encuentra ninguna ACL para el cluster.

Cambie la propiedad allow.everyone.if.no.acl.found a false para aplicar un acceso de seguridad de denegación por defecto. Cuando define el valor de esta propiedad en false, solo los clientes o usuarios permitidos en la ACL y los superusuarios pueden acceder a los recursos.
allow.everyone.if.no.acl.found=false
También puede mantener el valor por defecto true para allow.everyone.if.no.acl.found para permitir el acceso sin restricciones a los recursos sin ACL al tiempo que aplica las ACL a los recursos que las tienen.