Pular para o conteúdo

Os servidores recebem os segredos ao iniciar, em memória

Instale o agente crunu num servidor Linux, registre-o com um código de uso único e aprove-o depois de conferir a impressão digital dele. O agente descriptografa só os ambientes que você concede e os entrega ao seu app quando ele inicia.

  • Códigos de registro de uso único
  • Ambientes descriptografados só em memória
  • Funciona durante quedas até o fim da concessão, 24 horas por padrão
Exemplo. A Kiteline é uma empresa fictícia.

Um binário pequeno, três formas de usar

O agente é um único binário estático para Linux e macOS, em amd64 e arm64, escrito em Go apenas com a biblioteca padrão.

  • MáquinaUm servidor que roda o seu app entra com a própria chave depois do registro. No Linux, o crunu daemon roda como serviço do systemd.
  • Token de serviçoUm job de CI entra com CRUNU_TOKEN. Tudo fica no processo, e nenhum arquivo é gravado.
  • PessoaQuem desenvolve executa crunu login com senha, Secret Key e segundo fator. O crunu unlock mantém as chaves em memória, e o crunu lock encerra isso antes da hora.

Ler a documentação

Registre, compare, aprove

Um administrador adiciona a máquina e escolhe os ambientes dela. O Crunu emite um código de registro de uso único; no servidor, o crunu enroll exibe a impressão digital da máquina, e o administrador aprova depois de compará-la.

  • Um código que funciona uma vezVale 15 minutos por padrão e 24 horas no máximo, com vínculo opcional a endereços. O agente só o aceita pela entrada padrão ou por uma variável de ambiente.
  • Reutilizar gera um alertaSe alguém apresentar um código já usado, a máquina é marcada como possível interceptação, e um alerta é enviado.
  • Operators também podem fazer issoQuem tem a função Operator, que não vê valores, adiciona máquinas e solicita acesso para elas.

Ler a documentação

Exemplo. A Kiteline é uma empresa fictícia.

O seu app inicia com as variáveis dele

O crunu run inicia o programa com um conjunto limpo de variáveis de ambiente mais as do Crunu. Ele repassa sinais, devolve o código de saída do programa e, com --restart on-change, o reinicia quando os valores mudam.

  • Arquivos, quando o seu app lê arquivosO crunu pull os grava com modo 0600, guarda a versão anterior como .prev e recusa caminhos arriscados, como .bashrc ou .ssh/.
  • Um arquivo para o systemdO crunu pull --env-out grava as variáveis num único arquivo para uma linha EnvironmentFile=.
  • As credenciais dele ficam de foraO crunu run nunca repassa as próprias variáveis, como CRUNU_TOKEN, ao programa que inicia.
Códigos de saída do crunu
CódigoSignificado
0Sucesso
3Máquina não registrada ou sem login
4Acesso revogado ou concessão expirada
5Sem conexão e sem estado verificado válido
6Falha na verificação de assinatura ou certificado
7O conteúdo não é entregue a este endereço

Ler a documentação

O que o agente faz em segundo plano

O serviço se comunica com o servidor a cada minuto e renova a concessão a cada 5 minutos. Os ambientes descriptografados ficam só em memória e chegam ao crunu run por um socket local.

  • Durante uma quedaSe o servidor estiver inacessível, o agente continua entregando o último estado verificado até a concessão acabar, 24 horas por padrão.
  • Revogação em minutos, com a máquina onlineO agente apaga da memória um ambiente revogado na próxima vez que falar com o servidor. Offline, ele para quando a concessão termina.
  • Ele confere o que o servidor enviaAssinaturas, certificados, a lista de revogação e tentativas de voltar a um estado anterior. Se algo não confere, ele recusa e sai com o código 6.
  • Isolado no LinuxO processo fica fechado para outros processos do mesmo usuário, os core dumps ficam desligados, e o serviço roda numa sandbox do systemd.

Ler a documentação

Exemplo. A Kiteline é uma empresa fictícia.

O que uma máquina ainda consegue ver

Uma máquina lê de forma legítima o que você concede a ela. Conceda o mínimo e mantenha as concessões curtas.

  • O root vê o que foi concedidoO root desse servidor consegue ler tudo o que foi concedido à máquina. Conceda só os ambientes e arquivos de que ela precisa.
  • Processos em execução mantêm as variáveisUm processo iniciado antes de você revogar a máquina mantém o ambiente dele até ser reiniciado.
  • O serviço é só para LinuxNo macOS, o agente é uma ferramenta de linha de comando, sem serviço em segundo plano. Não há versão para Windows.
  • Sem Kubernetes nem SDKsOs apps recebem os valores pelo crunu run ou por arquivos do crunu pull.

Todas as limitações conhecidas

Respostas às dúvidas mais comuns

Outra dúvida? Escreva para support@crunu.com

Os valores descriptografados são gravados em disco?

Não pelo crunu run. O serviço mantém os ambientes descriptografados em memória e os repassa ao processo. Arquivos só são gravados quando você usa o crunu pull, com modo 0600.

O que acontece se o nosso servidor do Crunu cair?

O agente continua entregando o último estado verificado até a concessão terminar, 24 horas por padrão.

Em quanto tempo a revogação de uma máquina tem efeito?

Em poucos minutos, enquanto a máquina estiver online. Por padrão, o agente se comunica com o servidor a cada minuto e apaga da memória os ambientes revogados na verificação seguinte. Offline, ele para quando a concessão termina. Revogar também rotaciona as chaves dos ambientes que a máquina tinha.

Uma máquina consegue ler os ambientes de outra?

Não. Cada máquina tem as próprias chaves e os próprios acessos concedidos.

O agente roda no Windows?

Não. Ele roda em Linux e macOS, em amd64 e arm64.

Entregue hoje o ambiente de um servidor

Crie uma conta, adicione uma máquina e rode o seu app com crunu run.

Grátis durante o acesso antecipado. Leia o modelo de segurança