Neste tutorial, exploraremos como usar os recursos da ACL no redis para aprimorar a segurança do servidor Redis.
Como funciona?
Você começa definindo usuários no ACL. Depois que um cliente se conecta à CLI Redis, ele deve autenticar usando um nome de usuário e senha especificados na lista de controle de acesso.
Após a autenticação bem -sucedida, Redis associa essa conexão com o usuário e atribui a permissão definida a essa conexão.
Por exemplo, se um cliente autentica com um usuário com permissão somente para visualização, a conexão herdará as permissões desse usuário.
Nota: o recurso ACL está disponível apenas em Redis 6.0 e acima.
Redis Auth Command
Na versão mais recente do Redis, usamos o comando auth seguido pelo nome de usuário e senha.
Se apenas a senha for fornecida, o Redis se autenticará automaticamente como o usuário padrão.
Redis Configure ACL
Redis vem com um usuário padrão, chamado padrão no ACL. Você pode visualizar isso usando o comando ACL List:
127.0.0.1: 6379> Lista da ACL
1) “do utilizador padrão sobre #5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A11EF721D1542D8 ~* +@todos”
A saída do comando da Lista ACL segue um padrão específico. Vamos quebrá -lo:
Regras da ACL
Redis tem uma extensa lista de regras da ACL que você pode usar. Primeiro, no entanto, vamos listar alguns essenciais.
Redis Configure usuários da ACL
Para adicionar um usuário à lista da ACL, use o comando ACL SetUser. O comando leva o nome de usuário e a lista de regras para aplicar ao usuário especificado.
Um exemplo é como mostrado abaixo:
127.0.0.1: 6379> ACL SetUser Linuxhint
OK
O comando adicionará um usuário com o nome de usuário especificado.
Você pode verificar os usuários na lista da ACL como:
127.0.0.1: 6379> Lista da ACL
1) “Padrão do usuário em ~* +@all”
2) “Usuário Linuxhint Off -@All”
Observe que o usuário "Linuxhint" está desativado por padrão e pode executar comandos ou acessar nenhuma chave.
Redis criará um novo usuário com os menos privilégios possíveis.
Podemos executar o comando abaixo para ativar o usuário e definir uma senha.
127.0.0.1: 6379> ACL SetUser Linuxhint na> senha
OK
No comando acima, habilitamos o usuário definindo o valor e adicionando uma senha como> senha.
Para adicionar comandos ao usuário, podemos fazer:
127.0.0.1: 6379> ACL SetUser Linuxhint +Set | Get | Del
OK
Isso deve adicionar alguns comandos ao usuário Linuxhint.
No entanto, o usuário não pode acessar nenhuma chave. Podemos permitir que o usuário acesse todas as teclas, conforme mostrado no comando abaixo:
127.0.0.1: 6379> ACL SetUser Linuxhint ~*
OK
Lembre-se de que os nomes de usuário são sensíveis ao caso.
Agora podemos listar os usuários no ACL como:
1) “Padrão do usuário em ~* +@all”
2) “Usuário linuxhint em ~* -@all +set | get | del”
Redis descreve o usuário
Para obter informações descritivas de um usuário da ACL, execute o comando acl getuser seguido pelo nome de usuário do destino.
127.0.0.1: 6379> ACL GetUser Linuxhint
1) “Bandeiras”
2) 1) “ON”
2) “Allkeys”
3) “Senhas”
4) 1) “5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A11EF721D1542D8”
5) “Comandos”
6) “-@All +Set | Get | Del”
7) “Chaves”
8) 1) “*”
ACL Gere senha
Se você não deseja gerar uma senha para o seu usuário, pode usar o comando ACL GenPass.
Um exemplo é como mostrado:
127.0.0.1: 6379> ACL GenPassO comando acima deve retornar um hash de senha aleatória.
Conclusão
Este foi um artigo destilado descrevendo o recurso Redis ACL. Cobrimos como ativar e usar o ACL em redis, adicionar usuários, definir regras da ACL, etc.
É altamente recomendável verificar a documentação para saber mais.
Obrigado pela leitura, vejo você na próxima vez.