Configuration des listes de contrôle d'accès Kafka
Les listes de contrôle d'accès Kafka (ACL) sont utilisées pour spécifier les autorisations nécessaires pour clusteriser des ressources dans le service de flux avec Apache Kafka.
- Principal
- Utilisateur ou application authentifié par la grappe Kafka. Le format du nom principal dépend du type de mécanisme d'authentification utilisé, tel que SASL/SCRAM ou mTLS.
- Opérations
- Action effectuée sur une ressource de grappe Kafka, par exemple créer, supprimer, produire ou consommer.
- Ressources
- Ressource de grappe Kafka, telle que la grappe, le courtier, le groupe de courtiers 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 listes de contrôle d'accès Kafka contrôlent quel principal peut effectuer des opérations sur les ressources. Si vous créez à la fois des listes de contrôle d'accès allow et deny sur une ressource, les listes de contrôle d'accès deny ont préséance sur les listes de contrôle d'accès allow.
Effectuez les tâches suivantes pour configurer une liste de contrôle d'accès pour une grappe.
Activer l'approbateur
Dans Apache Kafka, l'autorisation est un composant qui applique les listes de contrôle d'accès et garantit que seuls les utilisateurs autorisés ou les clients effectuent les actions définies dans les listes de contrôle d'accès.
config_name.properties pour la grappe avec les informations suivantes :
authorizer.class.name=kafka.security.authorizer.AclAuthorizerCréer la liste de contrôle d'accès Kafka
Pour ajouter, supprimer ou lister des listes de contrôle d'accès dans une grappe, vous utilisez l'interface de ligne de commande de l'autorisation Apache Kafka.
Les règles d'accès dans les listes de contrôle d'accès Apache Kafka sont créées dans le 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é.
- Allowed/Denied (Autorisé/Refusé) est l'autorisation définie sur le principal.
- Opération O est l'action sur la ressource, telle que lire, écrire, créer et supprimer.
-
Hôte H est la source qui fait la demande. Le caractère générique
*est utilisé pour représenter tout hôte. - Ressource R est l'entité Kafka, par exemple un sujet ou une grappe.
-
ResourcePattern RP indique comment la ressource est mise en correspondance. Par exemple,
ResourcePattern RPpeut êtrePREFIXEDavec la valeurlogs-, ce qui signifie que la liste de contrôle d'accès s'applique à tous les sujets dont le nom commence parlogs-. Si RP ne correspond pas à une ressource R spécifique, 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
Mettre à jour la configuration de grappe
Lorsque vous créez une grappe, un fichier de configuration par défaut est créé pour la grappe. La propriété de liste de contrôle d'accès est définie pour permettre à tous d'accéder aux ressources lorsqu'aucune liste de contrôle d'accès n'est trouvée pour la grappe.
allow.everyone.if.no.acl.found par false pour appliquer un accès de sécurité refuser par défaut. Lorsque vous réglez la valeur de cette propriété à Faux, seuls les clients ou utilisateurs autorisés dans la liste de contrôle d'accès et les superutilisateurs peuvent accéder aux ressources.
allow.everyone.if.no.acl.found=falsetrue pour allow.everyone.if.no.acl.found pour autoriser l'accès sans restriction aux ressources sans liste de contrôle d'accès tout en appliquant les listes de contrôle d'accès aux ressources qui en disposent.