TL;DR — Kurzzusammenfassung
Infisical ist ein Open-Source-Secrets-Manager mit E2E-Verschlüsselung, CLI, SDKs, Kubernetes-Operator und Rotation — Alternative zu HashiCorp Vault.
Infisical ist eine Open-Source-Plattform für Secrets-Verwaltung, die Teams einen zentralisierten, auditierten und verschlüsselten Speicher für API-Schlüssel, Datenbank-Anmeldedaten und Umgebungsvariablen bietet. Im Gegensatz zu .env-Dateien im Repository oder über Cloud-Konsolen verstreuten Secrets bietet Infisical Ende-zu-Ende-Verschlüsselung, granulare Zugriffskontrolle und native Integrationen mit allen wichtigen CI/CD-Plattformen.
Voraussetzungen
- Docker und Docker Compose oder ein Kubernetes-Cluster mit Helm 3.
- Ein Domainname (für TLS bei selbst gehosteten Deployments).
- Grundkenntnisse mit Umgebungsvariablen und CI/CD-Pipelines.
Infisical-Architektur
Der Infisical-Server besteht aus drei Komponenten:
- API-Server — Node.js-Backend, das alle Secrets-Operationen verwaltet.
- PostgreSQL — Speichert verschlüsselten Chiffretext, Metadaten und Audit-Logs.
- Redis — Session-Verwaltung und Hintergrund-Job-Warteschlange.
Die Ende-zu-Ende-Verschlüsselung ist die zentrale Designentscheidung: Beim Schreiben eines Secrets verschlüsselt der Web-Client oder das CLI es lokal mit einem aus Ihren Anmeldedaten abgeleiteten Workspace-Schlüssel vor der Übertragung.
Installation
Option 1: Docker Compose (Selbst gehostet)
git clone https://github.com/Infisical/infisical.git
cd infisical
cp .env.example .env
.env bearbeiten:
ENCRYPTION_KEY=<32-Byte-zufälliger-Hex>
AUTH_SECRET=<32-Byte-zufälliges-Base64>
SITE_URL=https://secrets.ihredomain.de
docker compose -f docker-compose.prod.yml up -d
Option 2: Kubernetes mit 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)"
Option 3: Infisical Cloud
Registrierung unter app.infisical.com. Keine Server-Verwaltung, kostenlose Stufe verfügbar.
Einrichtung: Organisationen, Projekte und Umgebungen
- Organisationen — Container der obersten Ebene für Ihr Unternehmen oder Team.
- Projekte — Entsprechen einer Anwendung oder einem Service.
- Umgebungen —
development,staging,productionstandardmäßig. - Ordner — Gruppieren zusammengehörige Secrets innerhalb einer Umgebung.
- Versionierung — Jede Änderung erstellt eine neue Version; Rollback über das Dashboard möglich.
CLI-Nutzung
# Installation 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 ALTES_SECRET --env=staging
# In Prozess injizieren
infisical run --env=dev -- npm run dev
infisical run --env=prod -- python manage.py migrate
# Exportieren
infisical export --env=dev > .env
infisical export --env=dev --format=json > secrets.json
SDKs: Programmatischer Zugriff
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",
});
Ebenfalls verfügbar: Python, Go, Java, Ruby und .NET — alle folgen demselben Initialisierungsmuster mit Anmeldedaten und Aufruf von GetSecret().
Machine Identities
| Methode | Ideal Für |
|---|---|
| Universal Auth | Beliebige Workloads; Client-ID + Secret |
| Kubernetes Auth | Pods mit 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 mit Managed Identity |
| OIDC Auth | GitHub Actions, GitLab CI, jedes OIDC-System |
Secret-Rotation
- PostgreSQL / MySQL / MongoDB — Rotiert das Datenbankbenutzer-Passwort.
- AWS IAM — Erstellt neues Schlüsselpaar, aktualisiert Infisical, löscht das alte.
- Benutzerdefinierte Rotation — Ruft Lambda oder beliebigen HTTP-Endpunkt auf.
Secret-Referenzen und Importe
Referenzen: ${DATABASE_HOST}:5432 expandiert DATABASE_HOST zum Abrufzeitpunkt.
Importe: Bringen alle Secrets aus einer anderen Umgebung oder einem Pfad in den aktuellen Geltungsbereich.
Prioritätshierarchie (höchste bis niedrigste): persönliche Overrides → Umgebungs-Secrets → importierte Secrets.
Kubernetes-Operator
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: "/"
Der Operator erstellt myapp-synced-secrets als standardmäßiges Kubernetes Secret und synchronisiert es alle 60 Sekunden neu.
Infisical vs. Alternativen
| Funktion | Infisical | HashiCorp Vault | Doppler | AWS Secrets Manager | SOPS | 1Password Connect |
|---|---|---|---|---|---|---|
| Open Source | Ja (CE) | BSL-Lizenz | Nein | Nein | Ja | Nein |
| Selbst gehostet | Ja | Ja | Nein | Nein | Ja | Ja (begrenzt) |
| E2E-Verschlüsselung | Ja | Nein | Nein | Nein | Ja | Ja |
| Web-UI | Ja | Ja (einfach) | Ja | AWS-Konsole | Nein | Ja |
| Rotation | Ja | Ja | Ja | Ja | Nein | Nein |
| K8s-Operator | Ja | Vault Agent | Nein | Ja (ESO) | Nein | Nein |
| Kostenloses Tier | CE unbegrenzt | Open Source | Begrenzt | Pro Secret | Kostenlos | Nein |
Fallstricke und Grenzfälle
- Verlust des Verschlüsselungsschlüssels — Ohne
ENCRYPTION_KEYsind alle Secrets unwiederbringlich verloren. Sichern Sie ihn in einem separaten Speicher. - Redis-Verfügbarkeit — Ein Redis-Ausfall macht die Anmeldung unmöglich, auch wenn PostgreSQL gesund ist.
- Operator-Verzögerung — Das 60-Sekunden-Intervall führt nach einer Rotation zu Propagationsverzögerungen.
- Docker Compose in CI — Secrets erreichen Container nur, wenn Sie sie explizit über
environment:indocker-compose.ymlübergeben.
Zusammenfassung
- Selbst gehostet mit Docker Compose oder Helm — Community Edition kostenlos.
- E2E-Verschlüsselung — Der Server hat niemals Klartext.
- CLI mit
infisical run— Injiziert Secrets in jeden Prozess ohne.env-Dateien. - Kubernetes-Operator — Automatische Synchronisierung mit nativen Kubernetes Secrets.
- Machine Identities — Ersetzt statische Tokens durch OIDC, AWS IAM, Kubernetes Auth.
- Automatische Rotation — Für Datenbanken, AWS IAM und benutzerdefinierte Webhooks.
- Vollständiges Audit-Log — Jeder Zugriff und jede Änderung wird protokolliert.