DBAtlas · Atlas d'exploitation des bases de données

Créer des utilisateurs ACL, tester les permissions et les rendre persistants

RedisSécurité

Commande

# Application user: only app:* keys and channels, dangerous commands excluded:
ACL SETUSER app_rw on >S3cret-Change ~app:* resetchannels &app:* +@read +@write -@dangerous
# Monitoring user: no key access, only specific commands:
ACL SETUSER monitor on >M0n-Secret resetkeys resetchannels -@all +info +ping +client|list +slowlog|get +latency +config|get
# Test permissions without running the command:
ACL DRYRUN app_rw GET app:1001
ACL GETUSER app_rw
ACL LIST
# Make it persistent: ACL SAVE if aclfile is set, otherwise CONFIG REWRITE into redis.conf
ACL SAVE

Ce que fait la commande

Crée des utilisateurs d'application et de supervision autorisés par préfixe de clé, canal pub/sub et catégorie de commandes ; teste avec DRYRUN si une commande est autorisée sans l'exécuter, et écrit les ACL sur disque.

Quand l'utiliser

Lors du passage d'un mot de passe partagé unique (requirepass) à un accès par utilisateur, pour isoler les applications des clés des autres, ou pour créer un compte en lecture seule pour un outil de supervision.

Attention

L'ordre des règles compte : resetchannels supprime toutes les règles &channel données avant lui. -@dangerous bloque aussi des commandes comme KEYS, FLUSHALL, CONFIG et DEBUG ; vérifiez avec DRYRUN les commandes utilisées par l'application. Si l'utilisateur default reste activé avec nopass et +@all, les ACL n'offrent aucune protection ; exécutez ACL SETUSER default off après avoir créé un utilisateur admin. Dans redis-cli, si l'AUTH avec --user/--pass échoue, la connexion continue en tant qu'utilisateur default et la commande s'exécute quand même ; c'est pourquoi il faut utiliser DRYRUN pour les tests de permissions.

Ouvrir dans DBAtlas →

Voir aussi