Introdução
Um painel de suporte usa Redis para armazenar um ticket e seu resultado processado em cache. Você manterá esse fluxo funcionando enquanto cria uma conta limitada aos próprios dados.
Redis armazena valores com nomes chamados chaves. Uma chave de cache é um nome de dado, não uma senha. Este laboratório usa tickets sintéticos e Redis real numa rede de treinamento isolada. Basta o uso básico do terminal, sem experiência com Redis ou programação. Client e Cache Server abrem contêineres separados que compartilham o kernel da instância. Dashboard mostra requisições reais, não uma pontuação de segurança.
Processar um ticket de suporte
Nesta etapa, você estabelecerá o funcionamento normal da aplicação. Redis é o servidor: guarda valores nomeados e responde a requisições. O painel é um cliente: solicita um ticket, processa e grava o resultado. Um cache é um armazenamento conveniente usado por uma aplicação; os valores de treinamento são sintéticos. A entrada é armazenada em support:ticket e a saída processada em support:result.
Abra Dashboard. A página mostra input e result. Inicialmente a entrada é Ticket 104: password reset e o resultado está vazio. Clique uma vez em Process ticket. O resultado passa a Processed: Ticket 104: password reset. Recarregar lê novamente o valor armazenado. É uma leitura real seguida de uma escrita.
A página também mostra username: default. O nome de usuário identifica a conta Redis, separada da chave de cache. A aplicação usa a conta padrão disponível automaticamente sem senha. O resultado de negócio comprova disponibilidade, mas não revela quais outros dados a conta alcança.
Se aparecer um erro de conexão, recarregue uma vez. Uma página de erro não equivale a uma negação de permissão. Mantenha ambas as abas de terminal abertas e use seus nomes para reconhecer onde está trabalhando.
Comparar acesso útil e excessivo
Nesta etapa, você lerá e gravará um valor descartável e verá por que o acesso padrão é amplo demais. Use Client. O terminal preparado está no contêiner da aplicação. redis-cli é o cliente de linha de comando do Redis. -h cache-server seleciona o servidor pelo nome da rede privada; aqui localhost indicaria o próprio contêiner cliente.
GET lê uma chave. Leia a entrada do painel:
redis-cli -h cache-server GET support:ticket
A resposta contém Ticket 104: password reset. Os dois-pontos fazem parte do nome. O prefixo support: agrupa os dados desta aplicação.
SET grava um valor. Use a chave de prática descartável demo:note para preservar a entrada de negócio:
redis-cli -h cache-server SET demo:note practice
OK indica que a escrita funcionou. Leia o valor:
redis-cli -h cache-server GET demo:note
A resposta é practice. Agora leia um valor financeiro sintético sem relação com a tarefa:
redis-cli -h cache-server GET finance:payroll
Você recebe Private payroll: synthetic. O painel não tem motivo de negócio para ler salários. Autenticação determina quem conecta; autorização decide quais comandos e chaves podem ser usados. A conta padrão permite essa leitura alheia e comandos administrativos desnecessários.
Criar uma conta de aplicação limitada
Nesta etapa, você dará a uma conta nomeada somente as operações e a família de chaves necessárias. Mude para Cache Server. cache-admin é um auxiliar preparado que executa o redis-cli real com uma conta de manutenção separada. Ele serve à administração, não à identidade da aplicação.
Uma lista de controle de acesso, ACL, atribui regras de comandos e chaves a cada conta. O painel precisa de GET e SET em support:*. O asterisco representa qualquer sufixo após support:; esse padrão simples de prefixo não é uma expressão regular.
ACL SETUSER cria ou altera a conta. reset limpa regras anteriores, on habilita autenticação, >... fornece a senha, ~... o padrão de chaves e +get +set permite apenas esses comandos. Aspas simples protegem > e * do shell, que poderia redirecionar saída ou expandir nomes de arquivo. Execute:
cache-admin ACL SETUSER dashboard reset on '>Dash-Lab-42' '~support:*' +get +set
Espere OK. A senha Dash-Lab-42 autentica a conta; não é uma chave de dados Redis. As credenciais de treinamento são exemplos locais, não segredos de produção.
Volte a Client. --user seleciona a conta e --askpass solicita a senha sem incluí-la na linha de comando. Digite Dash-Lab-42 em cada solicitação; os caracteres podem ficar ocultos:
redis-cli -h cache-server --user dashboard --askpass GET support:ticket
O ticket continua legível. Teste a chave alheia por outra conexão nova:
redis-cli -h cache-server --user dashboard --askpass GET finance:payroll
Espere NOPERM: a autenticação funcionou, mas a chave é proibida. WRONGPASS indica nome ou senha incorretos; corrija e repita. Erro de conexão significa serviço inacessível, não restrição bem-sucedida. Se houver erro na ACL, repita o comando completo com reset e os valores corretos em Cache Server.
Salvar a ACL ativa
Nesta etapa, você persistirá a conta para manter as permissões numa futura inicialização. Uma mudança de ACL em memória vale imediatamente, mas não atualiza automaticamente o arquivo configurado. Use Cache Server:
cache-admin ACL SAVE
Espere OK. Redis grava os usuários ativos em /data/users.acl, o arquivo ACL usado pelo servidor. cat mostra um arquivo; examine as regras salvas:
cat /data/users.acl
A linha de dashboard contém ~support:*, -@all, +get e +set; a ordem pode variar. -@all começa negando todas as categorias de comandos. Um valor iniciado por # é o hash Redis da senha, não a senha original.
Compare a conta ativa:
cache-admin ACL GETUSER dashboard
Procure a mesma família de chaves e permissões. Editar um arquivo não utilizado não mudaria a conta em execução. ACL SAVE persiste as regras realmente ativas.
A entrada padrão continua habilitada neste laboratório. Criar uma conta melhor não muda aplicações existentes nem retira a via antiga. O próximo laboratório começa num estado independente e ensina essas alterações. Nunca coloque credenciais de manutenção na aplicação.
Resumo
Você processou um ticket real, distinguiu chaves de dados de senhas, comparou acessos legítimos e excessivos e criou e salvou uma conta limitada a GET/SET em support:*. A via padrão antiga ainda precisa ser retirada após a mudança da aplicação.


