Comment utiliser Kubernetes External Secrets Operator avec Secret Manager
Objectif
Ce guide explique comment configurer l'External Secret Operator Kubernetes pour utiliser le Secret Manager d'OVHcloud en tant que fournisseur.
Prérequis
- Un compte client OVHcloud.
- Avoir commandé un domaine OKMS ou créé un premier secret.
- Avoir un cluster Managed Kubernetes Service.
En pratique
Configuration du Secret Manager
Pour permettre l'accès au Secret Manager, vous aurez besoin d'un token, de la region et de l'okms-id de votre Secret Manager.
Création des identifiants
Créez un utilisateur local IAM avec les droits d'accès à votre domaine.
L'utilisateur doit appartenir à un groupe avec le rôle ADMIN, ou si vous utilisez des politiques IAM, il doit avoir au moins les droits suivants sur le domaine OKMS :
okms:apikms:secret/createokms:apikms:secret/version/getDataokms:apiovh:secret/get
Il est aussi possible de créer un utilisateur avec l'OVHcloud CLI :
Puis créez un token d'accès personnel (Personal Access Token ou PAT) user_pat :
Utilisez l'appel API suivant :
Avec la charge utile suivante (remplissez-la avec vos valeurs) :
L'API répondra avec :
Le PAT peut être créé avec l'OVHcloud CLI et la commande suivante (complétez-la avec vos valeurs) :
La CLI répondra avec la valeur du token :
En alternative, il est suggéré de sauvegarder directement le PAT dans une variable d'environnement :
Conservez la valeur du champ token car elle ne sera plus affichée et sera utilisée pour s'authentifier sur le Secret Manager en tant que user_pat.
Informations du Secret Manager
Vous aurez également besoin de la region et de l'okms-id du domaine OKMS que vous souhaitez utiliser. Cet ID et cette région peuvent être trouvés sur l'espace client OVHcloud ou via l'OVHcloud CLI :
Configuration du Secret Provider dans Kubernetes
Installation de l'External Secret Operator (ESO) sur votre cluster Kubernetes
Vérifiez que l'ESO est en cours d'exécution :
Création d'un secret contenant le PAT
Commencez par encoder votre user_pat en base 64 afin de pouvoir le stocker dans un secret Kubernetes.
Ou si le user_pat est stocké dans une variable d'environnement :
Puis créez un fichier secret.yaml :
Et appliquez la ressource au cluster avec la commande kubectl apply -f secret.yaml.
Ou si on utilise une variable d'environnement :
Le secret devrait avoir été créé :
Configuration de l'External Secret Operator
Tout d'abord, configurez un ClusterSecretStore qui est chargé de la synchronisation avec le Secret Manager.
Nous configurons le SecretStore en utilisant HashiCorp Vault avec l'authentification par token et l'endpoint OKMS en tant que backend.
Ajoutez le user_pat en tant que secret pour pouvoir l'utiliser dans les chartes.
Pour définir une nouvelle ressource ClusterSecretStore, créez un fichier clustersecretstore.yaml avec le contenu suivant :
Seule l'authentification par token est prise en charge.
Cette intégration fonctionne également avec un ClusterSecretStore.
Le nom de la région peut être traduit à partir de votre emplacement régional en utilisant :
Par exemple, pour Europe (France - Paris), l'endpoint OKMS est eu-west-par.okms.ovh.net.
Déployez la ressource dans votre cluster :
Utilisation de l'External Secret Operator
Une fois le ClusterSecretStore configuré, vous pouvez définir des ExternalSecret provenant du gestionnaire de secrets.
Créez un fichier externalsecret.yaml avec le contenu suivant :
Appliquez la ressource dans votre cluster :
Cela créera un objet de secret Kubernetes.
Pour plus d'informations sur la gestion de l'External Secret Operator, veuillez consulter la documentation dédiée, en utilisant le fournisseur HashiCorp Vault : https://external-secrets.io/latest/.
Aller plus loin
Rejoignez notre communauté d'utilisateurs.