Utilisation du KV store¶
Une fois connecté à Vault, vous pouvez commencer à gérer les secrets.
Vue d'ensemble¶
-
Les secrets de Vault sont organisés comme un système de fichiers avec des répertoires et des fichiers. Les fichiers contiennent une liste de clés/valeurs. Les valeurs étant les secrets. Le système de fichiers est appelé un "KV store" dans Vault.
-
En fonction de vos rôles Keycloak, vous aurez différentes policies dans Vault qui autoriseront ou non l'accès à certaines parties du KV store.
-
Les policies Vault peuvent définir des accès de type
list
,read
,update
oudelete
sur les chemins (path) du KV store. -
Le chemin (path) de départ du KV store est
kv/
.
WebUI¶
Une fois connecté à Vault avec la WebUI, vous pouvez facilement parcourir le KV store, afficher, créer, modifier ou supprimer des secrets.
CLI¶
Pour interagir avec les KV stores Vault en CLI, vous pouvez utiliser la sous-commande vault kv
.
Lister les secrets¶
Comme sur un système Unix, vous pouvez parcourir le contenu du KV store avec vault kv list
:
$ vault kv list kv/
Keys
----
concourse/
$ vault kv list kv/concourse
Keys
----
charlie/
delta/
echo/
global/
india/
$ vault kv list kv/concourse/charlie
Keys
----
caascad-kubernetes-charlie
Lire le contenu d'un secret¶
$ vault kv get kv/concourse/charlie/caascad-kubernetes-charlie
====== Metadata ======
Key Value
--- -----
created_time 2021-07-16T09:46:01.917819293Z
deletion_time n/a
destroyed false
version 1
======== Data ========
Key Value
--- -----
token concourse-client-pipelines-charlie:XXXX
url https://rancher.ocb-demo.caascad.com/k8s/clusters/c-f8lnt
...
Note
Avec l'option -format=json
vous pouvez obtenir une sortie json qui peut être utile
dans les scripts.
Vous pouvez également utiliser l'option -field
pour ne lire que le contenu d'une clé précise.
$ vault kv get -field=url kv/concourse/charlie/caascad-kubernetes-charlie
https://rancher.ocb-test01.caascad.com/k8s/clusters/c-f8lnt
Créer un nouveau secret¶
Avec vault kv put
vous pouvez créer ou remplacer des secrets existants :
$ vault kv put kv/concourse/charlie/my-app foo=bar
$ vault kv get kv/concourse/charlie/my-app
Key Value
--- -----
foo bar
$ vault kv put kv/concourse/charlie/my-app db_password=very-sensitive-value
$ vault kv get kv/concourse/charlie/my-app
Key Value
--- -----
db_password very-sensitive-value
Note
Dans l'exemple ci-dessus, nous avons perdu la clé foo
! kv put
remplace complètement le secret.
Mettre à jour un secret existant¶
Avec vault kv patch
vous pouvez ajouter plus de valeurs à un secret existant ou
remplacer une valeur existante :
$ vault kv patch kv/concourse/charlie/my-app redis_password=another-sensitive-value
$ vault kv get kv/concourse/charlie/my-app
Key Value
--- -----
db_password very-sensitive-value
redis_password another-sensitive-value
Note
Dans l'exemple ci-dessus, db_password
est toujours présent !
Supprimer un secret¶
Pour supprimer un secret, utilisez la commande vault kv delete
:
$ vault kv delete kv/concourse/charlie/my-secret
Success! Data deleted (if it existed) at: kv/concourse/charlie/my-app
Note
Le magasin KV est versionné et un secret supprimé peut être restauré avec `vault kv undelete'.
Plus d'informations concernant le versioning des secrets : https://learn.hashicorp.com/tutorials/vault/versioned-kv