Mudar a aplicação para acesso restrito

RedisBeginner
Pratique Agora

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.