TL;DR — Résumé Rapide

Infisical est un gestionnaire de secrets open source avec chiffrement E2E, CLI, SDKs, Opérateur Kubernetes et rotation — alternative à HashiCorp Vault.

Infisical est une plateforme open source de gestion des secrets qui offre aux équipes un stockage centralisé, audité et chiffré pour les clés API, identifiants de base de données et variables d’environnement. Contrairement aux fichiers .env dans le dépôt ou aux secrets dispersés dans les consoles cloud, Infisical propose un chiffrement bout en bout, un contrôle d’accès granulaire et des intégrations natives avec les principales plateformes CI/CD.

Prérequis

  • Docker et Docker Compose ou un cluster Kubernetes avec Helm 3.
  • Un nom de domaine (pour TLS sur les déploiements auto-hébergés).
  • Familiarité de base avec les variables d’environnement et les pipelines CI/CD.

Architecture d’Infisical

Le serveur Infisical se compose de trois composants:

  • Serveur API — Backend Node.js gérant toutes les opérations sur les secrets.
  • PostgreSQL — Stocke le texte chiffré, les métadonnées et les journaux d’audit.
  • Redis — Gestion des sessions et file d’attente des jobs en arrière-plan.

Le chiffrement bout en bout est la décision de conception clé: lors de l’écriture d’un secret, le client web ou le CLI le chiffre localement en utilisant une clé d’espace de travail dérivée de vos identifiants avant la transmission.


Installation

Option 1: Docker Compose (Auto-hébergé)

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

Modifier .env:

ENCRYPTION_KEY=<32-octets-hex-aléatoire>
AUTH_SECRET=<32-octets-base64-aléatoire>
SITE_URL=https://secrets.votredomaine.com
docker compose -f docker-compose.prod.yml up -d

Option 2: Kubernetes avec 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

Inscrivez-vous sur app.infisical.com. Sans gestion de serveur, niveau gratuit disponible.


Configuration: Organisations, Projets et Environnements

  • Organisations — Conteneur de niveau supérieur pour votre entreprise ou équipe.
  • Projets — Correspondent à une application ou service.
  • Environnementsdevelopment, staging, production par défaut.
  • Dossiers — Regroupent les secrets liés dans un environnement.
  • Versionnage — Chaque modification crée une nouvelle version; retour en arrière possible depuis le tableau de bord.

Utilisation du CLI

# 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 ANCIEN_SECRET --env=staging

# Injecter dans un processus
infisical run --env=dev -- npm run dev
infisical run --env=prod -- python manage.py migrate

# Exporter
infisical export --env=dev > .env
infisical export --env=dev --format=json > secrets.json

SDKs: Accès Programmatique

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

Également disponibles: Python, Go, Java, Ruby et .NET — tous suivent le même pattern d’initialisation avec identifiants et appel à GetSecret().


Machine Identities

MéthodeIdéal Pour
Universal AuthTout workload; client ID + secret
Kubernetes AuthPods avec ServiceAccount JWT
AWS IAM AuthLambda, EC2, ECS via AWS STS
GCP IAM AuthVMs, Cloud Run, Cloud Functions
Azure AuthVMs, AKS, Azure Functions avec Managed Identity
OIDC AuthGitHub Actions, GitLab CI, tout système OIDC

Rotation des Secrets

  • PostgreSQL / MySQL / MongoDB — Fait tourner le mot de passe de l’utilisateur DB.
  • AWS IAM — Crée une nouvelle paire de clés, met à jour Infisical, supprime l’ancienne.
  • Rotation personnalisée — Invoque Lambda ou endpoint HTTP arbitraire.

Références et Imports de Secrets

Références: ${DATABASE_HOST}:5432 développe DATABASE_HOST au moment de la lecture.

Imports: Importent tous les secrets d’un autre environnement ou chemin dans la portée actuelle.

Hiérarchie de priorité (plus haute à plus basse): overrides personnels → secrets d’environnement → secrets importés.


Opérateur 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: "/"

L’opérateur crée myapp-synced-secrets comme un Kubernetes Secret standard et le resynchronise toutes les 60 secondes.


Infisical vs Alternatives

FonctionnalitéInfisicalHashiCorp VaultDopplerAWS Secrets ManagerSOPS1Password Connect
Open sourceOui (CE)Licence BSLNonNonOuiNon
Auto-hébergéOuiOuiNonNonOuiOui (limité)
Chiffrement E2EOuiNonNonNonOuiOui
Interface webOuiOui (basique)OuiConsole AWSNonOui
RotationOuiOuiOuiOuiNonNon
Opérateur K8sOuiVault AgentNonOui (ESO)NonNon
Niveau gratuitCE illimitéOpen sourceLimitéPar secretGratuitNon

Pièges et Cas Limites

  • Perte de la clé de chiffrement — Sans ENCRYPTION_KEY tous les secrets sont irrécupérables. Sauvegardez dans un stockage séparé.
  • Disponibilité de Redis — Une interruption Redis rend la connexion impossible même si PostgreSQL est sain.
  • Délai de l’Opérateur — L’intervalle de 60 secondes introduit une latence de propagation après une rotation.
  • Docker Compose en CI — Les secrets n’atteignent les conteneurs que si vous les passez explicitement via environment: dans docker-compose.yml.

Résumé

  • Auto-hébergé avec Docker Compose ou Helm — Édition Community gratuite.
  • Chiffrement E2E — Le serveur n’a jamais de texte en clair.
  • CLI avec infisical run — Injecte les secrets dans tout processus sans fichiers .env.
  • Opérateur Kubernetes — Synchronisation automatique avec les Kubernetes Secrets natifs.
  • Machine identities — Remplace les tokens statiques par OIDC, AWS IAM, Kubernetes Auth.
  • Rotation automatique — Pour les bases de données, AWS IAM et webhooks personnalisés.
  • Journal d’audit complet — Chaque accès et modification est enregistré.

Articles Connexes