Abonnez-vous au flux

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.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

Parcourir par canal

automation icon

Automatisation

Les dernières nouveautés en matière d'automatisation informatique pour les technologies, les équipes et les environnements

AI icon

Intelligence artificielle

Actualité sur les plateformes qui permettent aux clients d'exécuter des charges de travail d'IA sur tout type d'environnement

open hybrid cloud icon

Cloud hybride ouvert

Découvrez comment créer un avenir flexible grâce au cloud hybride

security icon

Sécurité

Les dernières actualités sur la façon dont nous réduisons les risques dans tous les environnements et technologies

edge icon

Edge computing

Actualité sur les plateformes qui simplifient les opérations en périphérie

Infrastructure icon

Infrastructure

Les dernières nouveautés sur la plateforme Linux d'entreprise leader au monde

application development icon

Applications

À l’intérieur de nos solutions aux défis d’application les plus difficiles

Original series icon

Programmes originaux

Histoires passionnantes de créateurs et de leaders de technologies d'entreprise