Comment utiliser Redis ACL

Comment utiliser Redis ACL
ACL ou la liste de contrôle d'accès est une fonctionnalité de sécurité dans Redis qui vous permet de limiter et de contrôler la connexion au serveur Redis. Par exemple, vous pouvez spécifier les clés et les commandes qu'une connexion client peut effectuer à l'aide de la fonction ACL.

Dans ce tutoriel, nous explorerons comment utiliser les fonctionnalités ACL dans Redis pour améliorer la sécurité du serveur Redis.

Comment ça marche?

Vous commencez par définir les utilisateurs dans l'ACL. Une fois qu'un client se connecte à la CLI Redis, il doit s'authentifier à l'aide d'un nom d'utilisateur et d'un mot de passe spécifié dans la liste de contrôle d'accès.

Après une authentification réussie, Redis associe cette connexion avec l'utilisateur et attribue l'autorisation définie à cette connexion.

Par exemple, si un client authentifie avec un utilisateur avec une autorisation de vue uniquement, la connexion héritera des autorisations de l'utilisateur.

Remarque: la fonction ACL est uniquement disponible dans Redis 6.0 et plus.

Commande Redis Auth

Dans la nouvelle version de Redis, nous utilisons la commande AUTH suivie du nom d'utilisateur et du mot de passe.

Si seul le mot de passe est fourni, Redis s'authentifie automatiquement en tant qu'utilisateur par défaut.

Redis configure ACL

Redis est livré avec un utilisateur par défaut, appelé défaut dans l'ACL. Vous pouvez afficher cela à l'aide de la commande ACL List:

127.0.0.1: 6379> Liste de la LCA

1) "utilisateur défaut sur # 5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A11EF721D1542D8 ~ * + @tous"

La sortie de la commande de liste ACL suit un modèle spécifique. Laissez-nous le décomposer:

  1. La première partie est l'utilisateur de mots clés.
  2. Ensuite, le nom d'utilisateur de l'utilisateur dans la liste ACL
  3. La troisième partie est le mot-clé «ON», qui définit les clés d'accès de l'utilisateur.
  4. La quatrième partie est le mot de passe haché au format SHA256. Si aucun mot de passe n'est défini, la valeur est définie sur Nopass
  5. Le dernier mais non le moindre est la liste des clés à laquelle l'utilisateur peut accéder. Dans notre cas, ce sont toutes les clés, d'où (~ *).
  6. Enfin, est les commandes que l'utilisateur peut exécuter. Dans notre exemple, ce sont toutes des commandes.

Règles de la LCA

Redis a une vaste liste de règles ACL que vous pouvez utiliser. Tout d'abord, cependant, énumérons certains essentiels.

  1. ON - cela permet à l'utilisateur spécifié. Par conséquent, les clients sont autorisés à s'autoriser avec ce nom d'utilisateur et ce mot de passe.
  2. OFF - désactive l'utilisateur spécifié. Aucun client ne peut accéder à l'auth avec ce nom d'utilisateur ou ce mot de passe.
  3. + - Ajoute une commande à la liste des commandes qu'un utilisateur peut exécuter. Chaque commande est séparée avec un tuyau. Par exemple, si l'utilisateur peut s'exécuter et obtenir, nous pouvons faire + set | Get
  4. - - Supprime une commande de la liste des commandes autorisées. De même, séparez chaque commande avec un tuyau. Exemple -
  5. @all ou allcommands - permet à l'utilisateur d'exécuter toutes les commandes du serveur.
  6. ~ - ajoute un modèle au type de clés à laquelle un utilisateur peut accéder. Par exemple, ~ * spécifie toutes les clés.
  7. > - Ajoute le mot de passe spécifié à la liste des mots de passe que l'utilisateur peut authentifier.
  8. < - Opposite of above.
  9. ResetPass -Délectez la liste des mots de passe autorisés.
  10. NOPASS - Laissez l'utilisateur se connecter sans mot de passe.

Redis configurer les utilisateurs ACL

Pour ajouter un utilisateur à la liste ACL, utilisez la commande ACL SetUser. La commande prend le nom d'utilisateur et la liste des règles à s'appliquer à l'utilisateur spécifié.

Un exemple est comme indiqué ci-dessous:

127.0.0.1: 6379> ACL SetUser Linuxhint
D'ACCORD

La commande ajoutera un utilisateur avec le nom d'utilisateur spécifié.

Vous pouvez consulter les utilisateurs dans la liste ACL comme:

127.0.0.1: 6379> Liste de la LCA

1) "Par défaut utilisateur sur ~ * + @ all"

2) "User LinuxHint off - @ all"

Notez que l'utilisateur «LinuxHint» est désactivé par défaut et ne peut exécuter aucune commande ou accéder aux touches.

Redis créera un nouvel utilisateur avec les moins de privilèges possibles.

Nous pouvons exécuter la commande ci-dessous pour activer l'utilisateur et définir un mot de passe.

127.0.0.1: 6379> ACL SetUser LinuxHint sur> Mot de passe
D'ACCORD

Dans la commande ci-dessus, nous activons l'utilisateur en définissant la valeur sur ON et en ajoutant un mot de passe comme> mot de passe.

Pour ajouter des commandes à l'utilisateur, nous pouvons faire:

127.0.0.1: 6379> ACL SetUser Linuxhint + Set | Get | Del
D'ACCORD

Cela devrait ajouter quelques commandes à l'utilisateur de Linuxhint.

Cependant, l'utilisateur ne peut accéder à aucune clé. Nous pouvons permettre à l'utilisateur d'accéder à toutes les clés comme indiqué dans la commande ci-dessous:

127.0.0.1: 6379> ACL SetUser Linuxhint ~ *
D'ACCORD

Gardez à l'esprit que les noms d'utilisateur sont sensibles à la casse.

Nous pouvons désormais répertorier les utilisateurs dans ACL comme:

1) "Par défaut utilisateur sur ~ * + @ all"

2) «User LinuxHint sur ~ * - @ all + set | get | del»

Redis décrivez l'utilisateur

Pour obtenir des informations descriptives d'un utilisateur ACL, exécutez la commande ACL GetUser suivie du nom d'utilisateur cible.

127.0.0.1: 6379> ACL GetUser Linuxhint

1) "Flags"

2) 1) «ON»

2) "Allkeys"

3) «Mots de passe»

4) 1) «5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A11EF721D1542D8»

5) «Commandes»

6) «- @ all + set | get | del»

7) "Clés"

8) 1) «*»

ACL générer un mot de passe

Si vous ne souhaitez pas générer de mot de passe pour votre utilisateur, vous pouvez utiliser la commande ACL GenPass.

Un exemple est comme indiqué:

127.0.0.1: 6379> ACL Genpass
"1AC9687481067647AD39A959AB90F172D9C25EA7265CACDF06C711257125F18B"

La commande ci-dessus doit renvoyer un hachage de mot de passe aléatoire.

Conclusion

C'était un article distillé décrivant la fonction Redis ACL. Nous avons couvert comment activer et utiliser ACL dans Redis, ajouter des utilisateurs, définir des règles ACL, etc.

Nous vous recommandons fortement de vérifier la documentation pour en savoir plus.

Merci d'avoir lu, à la prochaine fois.