Introdução
O painel tem uma conta restrita preparada, mas ainda conecta pela conta padrão ampla do Redis. Você mudará sua configuração e retirará essa via antiga preservando o monitor.
Este ambiente independente inclui a conta dashboard da lição anterior. Bastam os comandos Redis e conceitos ACL já ensinados. Cada operação abre uma conexão nova, então a próxima requisição usa a configuração atual.
Estabelecer o estado inicial da aplicação
Nesta etapa, você estabelecerá o funcionamento normal no novo ambiente. Abra Dashboard. A entrada é Ticket 104: password reset, o resultado está vazio e o usuário é default. Clique em Process ticket e confirme Processed: Ticket 104: password reset.
Em Client, leia a configuração privada. cat mostra o arquivo. O terminal começa em /workspace, seu diretório de configuração:
cat app.json
JSON guarda campos nomeados entre chaves. username identifica o usuário Redis e password fornece o segredo de autenticação. Strings ficam entre aspas duplas e vírgulas separam campos. O usuário atual é default e a senha está vazia.
A aplicação relê o arquivo a cada requisição e abre novas conexões Redis. Não é preciso reiniciar ou escrever um cliente. Uma conta monitor separada lê monitor:heartbeat; preserve-a ao mudar a conta padrão. O arquivo contém segredos, por isso é privado e não é servido publicamente.
Mudar a conexão do painel
Nesta etapa, a aplicação usará a conta restrita. Em Client, substitua a configuração de dois campos. cat > app.json redireciona o texto seguinte para o arquivo, sobrescrevendo seu conteúdo. EOF entre aspas inicia um documento embutido; cole todas as linhas, incluindo o EOF final sozinho na linha. As aspas impedem expansão do shell dentro do JSON.
cat > app.json <<'EOF'
{"username":"dashboard","password":"Dash-Lab-42"}
EOF
Só a configuração muda. A conta já tem GET/SET em support:* neste novo estado. Recarregue Dashboard, confira o usuário dashboard e clique novamente em Process ticket. Um resultado da conta antiga não basta: a nova operação comprova leitura e escrita com a conta configurada.
Para WRONGPASS, corrija as credenciais JSON e repita. Para NOPERM, examine padrão e comandos com cache-admin ACL GETUSER dashboard em Cache Server. O comando completo de reset da primeira lição recupera uma conta incorreta. Repita o bloco anterior para corrigir JSON malformado.
Não use maint como atalho: a aplicação precisa de sua própria conta limitada.
Retirar a entrada padrão ampla
Nesta etapa, você desligará a via automática sem desativar contas legítimas. Mude para Cache Server. A conta de manutenção usada por cache-admin continua ativa, preservando a administração.
ACL SETUSER default off impede novas autenticações como usuário padrão. Salve a mudança ativa no arquivo ACL configurado:
cache-admin ACL SETUSER default off
cache-admin ACL SAVE
Ambos retornam OK. Em Client, tente uma conexão nova sem credenciais:
redis-cli -h cache-server GET support:ticket
Espere NOAUTH Authentication required., a negação desejada. Ela difere de NOPERM, que indica falta de permissão de uma conta autenticada. Cada chamada cria uma conexão. Desativar um usuário não garante encerrar sessões já autenticadas; sua revogação está fora deste exercício.
Recarregue Dashboard e clique em Process ticket. A conta nomeada deve continuar funcionando. Se desativou a conta errada, reaplique sua regra completa correta no terminal de manutenção e salve novamente. Não reative a conta padrão ampla para esconder um erro de configuração da aplicação.
Testar segurança e disponibilidade juntas
Nesta etapa, você comparará trabalho permitido, dados proibidos e um comando desnecessário. Use Client e digite Dash-Lab-42 em cada solicitação --askpass.
redis-cli -h cache-server --user dashboard --askpass GET support:result
O resultado processado continua legível. O próximo comando pede deliberadamente dados financeiros alheios:
redis-cli -h cache-server --user dashboard --askpass GET finance:payroll
Espere NOPERM. CONFIG GET lê configurações do servidor; até essa leitura administrativa é desnecessária. O asterisco entre aspas pede todos os nomes e deve chegar inalterado ao Redis:
redis-cli -h cache-server --user dashboard --askpass CONFIG GET '*'
Espere NOPERM por permissão de comando. Agora use a identidade do monitor existente e digite Monitor-Lab-42:
redis-cli -h cache-server --user monitor --askpass GET monitor:heartbeat
Espere healthy. Desativar todas as contas ou parar Redis quebraria este teste positivo e não é reparo. Em Cache Server, mostre as ACLs ativas e o arquivo salvo:
cache-admin ACL LIST
cat /data/users.acl
As entradas salvas devem coincidir com as ativas, incluindo default off. Caso contrário, repita cache-admin ACL SAVE. Termine clicando novamente em Process ticket no Dashboard. Disponibilidade real e negações pertinentes comprovam o resultado; uma página saudável sozinha não prova privilégio mínimo.
Resumo
Você mudou a aplicação real para sua conta Redis limitada, desligou novos acessos padrão, salvou as ACLs e testou requisições proibidas junto com operações legítimas de negócio e monitor. Os testes usam conexões novas e não afirmam revogar sessões existentes.


