En este tutorial, exploraremos cómo usar funciones de ACL en Redis para mejorar la seguridad del servidor Redis.
Como funciona?
Comienza definiendo a los usuarios en el ACL. Una vez que un cliente se conecta a la CLI redis, debe autenticarse utilizando un nombre de usuario y una contraseña especificados en la lista de control de acceso.
Después de una autenticación exitosa, Redis asocia esa conexión con el usuario y asigna el permiso definido a esa conexión.
Por ejemplo, si un cliente se autentica con un usuario con permiso de solo vista, la conexión heredará los permisos del usuario.
Nota: La función de ACL solo está disponible en Redis 6.0 y superior.
Comando de autenticación Redis
En la versión más nueva de Redis, usamos el comando de autenticación seguido del nombre de usuario y la contraseña.
Si solo se suministra la contraseña, Redis se autenticará automáticamente como el usuario predeterminado.
Redis Configurar ACL
Redis viene con un usuario predeterminado, llamado predeterminado en el ACL. Puede ver esto usando el comando de la lista ACL:
127.0.0.1: 6379> Lista de ACL
1) "usuario por defecto en #5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A1EF721D1542D8 ~* +@todo"
La salida del comando de la lista de ACL sigue un patrón específico. Vamos a desglosarlo:
Reglas de ACL
Redis tiene una extensa lista de reglas de LCA que puede usar. Primero, sin embargo, enumeremos algunos esenciales.
Redis Configurar usuarios de ACL
Para agregar un usuario a la lista de ACL, use el comando ACL setUser. El comando toma el nombre de usuario y la lista de reglas que se aplicarán al usuario especificado.
Un ejemplo es como se muestra a continuación:
127.0.0.1: 6379> ACL setUser Linuxhint
DE ACUERDO
El comando agregará un usuario con el nombre de usuario especificado.
Puede consultar a los usuarios en la lista de ACL como:
127.0.0.1: 6379> Lista de ACL
1) "Usuario predeterminado en ~* +@todos"
2) "Usuario Linuxhint Off -@todos"
Tenga en cuenta que el usuario "Linuxhint" está deshabilitado de forma predeterminada y no puede ejecutar comandos ni acceder a ninguna tecla.
Redis creará un nuevo usuario con los menores privilegios posibles.
Podemos ejecutar el comando a continuación para habilitar al usuario y establecer una contraseña.
127.0.0.1: 6379> ACL setUser Linuxhint en> contraseña
DE ACUERDO
En el comando anterior, habilitamos al usuario configurando el valor en ON y agregando una contraseña como> contraseña.
Para agregar comandos al usuario, podemos hacer:
127.0.0.1: 6379> ACL SetUser Linuxhint +Set | Get | Del
DE ACUERDO
Esto debería agregar algunos comandos al usuario de Linuxhint.
Sin embargo, el usuario no puede acceder a ninguna clave. Podemos habilitar al usuario acceder a todas las claves como se muestra en el comando a continuación:
127.0.0.1: 6379> ACL SetUser Linuxhint ~*
DE ACUERDO
Tenga en cuenta que los nombres de usuario son sensibles a los casos.
Ahora podemos enumerar a los usuarios en ACL como:
1) "Usuario predeterminado en ~* +@todos"
2) “Usuario Linuxhint en ~* -@all +set | get | del”
Redis describe al usuario
Para obtener información descriptiva de un usuario de ACL, ejecute el comando ACL getUser seguido del nombre de usuario de destino.
127.0.0.1: 6379> ACL getUser Linuxhint
1) "banderas"
2) 1) "On"
2) "Allkeys"
3) "Contraseñas"
4) 1) “5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A1EF721D1542D8"
5) "Comandos"
6) "-@All +Set | Get | Del"
7) "Llaves"
8) 1) "*"
ACL generar contraseña
Si no desea generar una contraseña para su usuario, puede usar el comando ACL GenPass.
Un ejemplo es como se muestra:
127.0.0.1: 6379> ACL GenPassEl comando anterior debe devolver un hash de contraseña aleatoria.
Conclusión
Este fue un artículo destilado que describe la función de ACL redis. Cubrimos cómo habilitar y usar ACL en Redis, agregar usuarios, establecer reglas de ACL, etc.
Recomendamos encarecidamente verificar la documentación para obtener más información.
Gracias por leer, nos vemos la próxima vez.