Skip to main content
Skip table of contents

Création et Utilisation SealedSecret

Introduction

La gestion des secrets est primoridiale pour protéger les données sensibles.
Toutefois, les Secrets kubernets natifs présentent une limite : ils sont simplement encodés en base64 dans les manifests, ce qui les expose à des risques d'attaques.

Une solution efficace pour palier à ce manque de sécurité consiste à utiliser kukeseal pour transformer les secrets classiques en Sealed Secrets.
Cette technologie chiffre les secrets avant leur stockage dans un dépôt Git à l'aide d'une clé privée du cluster

Pré-requis

  • Accéder au cluster Kubernetes

  • SealedSecrets Controller doit être installé et configuré sur le cluster Kubernetes

Politique de sécurité

Accès restreint

  • Restreindre l’accès au namespace uniquement aux administrateurs.

  • Limiter l’accès à la clé privée du controller : elle ne doit jamais être exposée ou exportée

  • Limiter les commandes en fonction de l’utilisateur

Gestion des fichiers

  • Ne jamais versionner les fichiers Secret non chiffrés dans un dépôt Git.

  • Versionner uniquement les fichiers SealedSecret chiffrés.

Installation de Kubeseal

Pour installer kubeseal, veuillez consulter la documentation officielle disponible sur le dépôt GitHub :

https://github.com/bitnami-labs/sealed-secrets/releases/

Création d’un SealedSecret

1. Créer un Secret Kubernetes

Commencez par créer un fichier YAML contenant un secret Kubernetes standard :

YAML
apiVersion: v1
kind: Secret
metadata:
  creationTimestamp: null
  name: NomDuSecret
  namespace: NomNamespace
data:
  username: <valeur encodée en base64>
  password: <valeur encodée en base64>

Astuce: Encodage en base64 :

CODE
echo -n 'valeur' | base64

2. Chiffre le Secret avec kubeseal

Utilisez la commande suivante pour chiffrer le secret :

BASH
kubeseal --format=yaml \
  --controller-namespace=sigma-kubeseal \
  --controller-name=sealed-secrets \
  < "fichier".yaml > sealed-"fichier".yaml

3. Appliquer le SealedSecret dans Openshift

Déployez le SealedSecret avec la commande suivante :

BASH
oc apply -f sealed-"fichier".yaml

4. Vérifications

Vérifiez que le SealedSecret a bien été pris en charge :

BASH
kubectl get sealedsecrets

Pour confirmer que le secret est accessible aux pods, vous pouvez le décoder :

BASH
kubectl get secret NomDuSecret -o jsonpath="{.data.username}" | base64 --decode

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.