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.
  • Umgebungendevelopment, staging, production standardmäß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

MethodeIdeal Für
Universal AuthBeliebige Workloads; Client-ID + Secret
Kubernetes AuthPods mit ServiceAccount-JWT
AWS IAM AuthLambda, EC2, ECS via AWS STS
GCP IAM AuthVMs, Cloud Run, Cloud Functions
Azure AuthVMs, AKS, Azure Functions mit Managed Identity
OIDC AuthGitHub 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

FunktionInfisicalHashiCorp VaultDopplerAWS Secrets ManagerSOPS1Password Connect
Open SourceJa (CE)BSL-LizenzNeinNeinJaNein
Selbst gehostetJaJaNeinNeinJaJa (begrenzt)
E2E-VerschlüsselungJaNeinNeinNeinJaJa
Web-UIJaJa (einfach)JaAWS-KonsoleNeinJa
RotationJaJaJaJaNeinNein
K8s-OperatorJaVault AgentNeinJa (ESO)NeinNein
Kostenloses TierCE unbegrenztOpen SourceBegrenztPro SecretKostenlosNein

Fallstricke und Grenzfälle

  • Verlust des Verschlüsselungsschlüssels — Ohne ENCRYPTION_KEY sind 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: in docker-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.

Verwandte Artikel