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.
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.
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 serPREFIXED
con el valorlogs-
, lo que significa que la ACL se aplica a todos los temas cuyos nombres empiecen porlogs-
. Si RP no coincide con un recurso específico R, R no tiene ACL asociadas.
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.
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
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.