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
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 daemonroda 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 logincom senha, Secret Key e segundo fator. Ocrunu unlockmantém as chaves em memória, e ocrunu lockencerra isso antes da hora.
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.
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 pullos grava com modo 0600, guarda a versão anterior como.preve recusa caminhos arriscados, como.bashrcou.ssh/. - Um arquivo para o systemdO
crunu pull --env-outgrava as variáveis num único arquivo para uma linhaEnvironmentFile=. - As credenciais dele ficam de foraO
crunu runnunca repassa as próprias variáveis, comoCRUNU_TOKEN, ao programa que inicia.
| Código | Significado |
|---|---|
| 0 | Sucesso |
| 3 | Máquina não registrada ou sem login |
| 4 | Acesso revogado ou concessão expirada |
| 5 | Sem conexão e sem estado verificado válido |
| 6 | Falha na verificação de assinatura ou certificado |
| 7 | O conteúdo não é entregue a este endereç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.
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 runou por arquivos docrunu pull.
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.