I dati sensibili non devono essere archiviati in Git. Questo presenta un dilemma per GitOps, perché in Git hai bisogno di segreti, ma è bene non esporre dati così sensibili. Per risolvere questo problema, è possibile archiviare i segreti in uno strumento come HashiCorp Vault, quindi recuperare e inserire i dati in Red Hat OpenShift.
Questo articolo è una guida per il deployment di OpenShift GitOps con Argo CD Vault Plugin per recuperare i segreti da un'istanza di Hashicorp Vault e inserirli nelle risorse Kubernetes. La guida si basa su questo blog di Red Hat del 2021 ed è stata aggiornata per l'utilizzo del più moderno approccio custom plugin sidecar.
Prerequisiti
Per questo articolo, parto dal presupposto che tu stia eseguendo OpenShift 4.10 o versioni successive con privilegi di amministratore sul cluster. Sto eseguendo un cluster Red Hat OpenShift su AWS 4.13 di cui è stato eseguito il provisioning tramite il sistema demo di Red Hat.
Assicurati di aver eseguito l'accesso al cluster in un ambiente terminale con oc
e helm
binari disponibili prima di procedere con uno dei passaggi seguenti. Utilizzare i seguenti comandi per confermare questi file binari.
Innanzitutto, verifica i prerequisiti. Dovresti visualizzare un output simile al seguente:
$ 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. Deployment Vault
Per questo articolo, utilizzo Vault in modalità dev
, che non è adatta per la produzione. Puoi saltare questo passaggio se hai già un'istanza Vault in esecuzione. Esegui il deployment di un'istanza di 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. Configurazione di Vault
Dopo aver distribuito un'istanza Vault, esegui uno script di shell sul pod di Vault per configurarlo rapidamente per questa demo, utilizzando l'eccellente CLI vault
.
Lo script di configurazione imposta il metodo di autenticazione Kubernetes per Vault, abilita un archivio di segreti kv-v2
, crea un segreto per il test e la relativa policy di accesso.
Clonazione della sorgente:
$ git clone https://github.com/jmhbnz/openshift-gitops-vault-plugin
Copia lo script di configurazione nel pod Vault:
$ oc --namespace vault cp 1-vault/configure-vault.sh vault-0:/tmp/configure-vault.sh
Quindi esegui lo script in remoto nel pod di Vault:
$ oc --namespace vault exec vault-0 -t -- sh -c 'cd /tmp && ./configure-vault.sh'
3. Configurazione argocd-vault-plugin-auth in Vault
Dopo aver eseguito il deployment e la configurazione di Vault, è necessario abilitare il plugin Argo CD Vault, che sarà presto distribuito, per eseguire l'autenticazione in Vault utilizzando un account di servizio Kubernetes.
Creare uno spazio dei nomi per ArgoCD:
$ oc new-project vplugindemo
Crea un account di servizio per l'autenticazione del plugin Argo Vault:
$ oc create serviceaccount vplugin
Crea un ruolo in Vault per associare il tuo account di servizio alla policy:
$ 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
Infine, crea un segreto per il plugin Argo Vault da utilizzare durante la configurazione della connessione Vault.
$ oc --namespace vplugindemo create \ -f 2-argocd/secret-vault-configuration.yaml
4. Configurazione dell'elaborazione argocd-vault-plugin
Una volta configurata l'autenticazione è necessario definire l'uso del sidecar Argo CD Vault Plugin. La procedura prevede due passaggi. In primo luogo, è necessario specificare un comando di rilevamento, quindi un comando di generazione. Consulta questi esempi documentati, inclusi gli scenari per helm
o kustomize
-based applications. Il mio esempio utilizza l'approccio più semplice per individuare i file che contengono un'annotazione, quindi utilizza argocd-vault-plugin generate .
per creare modelli dai file.
$ oc --namespace vplugindemo create \ -f 2-argocd/configmap-plugin.yaml
5. Distribuisci OpenShift GitOps
Dopo aver distribuito e configurato Vault e il plug-in argocd-vault, esegui il deployment dell'operatore OpenShift GitOps:
$ oc --namespace openshift-operators create -f 2-argocd/subscription-gitops.yaml
Una volta completata l'installazione dell'operatore, crea l'istanza Argo CD utilizzando la risorsa personalizzata:
$ oc --namespace vplugindemo create \ -f 2-argocd/crd-argocd.yaml
6. Creare un'applicazione Argo CD
Una volta che Argo CD è in esecuzione, crea questa applicazione di base. In questo modo viene creata una risorsa segreta nel cluster in cui i valori segnaposto predefiniti vengono sostituiti con valori provenienti da Vault.
$ oc --namespace vplugindemo create \ -f 2-argocd/application-example.yaml
Riepilogo
Utilizzando Hashicorp Vault, con Red Hat OpenShift GitOps e Argo CD Vault Plugin in esecuzione come sidecar, hai utilizzato correttamente i valori segnaposto all'interno di un segreto in Git. Questo è un ottimo metodo per proteggere i dati sensibili.
Sull'autore
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.
Altri risultati simili a questo
Ricerca per canale
Automazione
Novità sull'automazione IT di tecnologie, team e ambienti
Intelligenza artificiale
Aggiornamenti sulle piattaforme che consentono alle aziende di eseguire carichi di lavoro IA ovunque
Hybrid cloud open source
Scopri come affrontare il futuro in modo più agile grazie al cloud ibrido
Sicurezza
Le ultime novità sulle nostre soluzioni per ridurre i rischi nelle tecnologie e negli ambienti
Edge computing
Aggiornamenti sulle piattaforme che semplificano l'operatività edge
Infrastruttura
Le ultime novità sulla piattaforma Linux aziendale leader a livello mondiale
Applicazioni
Approfondimenti sulle nostre soluzioni alle sfide applicative più difficili
Serie originali
Raccontiamo le interessanti storie di leader e creatori di tecnologie pensate per le aziende
Prodotti
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Servizi cloud
- Scopri tutti i prodotti
Strumenti
- Formazione e certificazioni
- Il mio account
- Supporto clienti
- Risorse per sviluppatori
- Trova un partner
- Red Hat Ecosystem Catalog
- Calcola il valore delle soluzioni Red Hat
- Documentazione
Prova, acquista, vendi
Comunica
- Contatta l'ufficio vendite
- Contatta l'assistenza clienti
- Contatta un esperto della formazione
- Social media
Informazioni su Red Hat
Red Hat è leader mondiale nella fornitura di soluzioni open source per le aziende, tra cui Linux, Kubernetes, container e soluzioni cloud. Le nostre soluzioni open source, rese sicure per un uso aziendale, consentono di operare su più piattaforme e ambienti, dal datacenter centrale all'edge della rete.
Seleziona la tua lingua
Red Hat legal and privacy links
- Informazioni su Red Hat
- Opportunità di lavoro
- Eventi
- Sedi
- Contattaci
- Blog di Red Hat
- Diversità, equità e inclusione
- Cool Stuff Store
- Red Hat Summit