TL;DR — Resumen Rápido

Infisical es un gestor de secretos open source con cifrado E2E, CLI, SDKs, Operador Kubernetes y rotación automática — alternativa a HashiCorp Vault.

Infisical es una plataforma open source de gestión de secretos que proporciona a los equipos un almacén centralizado, auditado y cifrado para claves de API, credenciales de base de datos y variables de entorno. A diferencia de archivos .env en el repositorio o secretos dispersos en consolas cloud, Infisical ofrece cifrado extremo a extremo, control de acceso granular e integraciones nativas con las principales plataformas CI/CD.

Requisitos Previos

  • Docker y Docker Compose o un clúster Kubernetes con Helm 3.
  • Un dominio (para TLS en despliegues autoalojados).
  • Familiaridad básica con variables de entorno y pipelines CI/CD.

Arquitectura de Infisical

El servidor de Infisical tiene tres componentes:

  • Servidor API — Backend Node.js que gestiona todas las operaciones de secretos.
  • PostgreSQL — Almacena el texto cifrado, metadatos y registros de auditoría.
  • Redis — Gestión de sesiones y cola de trabajos en segundo plano.

El cifrado extremo a extremo es la decisión de diseño clave: cuando escribes un secreto, el cliente web o el CLI lo cifra localmente usando una clave de espacio de trabajo derivada de tus credenciales antes de la transmisión.


Instalación

Opción 1: Docker Compose (Autoalojado)

git clone https://github.com/Infisical/infisical.git
cd infisical
cp .env.example .env

Editar .env:

ENCRYPTION_KEY=<32-bytes-hex-aleatorio>
AUTH_SECRET=<32-bytes-base64-aleatorio>
SITE_URL=https://secretos.tudominio.com
docker compose -f docker-compose.prod.yml up -d

Opción 2: Kubernetes con 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)"

Opción 3: Infisical Cloud

Regístrate en app.infisical.com. Sin gestión de servidor, nivel gratuito disponible.


Configuración: Organizaciones, Proyectos y Entornos

  • Organizaciones — Contenedor de nivel superior para tu empresa o equipo.
  • Proyectos — Corresponden a una aplicación o servicio.
  • Entornosdevelopment, staging, production por defecto.
  • Carpetas — Agrupan secretos relacionados dentro de un entorno.
  • Versionado — Cada cambio crea una versión nueva; puedes revertir desde el panel.

Uso del CLI

# Instalar en 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 SECRETO_VIEJO --env=staging

# Inyectar en proceso
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 > secretos.json

SDKs: Acceso 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",
});

También disponibles: Python, Go, Java, Ruby y .NET — todos siguen el mismo patrón de inicialización con credenciales y llamada a GetSecret().


Machine Identities

MétodoIdeal Para
Universal AuthCualquier workload; client ID + secret
Kubernetes AuthPods con ServiceAccount JWT
AWS IAM AuthLambda, EC2, ECS via AWS STS
GCP IAM AuthVMs, Cloud Run, Cloud Functions
Azure AuthVMs, AKS, Azure Functions con Managed Identity
OIDC AuthGitHub Actions, GitLab CI, cualquier OIDC

Rotación de Secretos

Infisical puede rotar automáticamente credenciales según un horario:

  • PostgreSQL / MySQL / MongoDB — Rota la contraseña del usuario de base de datos.
  • AWS IAM — Crea nuevo par de claves, actualiza Infisical, elimina la antigua.
  • Rotación personalizada — Invoca Lambda o endpoint HTTP arbitrario.

Referencias e Importaciones de Secretos

Referencias: ${DATABASE_HOST}:5432 expande DATABASE_HOST en tiempo de lectura.

Importaciones: Traen todos los secretos de otro entorno o ruta al ámbito actual.

Jerarquía de prioridad (mayor a menor): overrides personales → secretos del entorno → secretos 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: "/"

El operador crea myapp-synced-secrets como un Kubernetes Secret estándar y lo re-sincroniza cada 60 segundos.


Infisical vs Alternativas

CaracterísticaInfisicalHashiCorp VaultDopplerAWS Secrets ManagerSOPS1Password Connect
Open sourceSí (CE)Licencia BSLNoNoNo
AutoalojadoNoNoSí (limitado)
Cifrado E2ENoNoNo
Interfaz webSí (básica)Consola AWSNo
RotaciónNoNo
Operador K8sVault AgentNoSí (ESO)NoNo
Nivel gratuitoCE ilimitadoOpen sourceLimitadoPor secretoGratisNo

Precauciones y Casos Extremos

  • Pérdida de la clave de cifrado — Sin ENCRYPTION_KEY todos los secretos son irrecuperables. Respalda en un almacén separado.
  • Disponibilidad de Redis — Una interrupción de Redis hace imposible el inicio de sesión.
  • Delay del Operador — El intervalo de 60 segundos introduce latencia de propagación tras una rotación.
  • Docker Compose en CI — Los secretos solo llegan a contenedores si los pasas explícitamente via environment: en docker-compose.yml.

Resumen

  • Autoalojado con Docker Compose o Helm — Edición Community gratuita.
  • Cifrado E2E — El servidor nunca tiene texto plano.
  • CLI con infisical run — Inyecta secretos en cualquier proceso sin archivos .env.
  • Operador Kubernetes — Sincronización automática con Kubernetes Secrets nativos.
  • Machine identities — Reemplaza tokens estáticos con OIDC, AWS IAM, Kubernetes Auth.
  • Rotación automática — Para bases de datos, AWS IAM y webhooks personalizados.
  • Registro de auditoría completo — Cada acceso y cambio queda registrado.

Artículos Relacionados