Configuration des listes de contrôle d'accès Kafka
Les listes de contrôle d'accès (ACL) Kafka sont utilisées pour indiquer les droits d'accès aux ressources de cluster dans Streaming avec Apache Kafka.
- Principal
- Utilisateur ou application authentifié par le cluster Kafka. Le format du nom du principal dépend du type de mécanisme d'authentification utilisé, tel que SASL/SCRAM ou mTLS.
- Opérations
- Action exécutée sur une ressource de cluster Kafka, telle que la création, la suppression, la production ou l'utilisation.
- Ressources
- Ressource de cluster Kafka, telle que le cluster, le broker, le groupe de broker ou le sujet. Si aucune liste de contrôle d'accès n'est associée à une ressource, seul un superutilisateur peut accéder à la ressource.
Les ACL Kafka contrôlent le principal qui peut effectuer des opérations sur les ressources. Si vous créez des listes de contrôle d'accès allow
et deny
sur une ressource, les listes de contrôle d'accès deny
sont prioritaires sur les listes de contrôle d'accès allow
.
Pour configurer une liste de contrôle d'accès pour un cluster, procédez comme suit :
Activer l'autorisateur
Dans Apache Kafka, l'autorisateur est un composant qui applique les listes de contrôle d'accès (ACL) et s'assure que seuls les utilisateurs ou clients autorisés effectuent les actions définies dans les ACL.
config_name.properties
pour le cluster avec les informations suivantes :
authorizer.class.name=kafka.security.authorizer.AclAuthorizer
Création de la liste de contrôle d'accès Kafka
Pour ajouter, enlever ou répertorier des listes de contrôle d'accès dans un cluster, utilisez l'interface de ligne de commande de l'autorisateur Apache Kafka.
Les règles d'accès dans les listes de contrôle d'accès Apache Kafka sont créées au format suivant :
Principal P is [Allowed/Denied] Operation O From Host H on any Resource R matching ResourcePattern RP
Ici,
- Principal P est l'utilisateur ou le client auquel l'accès est accordé ou refusé.
- Autorisé/Refusé est le droit d'accès défini sur le principal.
- Opération O est l'action sur la ressource, telle que la lecture, l'écriture, la création et la suppression.
- Hôte H est la source de la demande. Le caractère générique
*
est utilisé pour représenter n'importe quel hôte. - Ressource est l'entité Kafka, telle que le sujet ou le cluster.
- ResourcePattern RP est la façon dont la ressource est mise en correspondance. Par exemple,
ResourcePattern RP
peut êtrePREFIXED
avec la valeurlogs-
, ce qui signifie que l'ACL s'applique à tous les sujets dont le nom commence parlogs-
. Si RP ne correspond pas à une ressource spécifique R, alors R n'a aucune liste de contrôle d'accès associée.
logs-
à partir de n'importe quel hôte :
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
Mise à jour de la configuration du cluster
Lorsque vous créez un cluster, un fichier de configuration par défaut est créé pour le cluster. La propriété ACL est définie pour permettre à tous d'accéder aux ressources lorsqu'aucune ACL n'est trouvée pour le cluster.
allow.everyone.if.no.acl.found
par false
pour appliquer un accès de sécurité deny par défaut. Lorsque vous définissez la valeur de cette propriété sur False, seuls les clients ou utilisateurs autorisés dans l'ACL et les superutilisateurs peuvent accéder aux ressources.
allow.everyone.if.no.acl.found=false
true
pour allow.everyone.if.no.acl.found
afin d'autoriser un accès illimité aux ressources sans listes de contrôle d'accès tout en appliquant des listes de contrôle d'accès pour les ressources qui en disposent.