TL;DR — Resumo Rápido
Infisical é um gerenciador de segredos open source com criptografia E2E, CLI, SDKs, Operador Kubernetes e rotação automática — alternativa ao HashiCorp Vault.
Infisical é uma plataforma open source de gestão de segredos que oferece às equipes um armazenamento centralizado, auditado e criptografado para chaves de API, credenciais de banco de dados e variáveis de ambiente. Ao contrário de arquivos .env no repositório ou segredos dispersos em consoles cloud, Infisical oferece criptografia ponta a ponta, controle de acesso granular e integrações nativas com as principais plataformas CI/CD.
Pré-requisitos
- Docker e Docker Compose ou um cluster Kubernetes com Helm 3.
- Um domínio (para TLS em implantações auto-hospedadas).
- Familiaridade básica com variáveis de ambiente e pipelines CI/CD.
Arquitetura do Infisical
O servidor Infisical é composto por três componentes:
- Servidor API — Backend Node.js que gerencia todas as operações de segredos.
- PostgreSQL — Armazena o texto cifrado, metadados e logs de auditoria.
- Redis — Gerenciamento de sessões e fila de jobs em segundo plano.
A criptografia ponta a ponta é a decisão de design central: ao escrever um segredo, o cliente web ou o CLI o criptografa localmente usando uma chave de workspace derivada de suas credenciais antes da transmissão.
Instalação
Opção 1: Docker Compose (Auto-Hospedado)
git clone https://github.com/Infisical/infisical.git
cd infisical
cp .env.example .env
Editar .env:
ENCRYPTION_KEY=<32-bytes-hex-aleatório>
AUTH_SECRET=<32-bytes-base64-aleatório>
SITE_URL=https://segredos.seudominio.com
docker compose -f docker-compose.prod.yml up -d
Opção 2: Kubernetes com Helm
helm repo add infisical-helm-charts https://dl.infisical.com/helm-charts
helm repo update
helm install infisical infisical-helm-charts/infisical \
--set infisical.encryptionKey="$(openssl rand -hex 16)" \
--set infisical.authSecret="$(openssl rand -base64 32)"
Opção 3: Infisical Cloud
Cadastre-se em app.infisical.com. Sem gerenciamento de servidor, nível gratuito disponível.
Configuração: Organizações, Projetos e Ambientes
- Organizações — Container de nível superior para sua empresa ou equipe.
- Projetos — Correspondem a uma aplicação ou serviço.
- Ambientes —
development,staging,productionpor padrão. - Pastas — Agrupam segredos relacionados dentro de um ambiente.
- Versionamento — Cada alteração cria uma nova versão; é possível reverter pelo painel.
Uso do CLI
# Instalar no Linux/Debian
curl -1sLf 'https://dl.cloudsmith.io/public/infisical/infisical-cli/setup.deb.sh' | sudo -E bash
sudo apt-get install infisical
# macOS
brew install infisical/get-cli/infisical
infisical login
infisical secrets get DATABASE_URL --env=prod
infisical secrets set API_KEY=sk-abc123 --env=staging
infisical secrets delete SEGREDO_ANTIGO --env=staging
# Injetar em processo
infisical run --env=dev -- npm run dev
infisical run --env=prod -- python manage.py migrate
# Exportar
infisical export --env=dev > .env
infisical export --env=dev --format=json > segredos.json
SDKs: Acesso Programático
Node.js:
import { InfisicalSDK } from "@infisical/sdk";
const client = new InfisicalSDK({ siteUrl: "https://app.infisical.com" });
await client.auth().universalAuth.login({
clientId: process.env.INFISICAL_CLIENT_ID,
clientSecret: process.env.INFISICAL_CLIENT_SECRET,
});
const secret = await client.secrets().getSecret({
secretName: "DATABASE_URL",
projectId: "proj_abc123",
environment: "prod",
});
Também disponíveis: Python, Go, Java, Ruby e .NET — todos seguem o mesmo padrão de inicialização com credenciais e chamada a GetSecret().
Machine Identities
| Método | Ideal Para |
|---|---|
| Universal Auth | Qualquer workload; client ID + secret |
| Kubernetes Auth | Pods com ServiceAccount JWT |
| AWS IAM Auth | Lambda, EC2, ECS via AWS STS |
| GCP IAM Auth | VMs, Cloud Run, Cloud Functions |
| Azure Auth | VMs, AKS, Azure Functions com Managed Identity |
| OIDC Auth | GitHub Actions, GitLab CI, qualquer OIDC |
Rotação de Segredos
- PostgreSQL / MySQL / MongoDB — Rotaciona a senha do usuário do banco de dados.
- AWS IAM — Cria novo par de chaves, atualiza Infisical, exclui a antiga.
- Rotação personalizada — Invoca Lambda ou endpoint HTTP arbitrário.
Referências e Importações de Segredos
Referências: ${DATABASE_HOST}:5432 expande DATABASE_HOST no momento da leitura.
Importações: Trazem todos os segredos de outro ambiente ou caminho para o escopo atual.
Hierarquia de prioridade (maior para menor): overrides pessoais → segredos do ambiente → segredos importados.
Operador Kubernetes
helm install infisical-operator infisical-helm-charts/secrets-operator \
--namespace infisical-operator-system --create-namespace
apiVersion: secrets.infisical.com/v1alpha1
kind: InfisicalSecret
metadata:
name: myapp-secrets
namespace: default
spec:
hostAPI: https://app.infisical.com/api
resyncInterval: 60
authentication:
universalAuth:
credentialsRef:
name: infisical-machine-identity
namespace: default
managedSecretReference:
secretName: myapp-synced-secrets
secretNamespace: default
infisicalSecret:
environmentSlug: "prod"
projectId: "proj_abc123"
secretsPath: "/"
O operador cria myapp-synced-secrets como um Kubernetes Secret padrão e re-sincroniza a cada 60 segundos.
Infisical vs Alternativas
| Recurso | Infisical | HashiCorp Vault | Doppler | AWS Secrets Manager | SOPS | 1Password Connect |
|---|---|---|---|---|---|---|
| Open source | Sim (CE) | Licença BSL | Não | Não | Sim | Não |
| Auto-hospedado | Sim | Sim | Não | Não | Sim | Sim (limitado) |
| Criptografia E2E | Sim | Não | Não | Não | Sim | Sim |
| Interface web | Sim | Sim (básica) | Sim | Console AWS | Não | Sim |
| Rotação | Sim | Sim | Sim | Sim | Não | Não |
| Operador K8s | Sim | Vault Agent | Não | Sim (ESO) | Não | Não |
| Nível gratuito | CE ilimitado | Open source | Limitado | Por segredo | Grátis | Não |
Armadilhas e Casos Extremos
- Perda da chave de criptografia — Sem
ENCRYPTION_KEYtodos os segredos são irrecuperáveis. Faça backup em um armazenamento separado. - Disponibilidade do Redis — Uma interrupção do Redis impede o login mesmo com PostgreSQL saudável.
- Delay do Operador — O intervalo de 60 segundos introduz latência de propagação após uma rotação.
- Docker Compose em CI — Segredos só chegam a contêineres se passados explicitamente via
environment:nodocker-compose.yml.
Resumo
- Auto-hospedado com Docker Compose ou Helm — Edição Community gratuita.
- Criptografia E2E — O servidor nunca tem texto simples.
- CLI com
infisical run— Injeta segredos em qualquer processo sem arquivos.env. - Operador Kubernetes — Sincronização automática com Kubernetes Secrets nativos.
- Machine identities — Substitui tokens estáticos por OIDC, AWS IAM, Kubernetes Auth.
- Rotação automática — Para bancos de dados, AWS IAM e webhooks personalizados.
- Log de auditoria completo — Cada acesso e alteração é registrado.