Les données sensibles ne doivent pas être stockées dans Git. Cela représente un casse-tête pour le GitOps, car vous avez besoin de secrets dans Git, mais vous ne souhaitez pas exposer ces données sensibles. Pour résoudre ce problème, vous pouvez stocker des secrets dans un outil tel que HashiCorp Vault, puis récupérer et injecter ces données dans Red Hat OpenShift.
Cet article est un guide de déploiement d'OpenShift GitOps avec le plug-in de coffre-fort Argo CD pour récupérer des secrets d'une instance Hashicorp Vault et les injecter dans des ressources Kubernetes. Ce guide s'appuie sur des travaux tels que celui fourni sur ce blog .
Prérequis
Pour les besoins de cet article, je pars du principe que vous exécutez OpenShift 4.10, ou version ultérieure, avec des privilèges d'administration sur ce cluster. J'exécute un cluster Red Hat OpenShift sur AWS 4.13 approvisionné via le système de démonstration de Red Hat.
Avant d'effectuer les étapes suivantes, vérifiez également que vous êtes connecté au cluster dans un environnement de terminal avec les binaires oc
et helm
disponibles. Utilisez les commandes suivantes pour confirmer ces binaires.
Tout d'abord, vérifiez les conditions préalables. Vous devez obtenir un résultat similaire à ci-dessous :
$ oc version && helm version Client Version: 4.11.13 Kustomize Version: v4.5.4 Kubernetes Version: v1.27.4 version.BuildInfo{Version:"v3.10.1", GitCommit:"9f88ccb6aee40b9a0535fcc7efea6055e1ef72c9", GitTreeState:"clean", GoVersion:"go1.18.7"}
1. Déployer Vault
Pour les besoins de cet article, j'utilise Vault en mode dev
, qui ne convient pas pour la production. Vous pouvez ignorer cette étape si une instance Vault est déjà en cours d’exécution. Déployer une instance de Hashicorp Vault :
$ helm upgrade --install vault vault \ --repo https://helm.releases.hashicorp.com \ --namespace vault \ --create-namespace \ --set "global.openshift=true" \ --set "server.dev.enabled=true" \ --set "injector.enabled=false"
2. Configuration d’un coffre-fort
Une fois que vous avez déployé une instance Vault, exécutez un script shell sur le pod Vault afin de la configurer rapidement pour cette démo à l’aide de l’excellente interface de ligne de commande vault
.
Le script de configuration définit la méthode d’authentification Kubernetes pour Vault, active un magasin de secrets kv-v2
, crée un secret de test et crée une stratégie d’accès pour ce secret.
Clonez la source :
$ git clone https://github.com/jmhbnz/openshift-gitops-vault-plugin
Copiez votre script de configuration dans le pod Vault :
$ oc --namespace vault cp 1-vault/configure-vault.sh vault-0:/tmp/configure-vault.sh
Exécutez ensuite le script à distance dans le pod de coffre-fort :
$ oc --namespace vault exec vault-0 -t -- sh -c 'cd /tmp && ./configure-vault.sh'
3. Configurer argocd-vault-plugin-auth sur Vault
Une fois Vault déployé et configuré, le plug-in de coffre-fort Argo CD en cours de déploiement doit pouvoir s'authentifier auprès de Vault à l'aide d'un compte de service Kubernetes.
Créez un espace de noms pour ArgoCD :
$ oc new-project vplugindemo
Créez un compte de service pour l’authentification du plug-in Argo Vault :
$ oc create serviceaccount vplugin
Créez un rôle dans Vault pour lier votre compte de service à la politique :
$ oc --namespace vault exec vault-0 -- vault write auth/kubernetes/role/vplugin \ bound_service_account_names=vplugin \ bound_service_account_namespaces=vplugindemo \ policies=vplugin \ ttl=1h
Enfin, créez un secret pour le plug-in Argo Vault à utiliser lors de la configuration de la connexion Vault.
$ oc --namespace vplugindemo create \ -f 2-argocd/secret-vault-configuration.yaml
4. Configurer le traitement d'argocd-vault-plugin
Une fois l'authentification configurée, vous devez à présent définir l'utilisation de sidecar Argo CD Vault Plugin. Il s'agit d'un processus en deux étapes. Tout d'abord, vous devez spécifier une commande de découverte, puis une commande de génération. Reportez-vous à ces exemples documentés, y compris des scénarios pour les applications basées sur helm
ou kustomize
. Mon exemple utilise la méthode la plus élémentaire qui consiste à détecter les fichiers contenant une annotation, puis il utilise argocd-vault-plugin generate .
pour modéliser les fichiers.
$ oc --namespace vplugindemo create \ -f 2-argocd/configmap-plugin.yaml
5. Déploiement d'OpenShift GitOps
Une fois Vault déployé et configuré, et argocd-vault-plugin configuré, déployez l’opérateur GitOps OpenShift :
$ oc --namespace openshift-operators create -f 2-argocd/subscription-gitops.yaml
Une fois l'installation de l'opérateur terminée, créez votre instance Argo CD à l'aide de la ressource personnalisée :
$ oc --namespace vplugindemo create \ -f 2-argocd/crd-argocd.yaml
6. Créer une application Argo CD
Une fois qu'Argo CD est en cours d'exécution, créez cet exemple d'application de référence. Cette opération crée une ressource secrète sur le cluster dont les valeurs d’espace réservé par défaut sont remplacées par des valeurs provenant de Vault.
$ oc --namespace vplugindemo create \ -f 2-argocd/application-example.yaml
Synthèse
En utilisant Hashicorp Vault, avec Red Hat OpenShift GitOps et le plug-in Argo CD Vault s'exécutant en tant que sidecar, vous avez utilisé avec succès des valeurs d'espace réservé à l'intérieur d'un secret dans Git. Il s'agit d'une excellente méthode pour protéger les données sensibles.
À propos de l'auteur
James Blair is a Specialist Architect at Red Hat. James is a vivid open source advocate and hands-on engineer. He has a deep technical background in automation, DevSecOps and cloud-native platform engineering across several sectors and is passionate about growing cloud-native in Aotearoa, New Zealand.
Contenu similaire
Parcourir par canal
Automatisation
Les dernières nouveautés en matière d'automatisation informatique pour les technologies, les équipes et les environnements
Intelligence artificielle
Actualité sur les plateformes qui permettent aux clients d'exécuter des charges de travail d'IA sur tout type d'environnement
Cloud hybride ouvert
Découvrez comment créer un avenir flexible grâce au cloud hybride
Sécurité
Les dernières actualités sur la façon dont nous réduisons les risques dans tous les environnements et technologies
Edge computing
Actualité sur les plateformes qui simplifient les opérations en périphérie
Infrastructure
Les dernières nouveautés sur la plateforme Linux d'entreprise leader au monde
Applications
À l’intérieur de nos solutions aux défis d’application les plus difficiles
Programmes originaux
Histoires passionnantes de créateurs et de leaders de technologies d'entreprise
Produits
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Services cloud
- Voir tous les produits
Outils
- Formation et certification
- Mon compte
- Assistance client
- Ressources développeurs
- Rechercher un partenaire
- Red Hat Ecosystem Catalog
- Calculateur de valeur Red Hat
- Documentation
Essayer, acheter et vendre
Communication
- Contacter le service commercial
- Contactez notre service clientèle
- Contacter le service de formation
- Réseaux sociaux
À propos de Red Hat
Premier éditeur mondial de solutions Open Source pour les entreprises, nous fournissons des technologies Linux, cloud, de conteneurs et Kubernetes. Nous proposons des solutions stables qui aident les entreprises à jongler avec les divers environnements et plateformes, du cœur du datacenter à la périphérie du réseau.
Sélectionner une langue
Red Hat legal and privacy links
- À propos de Red Hat
- Carrières
- Événements
- Bureaux
- Contacter Red Hat
- Lire le blog Red Hat
- Diversité, équité et inclusion
- Cool Stuff Store
- Red Hat Summit