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. Mude para a aba 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.
Selecione a aba Dashboard na interface do laboratório para começar esta etapa.
Mude para a aba Client para ler a configuração privada. cat mostra o arquivo. O terminal começa em /workspace, seu diretório de configuração:
Mude para a aba Client antes de executar o comando a seguir.
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. Mude para a aba 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.
Selecione a aba Client na interface do laboratório para começar esta etapa.
Mude para a aba Client antes de executar o comando a seguir.
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. Mude para a aba Dashboard e atualize a página, 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.

Se a página mostrar WRONGPASS, volte à aba Client, corrija as credenciais JSON usando o bloco completo acima, depois mude para a aba Dashboard e tente Process ticket novamente. Para NOPERM, mude para a aba Cache Server e execute cache-admin ACL GETUSER dashboard para examinar o padrão de chaves e os comandos. O comando completo de reset da primeira lição recupera uma conta incorreta. Para JSON malformado, mude para a aba Client e repita o bloco completo de configuração acima; depois volte à aba Dashboard para tentar novamente.
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 a aba Cache Server. A conta de manutenção usada por cache-admin continua ativa, preservando a administração.
Selecione a aba Cache Server na interface do laboratório para começar esta etapa.
ACL SETUSER default off impede novas autenticações como usuário padrão. Salve a mudança ativa no arquivo ACL configurado:
Mude para a aba Cache Server antes de executar o comando a seguir.
cache-admin ACL SETUSER default off
cache-admin ACL SAVE
Ambos retornam OK. Mude para a aba Client e tente uma conexão nova sem credenciais:
Mude para a aba Client antes de executar o comando a seguir.
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.
Mude para a aba Dashboard, atualize a página e clique em Process ticket. A conta nomeada deve continuar funcionando. Se desativou a conta errada, mude para a aba Cache Server para reaplicar sua regra completa correta e salvar 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. Mude para a aba Client e digite Dash-Lab-42 em cada solicitação --askpass.
Selecione a aba Client na interface do laboratório para começar esta etapa.
Mude para a aba Client antes de executar o comando a seguir.
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. Mude para a aba Cache Server. Mostre as ACLs ativas e o arquivo salvo:
Mude para a aba Cache Server antes de executar o comando a seguir.
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. Mude para a aba Dashboard e clique novamente em Process ticket. 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.



