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:
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.
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 GenpassLa 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.