Les permissions ACL (liste de contrôle d'accès) de Zookeeper sont particulièrement importantes dans les environnements de production, c'est pourquoi ce chapitre fournit une introduction spéciale.

Les permissions ACL peuvent définir des permissions de lecture/écriture associées pour les nœuds afin de garantir la sécurité des données.

les permissions peuvent spécifier différentes portées de permission et différents rôles.

Ligne de commande ACL

  • commande getAcl: Obtenir les informations de permission ACL d'un nœud.
  • commande setAcl: Définir les informations de permission ACL d'un nœud.
  • commande addauth: Saisir les informations d'authentification et d'autorisation. Saisissez le mot de passe en clair lors de l'enregistrement ; il est enregistré sous forme chiffrée.

Composition de l'ACL

L'ACL de Zookeeper se compose de[scheme:id:permissions]pour former la liste des permissions.

  • 1, scheme: Représente le mécanisme de permission adopté, incluant world, auth, digest, ip, super.
  • 2, id: Représente les utilisateurs autorisés à accéder.
  • 3, permissions: Chaîne de combinaison de permissions, composée de cdrwa, où chaque lettre représente une permission différente : permission de création (c), permission de suppression (d), permission de lecture (r), permission d'écriture (w), permission d'administration (a).

Exemple world

Vérifiez les permissions par défaut du nœud, puis mettez à jour la section des permissions du nœud vers crwa. Par conséquent, la suppression du nœud échoue. Ici, world représente des permissions ouvertes.

$ getAcl /example/child
$ setAcl /example/child world:anyone:crwa
$ delete /example/child

Exemple auth

auth est utilisé pour accorder des permissions. Notez que vous devez d'abord créer un utilisateur.

$ setAcl /example/child auth:user1:123456:cdrwa
$ addauth digest user1:123456
$ setAcl /example/child auth:user1:123456:cdrwa
$ getAcl /example/child

Exemple digest

Déconnectez l'utilisateur actuel, reconnectez-vous au terminal. digest peut être utilisé pour la connexion et la vérification du compte/mot de passe.

$ ls /example
$ create /example/child01 example
$ getAcl /example/child01
$ setAcl /example/child01 digest:user1:HYGa7IZRm2PUBFiFFu8xY2pPP/s=:cdra
$ getAcl /example/child01
$ addauth digest user1:123456
$ getAcl /example/child01

Remarque :Le mot de passe chiffré est celui créé à l'étape précédente.

Exemple IP

Restreindre les autorisations d'accès des adresses IP. Après avoir défini les autorisations pour l'adresse IP 192.168.3.7, l'IP 192.168.3.38 n'a plus d'autorisations d'accès.

$ create /example/ip 0
$ getAcl /example/ip
$ setAcl /example/ip ip:192.168.3.7:cdrwa
$ get /example/ip