Aller au contenu

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 ou delete 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