• 1. Introduction

  • 2. Étape 1 : installer Vault sur votre cluster Kubernetes

  • 2.1. Prérequis

  • 2.2. Commande d’installation rapide (mode dev)

  • 3. Étape 2 : configurer le secret engine Kubernetes

  • 4. Étape 3 : créer une policy et un rôle pour votre microservice

  • 5. Étape 4 : injection des secrets dans votre déploiement Node.js

  • 6. Bonnes pratiques

  • 7. Conclusion

gestion des secrets Kubernetes avec HashiCorp Vault pour votre SaaS Node.js

Image de gestion des secrets Kubernetes avec HashiCorp Vault pour votre SaaS Node.js

Introduction

Dans un environnement SaaS, protéger vos clés d’API et mots de passe est crucial. Kubernetes ne gère pas nativement la rotation des secrets ni le chiffrement hors base etcd. En combinant HashiCorp Vault (v1.14) et Kubernetes, vous bénéficiez d’une solution centralisée, auditable et résiliente pour stocker et délivrer vos secrets à votre application Node.js.

Étape 1 : installer Vault sur votre cluster Kubernetes

Prérequis

  • kubectl configuré sur votre cluster (EKS, GKE ou AKS)
  • Helm v3.10+ installé sur votre poste

Commande d’installation rapide (mode dev)

helm repo add hashicorp https://helm.releases.hashicorp.com  
helm repo update  
helm install vault hashicorp/vault \
  --namespace vault --create-namespace \
  --set "server.dev.enabled=true"

En production, désactivez server.dev.enabled et configurez un backend de stockage (Consul, S3, GCS).

Étape 2 : configurer le secret engine Kubernetes

  1. Exposer l’API Kubernetes à Vault en récupérant le token reviewer :
  2. KUBE_NAMESPACE=$(kubectl config view --minify --output 'jsonpath={..namespace}')
    SA_TOKEN=$(kubectl get secret \
      $(kubectl get sa vault-auth -n vault -o jsonpath="{.secrets[0].name}") \
      -n vault -o go-template="{{.data.token}}" | base64 --decode)
    kubectl get configmap -n vault vault -o jsonpath="{.data['ca\.crt']}" | base64 --decode > ca.crt
    
  3. Activer et configurer l’authentification Kubernetes :
  4. vault login root_token  
    vault auth enable kubernetes  
    vault write auth/kubernetes/config \
      token_reviewer_jwt="$SA_TOKEN" \
      kubernetes_host="https://$KUBERNETES_PORT_443_TCP_ADDR:443" \
      kubernetes_ca_cert=@ca.crt

Étape 3 : créer une policy et un rôle pour votre microservice

Définissez une policy qui limite l’accès (principe du moindre privilège) :

cat < microservice-policy.hcl
path "secret/data/db/*" {
  capabilities = ["read"]
}
EOF

vault policy write microservice microservice-policy.hcl

Créez ensuite le rôle Kubernetes lié à cette policy :

vault write auth/kubernetes/role/microservice \
  bound_service_account_names=node-sa \
  bound_service_account_namespaces=default \
  policies=microservice \
  ttl=24h

Étape 4 : injection des secrets dans votre déploiement Node.js

Ajoutez ces annotations à votre Deployment Kubernetes pour activer Vault Agent Injector :

apiVersion: apps/v1
kind: Deployment
metadata:
  name: node-app
spec:
  template:
    metadata:
      annotations:
        vault.hashicorp.com/agent-inject: "true"
        vault.hashicorp.com/role: "microservice"
        vault.hashicorp.com/agent-inject-secret-db-creds: "secret/data/db/credentials"
    spec:
      serviceAccountName: node-sa
      containers:
      - name: app
        image: your-registry/node-app:latest
        env:
        - name: DB_USER
          valueFrom:
            secretKeyRef:
              name: vault-secrets
              key: data.db.username
        - name: DB_PASS
          valueFrom:
            secretKeyRef:
              name: vault-secrets
              key: data.db.password

Dans votre code Node.js :
const pg = require('pg'); const client = new pg.Client({ user: process.env.DB_USER, password: process.env.DB_PASS, host: 'db.cluster.local' });

Bonnes pratiques

  • Activez les logs d’audit Vault pour tracer l’accès aux secrets.
  • Utilisez un backend de stockage chiffré (AWS KMS, Google KMS).
  • Limitez la durée de vie (ttl) des tokens Vault.
  • Surveillez les métriques Vault Exporter pour Prometheus.

Conclusion

En centralisant la gestion des secrets avec HashiCorp Vault, vous réduisez les risques de fuite, facilitez la rotation des credentials et répondez aux exigences de conformité. Cette approche s’intègre de façon transparente à votre stack SaaS et à vos environnements basés sur AWS ou tout autre cloud.

Besoin d’un accompagnement pour sécuriser votre infrastructure ? Contactez nos experts ou obtenez un devis discret pour votre projet.

Image de Les 10 tendances tech à surveiller en 2025

Les 10 tendances tech à surveiller en 2025

Découvrez les 10 tendances tech incontournables de 2025, de l’IA générative au green IT, en passant par l’AR/VR immersive et la cybersécurité zero trust
Image de microsoft dynamics 365 copilot : booster votre crm et erp grâce à l’ia

microsoft dynamics 365 copilot : booster votre crm et erp grâce à l’ia

Boostez votre CRM et ERP avec Microsoft Dynamics 365 Copilot, l’assistant IA qui automatise la saisie, personnalise vos offres et optimise vos performances
Image de mise en place de WebSockets en temps réel dans un SaaS Node.js avec Socket.IO et Docker

mise en place de WebSockets en temps réel dans un SaaS Node.js avec Socket.IO et Docker

Découvrez comment mettre en place des WebSockets en temps réel dans un SaaS Node.js conteneurisé Docker avec Socket.IO, de la config aux tests de charge.
DEVIS GRATUIT

Un projet en tête ? Vous avez des questions ?

Contactez nous pour recevoir un devis gratuitement, des réponses à vos questions ou une séance de consulting offerte avec l'un de nos experts :

Femme en chemise jaune