Insights / Artigos técnicos

Criar um painel operacional protegido com Cloudflare Pages e D1

Um projeto anonimizado que protege a entrada com Cloudflare Access e consulta agregados operacionais do D1 por meio de Pages Functions. Separa a publicação em produção, a interface autenticada e o uso de índices verificados dos itens que não foram testados.

  • Cloudflare Pages
  • Cloudflare D1
  • Security
Criar um painel operacional protegido com Cloudflare Pages e D1
Sumário
  1. Validar uma agregação pela interface e API
  2. Coloque a página e a API atrás do limite de acesso
  3. Separe gravações de agregações somente para leitura
  4. Verifique os índices do D1 com a consulta de agregação
  5. Confira autenticação e exibição após a publicação em produção

Quando as informações operacionais ficam espalhadas entre logs e bancos de dados, pode ser difícil para a equipe conferir o estado atual com segurança. Este exemplo anonimizado explica como verificar acesso, agregação e publicação de um painel. Ele não inclui domínios, contas, conteúdo de publicações nem números operacionais reais.

Validar uma agregação pela interface e API

Comece com uma contagem por período e compare com dados de teste conhecidos. Diferencie períodos vazios de falhas de consulta e teste acesso direto à API antes e depois da autenticação. Amplie as agregações após verificar o plano de consulta desse filtro.

Cloudflare D1:Verificar índices conforme as condições da consulta

Coloque a página e a API atrás do limite de acesso

Ocultar uma página estática do Cloudflare Pages não basta se a API de dados ainda puder ser chamada diretamente. Inclua a interface e a API no limite do Cloudflare Access para que somente a equipe operacional possa ler os dados. Como procedimento de verificação, teste a página e a API antes e depois da autenticação. Neste caso, foram confirmados em produção o limite de autenticação da página e a exibição de dados na interface após o login dedicado. O registro disponível não confirma uma chamada direta sem autenticação ao endpoint da API; essa continua sendo uma verificação de aceitação separada. Não coloque segredos de autenticação no código do navegador.

Proteger a página e a API O acesso direto não autenticado à API não foi testado. As verificações cobriram um único ambiente operacional.
  1. Painel autenticado Após autenticação no Access, o operador consulta agregados protegidos.
  2. API somente leitura Leia o D1 dentro do mesmo limite. O bloqueio de acesso direto não autenticado à URL da API não foi verificado.

Separe gravações de agregações somente para leitura

Um endpoint GET do Pages Functions consulta o D1 e reúne em uma resposta as contagens por hora, o estado recente do processamento e o modo de execução. Limite a própria API do painel a operações somente de leitura; não dependa de ocultar um botão na interface. Defina o período, o fuso horário e o significado de estados confirmados e pendentes para não somar contagens diferentes. Mostre valores ausentes ou não resolvidos separadamente, sem tratá-los como ações bem-sucedidas nem como zero.

Verifique os índices do D1 com a consulta de agregação

As telas operacionais filtram repetidamente períodos recentes; sua aparência não prova que um índice seja útil. Depois de adicionar um índice para as condições reais de agregação, confira o plano de consulta no D1 de produção e confirme que o índice previsto é usado. Criar um índice e confirmar que uma consulta o utiliza são verificações diferentes. Neste caso, ambos foram confirmados em produção, mas não houve benchmark de melhoria no tempo de resposta ou de resistência sob carga elevada.

Confira autenticação e exibição após a publicação em produção

Publique o Pages em produção pela integração com GitHub e confirme o sucesso do deploy do commit esperado e que o domínio personalizado esteja ativo. Depois, verifique se a página fica protegida antes da autenticação e se os dados do painel aparecem após o login. CI aprovado ou deploy bem-sucedido, por si só, não comprova que uma pessoa autenticada consiga ver a interface de produção.

Este caso anonimizado verificou, em um único ambiente operacional, o limite de acesso, a tela de produção e o uso de índice pela consulta de agregação do D1. Não testou a separação de permissões entre organizações, carga com mais usuários ou cenários de invasão em todas as configurações de autenticação. Para a arquitetura mais ampla do site em Pages, consulte Arquitetura de sites com Cloudflare Pages.