Skip to main content
Este guia mostra como deployar o ChatCLI em produção com todas as medidas de segurança habilitadas. Siga cada etapa na ordem para garantir uma configuração completa.

Pré-requisitos

  • Cluster Kubernetes com Helm 3.8+
  • kubectl e helm configurados
  • openssl disponível para geração de chaves
  • Acesso para criar Secrets no namespace de destino

Passo 1: Gerar Segredo JWT e Criar Secret K8s

O JWT é usado para autenticar conexões entre clientes e o servidor ChatCLI.
Guarde o valor de $JWT_SECRET em um cofre de segredos (Vault, AWS Secrets Manager, etc.). Você precisará dele para configurar clientes remotos.
Verifique o Secret:

Passo 2: Configurar Certificados TLS


Passo 3: Configurar Rate Limiting

Defina limites de requisições para prevenir abuso e DoS:
Em Kubernetes, o bindAddress é automaticamente configurado para 0.0.0.0 via detecção de KUBERNETES_SERVICE_HOST. Defina explicitamente apenas em servidores fora do Kubernetes.
Para ambientes multi-tenant, considere valores mais baixos (5-10 RPS por instância) e use HPA para escalar horizontalmente.

Passo 4: Habilitar Log de Auditoria

O log de auditoria registra cada operação com detalhes de quem, o que e quando:
Os logs de auditoria incluem:
  • Usuário autenticado (via JWT claims)
  • Comando ou operação executada
  • Timestamp e resultado (sucesso/falha)
  • IP de origem da requisição

Passo 5: Configurar Allowlist de Comandos do Agente

Habilite o modo strict para garantir que apenas comandos aprovados sejam executados:
No modo strict, mais de 150 comandos comuns já estão pré-aprovados em 8 categorias (arquivo, texto, dev, containers, rede, sistema, editores, shell). Adicione apenas os comandos específicos do seu workflow.

Passo 6: Assinar Plugins com Ed25519

Para garantir que apenas plugins confiáveis sejam carregados:
Configure o ChatCLI para verificar assinaturas:

Passo 7: Configurar Criptografia de Sessão

Habilite criptografia para sessões armazenadas em disco:

Passo 8: Configurar Segurança do Operador

Para ambientes com o operador K8s, configure proteções adicionais. Primeiro, crie um Secret com as API keys do operator (autenticação do dashboard / REST API):
Este Secret é diferente do chatcli-api-keys consumido pelo chatcli server (que carrega OPENAI_API_KEY, ANTHROPIC_API_KEY etc. via Instance.spec.apiKeys.name). Veja Segurança — Autenticação para a tabela comparativa.
Alterações no Secret chatcli-operator-secrets (ou no ConfigMap chatcli-operator-config como fallback — mesmo campo api-keys) são detectadas automaticamente em até 30 segundos. Nenhum restart do operator é necessário.
Em seguida, configure as variáveis de segurança:

Passo 9: Deploy com Helm (Configuração Completa)

Combine todas as configurações em um único values-prod.yaml:

Passo 10: Verificar Segurança

Execute esta checklist para confirmar que tudo está configurado corretamente:
1

Verificar TLS

2

Verificar JWT Secret

3

Verificar SecurityContext do Pod

4

Verificar NetworkPolicy

5

Verificar gRPC Reflection desabilitado

6

Testar conexão autenticada

7

Verificar rate limiting

8

Verificar logs de auditoria


Checklist Final


Próximos Passos

Segurança e Hardening

Documentação completa de todas as medidas de segurança.

Deploy com Docker e Helm

Guia completo de deployment containerizado.

Operador K8s

Configurar o operador Kubernetes.

Referência de Configuração

Todas as variáveis de ambiente disponíveis.